[haiku-development] [GSoC Project] ZFS implementation.

  • From: js.haiku@xxxxxxx
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Fri, 9 Apr 2010 15:22:30 +0200 (CEST)

Hi, I'm about to submit my application for GSoC. I'd like to know if you have 
some comments or suggestions before I submit it.

At first I thought about implementing the ExtFS family on Haiku, but Janito 
seems to be working a lot on it already, and I doubt there's enough work for 
two people.

Here's my application :

Name : Georges DUPÉRON

Email : js.haiku@xxxxxxx

IRC Username : jsmaniac

Summer education : I won't be taking any classes this summer.

Employment : If I'm accepted in this Summer Of Code, I won't be looking for any 
other job.

Other Conflicts : I plan to work on my own Operating System  project during my 
free time, but it won't conflict with the time I spend working on Haiku.

Time spent : I plan working 35 hours / week from the begining of June until the 
end of August. I won't be spending much time on Haiku until the end of May, due 
to exams and an academic project that takes up most of my time.

Internet Accessibility : I have a decent Internet connection, although I must 
use my private tunnel to access anything other than port 80 (I have been using 
my tunnel for two months, it works wonders).

Previous years : I've never applied for GSoC before.

Bio : I'm a french Computer Science student in Montpellier (south of France), 
in my third year. I have already written a small operating system entirely from 
scratch, with (highly-optimized) graphical display support, SFS (Simple 
FileSystem) support, and mouse & keyboard support. I'm still working on that 
project to improve the system. I have written academic material in Scheme, C, 
C++, Java, ... and personal material in JavaScript, C and Assembly. I've also 
made small fixes on various OpenSource programs for my own usage.

=== ZFS implementation for Haiku ===

Goals :

- Read support for ZFS
- Write (with copy-on-write and checksumming)
- Snapshots (on the kernel side)
- Userland tools to manage snapshots
- if time permits, additional zfs features (pools, etc.).

I plan to re-use parts of SUN's CDDL-licenced implementation of ZFS, but 
rewrite/refactor everything so that it's C++, and matches Haiku's coding 
guidelines. If licencing problems are a concern, I'm ready to do a re-write 
from scratch.

Why I want to work on this project :

I'm an Operating System enthusiast - I wrote my own small OS, and in the last 
year, I tried out a dozen operating systems, including ReactOS, Plan9, various 
BSDs and Haiku. Haiku seems the most promissing to me, and it might well 
replace Linux soon on some of my boxes, so I'd be really pleased to work on it. 
Also, I'm interested in so-called next generation filesystems. To my mind, the 
filesystems we currently have (the Ext family, Fat, BFS, etc.) are not adapted 
to today's usage. They lack features like snapshots, versioning, easy volume 
management.

I would have liked to implement some filesystem like BtrFS or NilFS on Haiku, 
but BtrFS's physical layout is not completely frozen, so the implementation 
might need some more or less heavy changes after it's done, and NilFS is still 
highly experimental. Plus ZFS support might give the industry people some 
interest in Haiku.

So I think implementing ZFS on Haiku would be an interesting challenge for 
myself, and a useful contribution to Haiku.



Other related posts: