simplefs - a ridiculosly simple file system from the scratch

Sankar P sankar.curiosity at gmail.com
Tue Aug 6 11:28:54 EDT 2013


On Tue, Aug 6, 2013 at 8:40 PM, Rajat Sharma <fs.rajat at gmail.com> wrote:
> On Tue, Aug 6, 2013 at 8:36 PM, Sankar P <sankar.curiosity at gmail.com> wrote:
>> On Tue, Aug 6, 2013 at 10:10 AM, Rajat Sharma <fs.rajat at gmail.com> wrote:
>>> Hey buddy, its a good work. You never know how many people you end up
>>> helping with this code. I would definitely recommend this as a
>>> starter.
>>>
>>
>> Thank you so much :) It feels so nice to hear this from you :)
>>
>>> One recommendation: add support for page-cache. Start with read-cache
>>> only, and then mmap support, you need that to allow binary execution.
>>>
>>
>> oh okay. You suggest that I should do this before I start implementing
>> the support for extents ?
>>
>
> Its upto you, but doing that before extents seems more towards basic
> tutorial steps for writing a filesystem.
>

Okay. I do not much about page cache. I will read about it. I think it
is better if I implement the page cache support so that I can cache
better. Good caching will help in working with big files once extent
support is implemented (iiuc)

Thanks for your suggestions :)

Sankar

>> Sankar
>>
>>> -Rajat
>>>
>>> On Tue, Aug 6, 2013 at 12:27 AM, Sankar P <sankar.curiosity at gmail.com> wrote:
>>>> Hi,
>>>>
>>>> For learning purposes, I thought I would implement a filesystem from
>>>> the scratch. It has reached a state where I can do a 1.0 release.
>>>>
>>>> The sources are at: https://github.com/psankar/simplefs
>>>>
>>>> The layout is simple. The first (zeroth) block is the superblock and
>>>> contains information like fs magic, number of inodes, freeblock map
>>>> etc. The next block is the inode store. Creation of files and
>>>> directories is supported. Nested directories are supported. A file can
>>>> grow up to one block only. The data blocks for a directory contain the
>>>> filename and inode number of its children. For files, it will
>>>> obviously contain the actual data of the file. There are three
>>>> rudimentary locks to make sure the accesses are thread safe.
>>>>
>>>> The 1.0 version is filled with a lot of TODOs and memory leaks. Also
>>>> while implementing this, I realized that it is a bad idea to maintain
>>>> the superblock and the freeblock store together in a block. So I am
>>>> planning to change the on-disk layout in the next version.
>>>>
>>>> Apart from moving the super block to minimize locks, I am planning to
>>>> implement support for extents in the next version, and journalling in
>>>> the next-to-next version. The next version will take some time to
>>>> come, though. But if someone wants to try filesystems from the
>>>> scratch, I thought it may be useful if I share the link now itself.
>>>>
>>>> Also, I take this moment to thank the kernelnewbies list, especially
>>>> the regular people like Mulyadi Santosa, Valdis Kletnieks, Rajat
>>>> Sharma, Greg Freemyer etc. Also I would like to thank Neha Naik,
>>>> Manish Katiyar who helped me with some queries during this particular
>>>> implementation. I saw that Manish Katiyar has also done a similar
>>>> from-the-scratch implementation and it motivated me to pursue further.
>>>>
>>>> Any feedback on the code is welcome. Although, I want to inform that I
>>>> plan to change the locking until after I decide on a good on-disk
>>>> layout for the next version, which will by-design minimize the locking
>>>> needs, by splitting out freestore from superblock, keep track of
>>>> children inode in a better way etc. Also I have been resisting the
>>>> urge to look at ext or any other filesystem's design so as to not skew
>>>> my thoughts and go with a fresh state of mind and get my own design :)
>>>>
>>>> Thanks.
>>>>
>>>> --
>>>> Sankar P
>>>> http://psankar.blogspot.com
>>>>
>>>> _______________________________________________
>>>> Kernelnewbies mailing list
>>>> Kernelnewbies at kernelnewbies.org
>>>> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
>>
>>
>>
>> --
>> Sankar P
>> http://psankar.blogspot.com



-- 
Sankar P
http://psankar.blogspot.com



More information about the Kernelnewbies mailing list