simplefs - a ridiculosly simple file system from the scratch

Greg Freemyer greg.freemyer at gmail.com
Thu Aug 8 07:29:53 EDT 2013



Sankar P <sankar.curiosity at gmail.com> wrote:
>On Thu, Aug 8, 2013 at 3:55 AM, Greg Freemyer <greg.freemyer at gmail.com>
>wrote:
<snip>
>>
>> I just read your todo's.
>>
>> Multi-block files should come before extents and/or mmap support.  I
>> guess you realize that ext2 and ext3 are NOT extent based
>filesystems.
>>  ext4 is the first extent based one.
>>
>> So its:
>> ext2 - block based filesystem
>> ext3 - block based with a journal
>> ext4 - extent based with a journal
>>
>> In reality the current ext4 driver has a matrix of supported
>features.
>>  There are flag bits which tell you which features a specific
>> filesystem instance supports.  You may want to atleast look at those
>> feature flags to get an idea of the kinds of features ext4 supports.
>>
>> If you don't have lseek() support for read, you need to get it added.
>> lseek() is pretty trivial for reads so there is not much reason not
>to
>> have it as the very next step.
>>
>> For write, it means you have to implement a read/modify/write cycle
>in
>> your filesystem.  I gather you don't have that.
>>
>> With just those todo's I go in this order:
>>
>> - lseek() support with read (trivial)
>> - partial block write support (requires read/modify/write logic, so
>not trivial)
>> - lseek() support for write (trivial now you have partial block write
>support)
>> - multi-block support, requires a major refactor most likely.
>>
>
>Thank you so much for the detailed response.
>
>I will go in this order as this seem to be logically progressive nicely
>iiuc.
>
>When do you think I should bring in support for mmap and page-caching
>that Rajat in the above plan ?
>
>Thanks.

I've never done a FS from scratch so I'm not sure, but I would delay them as long as you can.

I suspect you will need cache support to properly handle writes on a multi block file, so as you work on that feature you may decide "now is the time" for the cache.

Mmap should be last.

Greg
-- 
Sent from my Android phone with K-9 Mail. Please excuse my brevity.



More information about the Kernelnewbies mailing list