tech-userlevel archive

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

"Filesystems as network services" - GSoC'12


My name is Ambarisha. I am a computer science student interested in
working with NetBSD in GSoC'12 during this summer. Initially I was
interested in networking but recently developed a strong taste for
filesystems as well.

I have gone through the ideas page and found the project "Filesystems
as network services" really interesting. I have read through the
articles linked to on the idea page. I found a couple of video
presentations about rump and puffs. Unless I am much mistaken, what
the project proposes is similar to the distributed filesytem model
based on puffs from [1] except that the file server on the server side
isn't just a proxy to the kernel filesystem but the actual filesystem
itself running in the userspace using rump. I wanted to know the
difference between puffs and FUSE, so I went through the paper
explaining libReFUSE [2]. The core idea behind both of them seems to
be the same, even though they differ from each other in implementation
and hence libReFUSE. Also I'd like a few comments on how ReFUSE was
able to outperform FUSE itself in some cases. Ofcourse, the entire
setup for both of them is completely different, but still an extra
translation layer has to cost some overhead.

After going through all that I really want to get involved with the
project. But, there is also another project "Binary compatibility for
puffs-backend". So wouldn't it be better to work on that project first
so that we have a machine independent protocol between the puffs
kernel subsystem and the userland library and then just forward the
same protocol over the network?  Currently I am planning to browse
through the source for puffs. Apart from the project I'd like to study
this field(Userspace filesystems) a bit more, and would appreciate a
couple of pointers.

I also found two other projects not on GSoC page really interesting.
"Rewriting kernfs and procfs". Can it be worked on as a GSoC project,
because it isn't tagged GSoC? Another project is "Flash translation
layer". That too isn't tagged GSoC and hasn't got a mentor. Excuse if
tech-userlevel isn't the place for asking this.

If you recommend I do or study something, please let me know.


[1] - Send and Receive of File System Protocols: Userspace Approach With puffs
[2] - ReFUSE: Userspace FUSE Reimplementation Using puffs

Home | Main Index | Thread Index | Old Index