Page 1 of 1

File systems comparison

Posted: Wed Jun 27, 2007 3:39 am
by Jeko
I need also a comparison between file systems. I think EXT2 filesystem is the best for me, but I'm not sure.

Posted: Wed Jun 27, 2007 3:48 am
by AJ
Have you seen http://www.osdev.org/wiki/Category:Filesystems on the wiki? If not, that is a pretty good starting point.

Posted: Wed Jun 27, 2007 4:57 am
by Combuster
If you want features: there's a big comparison on wikipedia. If you want an easy-to-use filesystem, you are limited to Ext2, FAT or SFS.

The main argument for FAT is that its universally supported, so that you can use it from virtually everywhere. Ext2 has decent support across unices (linux, bsd), but not on windows, and sfs is pretty much unsupported.

The main argument for Ext is that it has a good and proven design and a well available source base. Ext2 might be a little trickier than FAT to implement but you get more in return. Its also free of microsoft patents so you can use long file names without paying royalties.

SFS is free of all bloat and file size/disk size limitations encountered by both FAT and ext2, but some bloat might always be useful. But by my knowledge there is only one implementation as of yet with the obvious consequences thereof.

FSes like HPFS, NTFS, HFS, XFS, JFS and Reiser are more complex and IMHO only qualify for when you want to support a second filesystem.

Posted: Wed Jun 27, 2007 12:21 pm
by JJeronimo
Combuster wrote:The main argument for Ext is that it has a good and proven design and a well available source base. Ext2 might be a little trickier than FAT to implement but you get more in return. Its also free of microsoft patents so you can use long file names without paying royalties.
Ext2 has some key features that are missing in FAT, that is UNIX-like file permissions, symbolic links and hard links.

If you are coding a UNIX-like OS, then you can't use FAT unless you make a non-standard use of the attributes field... And still you won't have support for hard-links. Hard links are more difficult to add to FAT because it needs a separation between the file name data and inodes that define the rest of the file (owner, group, mode, size, inode list, number of hard links, etc).


You also have the minix filesystem, but it's not very supported. OK, Linux still has its driver, but then you'll need tools to create and maintain the filesystem. The versions that come with minix seem a bit difficult to port (at least to me). They use minix specific headers...

JJ