Re: simplefs - a ridiculosly simple file system from the scratch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 






On Sat, Mar 29, 2014 at 4:31 PM, Sankar P <sankar.curiosity@xxxxxxxxx> wrote:
2014-03-28 23:11 GMT+05:30 Rishi Agrawal <rishi.b.agrawal@xxxxxxxxx>:
> 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@xxxxxxxxx> 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@xxxxxxxxx>
>> wrote:
>> >
>> >
>> > Sankar P <sankar.curiosity@xxxxxxxxx> wrote:
>> >>On Thu, Aug 8, 2013 at 3:55 AM, Greg Freemyer <greg.freemyer@xxxxxxxxx>
>> >>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@xxxxxxxxxxxxxxxxx
>> 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
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux