So... the deadline for Google's Summer of Code 2005 program arrived some time between yesterday and today (don't know exactly due to timezones). The final results from my side: a functional memory file-system (not efficient yet) for NetBSD named tmpfs, as well as the beginnings of a book/article on file-system development under NetBSD.

As regards the file-system itself, its code can be found in the CVS repository. Despite it has some bugs and misfeatures, it is functional from the user's point of view. The file-system's code is around 4000 lines (plus 500 from the mount utility) and the regression test suite around 2000 (half of which are license texts). I know these numbers are low, but man... this is the hardest code I've ever written (mostly due to lack of documentation and having to reverse engineer existing stuff). I've also written a document describing tmpfs' internals (as said in the initial proposal), which is available in the form of a manual page in the repository and is around 700 lines long.

With respect to the documentation, it is not yet available online. I'm still discussing with my mentor (Bill Studenmund) how it shall be published and I don't like it in its current form to make it public (still has many mistakes and is heavily disorganized... and is already 2500 lines long). It looks like we both agree that it should be in the form of a (online) book, leaving room for future additions (e.g., UVM, device drivers, etc.). However, I will also try to write a little article explaining all the steps I followed to write tmpfs. Writing an independent article will be better because it'll let me focus on a single task and it'll be possible to mix information from several subsystems without making it look messy. But there is still a long way to go to have these done.

I would like to make it clear that despite the program has ended, I will continue working on all this stuff until it is ready to be integrated into NetBSD's source tree; all this work musn't have been in vain! Oh, and having been part of this program has been great. It has forced me to work on something I've always wanted to do (kernel development) but never found time to learn about it... and I've done paid development for the best free operating system! ;-) I have to say that I've learned a damn lot in these two months.

And today, just as a little prize for the program's completion, I've bought myself a copy of Doom 3 (because I decided to go legal a while ago, yay!) and this month's Dr. Dobb's Journal edition. This is the first time I buy this magazine. Why? They will be publishing a set of articles describing SoC projects, so I want to know about their style — which, as far as I've seen, is very technical, something that is nice. Furthermore, this edition has some articles that I found interesting when I first saw them in the web site; i.e., C++, STL, and custom pool allocators and C++ exceptions and the Linux kernel.