I want to write a filesystem, how do I start?
To write a filesystem you have to learn two things: The datastructures you need to use, and the API used in the Linux kernel. First of all you could take a look on the source code of the simplest of the existing filesystems. The simplest of all Linux filesystems is ramfs. There are two types of filesystems, those using a blockdevice and those not using a blockdevice. Ramfs is one of those not using a blockdevice, this group also contains all the network filesystems and pseudo filesytems like procfs. The filesystems you actually store on disks are those using blockdevices, they can be divided into two groups. The simplest are those that can be implemented using a get_block/bmap function, this includes ext2, minix, and fat. The simplest from this group and yet fully posix compliant is minix. If the data on disk is stored in some more compact way, the simple solution will not be possible. At this point it obviously start getting a little complicated, there does however still exist a quite