simplefs - a ridiculosly simple file system from the scratch

Rishi Agrawal rishi.b.agrawal at gmail.com
Tue Apr 1 12:52:04 EDT 2014


On Sat, Mar 29, 2014 at 4:31 PM, Sankar P <sankar.curiosity at gmail.com>wrote:

> 2014-03-28 23:11 GMT+05:30 Rishi Agrawal <rishi.b.agrawal at gmail.com>:
> > Hi Sankar,
> >
> > Have you written any code further. I read your file system's code and
> learnt
> > a lot from it.
> >
>
> Good to know that you have learnt from it. I stopped at a logical
> closure where the filesystem is at a usable state.
>
> I did not write any code further as I am spending my personal time on
> changing diapers for my newborn :)
>
> Whatever little time I get, I tend to do it in trivial user space
> applications. Extending the filesystem requires long hours of
> learning, context maintenance, focus etc. So I deferred it for a later
> stage. I will be happy to get some patches though :)
>
> >
> >
> > On Thu, Aug 8, 2013 at 8:36 PM, Sankar P <sankar.curiosity at gmail.com>
> wrote:
> >>
> >> okay. Thanks. I will update this list once I write enough code for the
> >> next release :)
> >>
> >> On Thu, Aug 8, 2013 at 4:59 PM, Greg Freemyer <greg.freemyer at gmail.com>
> >> wrote:
> >> >
> >> >
> >> > 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.
> >>
> >>
> >>
> >> --
> >> Sankar P
> >> http://psankar.blogspot.com
> >>
> >> _______________________________________________
> >> Kernelnewbies mailing list
> >> Kernelnewbies at kernelnewbies.org
> >> http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
> >
> >
> >
> >
> > --
> > Regards,
> > Rishi Agrawal
>
>
>
> --
> Sankar P
> http://psankar.blogspot.com
>

I identified one memory leak while reading the code. Will send the patch.

-- 
Regards,
Rishi Agrawal
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20140401/bf5dc63f/attachment.html 


More information about the Kernelnewbies mailing list