Friday, July 21, 2006

Status update

Woohoo, exams are over!! :)

Finally I'm going to have time to work on the project, yay :))


Today I got zfs_ioctl.c to compile (not linking yet, I've got to get libzpool to compile in the simulated kernel context, which probably means copy/pasting most of zfs_context.h to the correct libsolkerncompat headers).
However, even after zfs_ioctl links with libzpool-kernel, I still have to code some additional functionality in order to get the zfs and zpool commands working.


In other news, this week I've got a free 3-month Safari account, thanks to Google (and O'Reilly), which will be quite useful. It's incredible how these guys are always surprising me :D

After a little browsing of the available books, I've found one which has already proved itself to be helpful: Solaris Internals - Core Kernel Components. Although it was written at a time when only Solaris 7 was available, the VFS chapter content was still mostly accurate. I only wish it was more detailed.. :)

So, even with the help of the book (and the OpenSolaris OpenGrok browser, which I've been using since the beginning -- amazing, I already can't live without it), I've had some difficulty understanding some Solaris vfs/vnode interfaces, but I think I got it mostly right.

Of course, even if I haven't, I'm sure my kind and dedicated testers will help me find all the bugs, eventually.. ;)


UX-admin said...

So if you're getting involved so deep with Solaris... why are you still messing around with Linux?

wizeman said...

I have to say I became very impressed with the quality of Solaris' code. It really shows how it's features are engineered instead of hacked up together, like most of Linux.

However, Linux has great advantages for a desktop system. It has really good hardware support (read: I can get my webcam, tv-card w/ remote control, printer, scanner, UPS and wireless card working), most distributions nowadays are very polished, it's easy to use, and most problems are quickly fixed just by googling (since it's used by so many people)..

It also has the best virtual memory manager I've ever seen in an operating system.
Speaking of which... *deep breath* I can crash a 32-bit box with 256MB of RAM (without swap) running a mostly barebones Solaris system with a NFS-exported ZFS pool in 5 seconds, by simply running 'find /pool' on the NFS client.
If I add 256 MB of swap it lasts a little longer, but applications start running out of memory after 5 minutes..

It seems it's a 32-bit specific problem with Solaris and ZFS, and from what I read in zfs-discuss, it's not going to be fixed.

Now, on the other hand, I will have to *really* think things through when choosing the operating system of my next 64-bit cpu server systems.. NexentaOS is starting to get really attractive ;)

UX-admin said...

You obviously do not lack the skills, so why not port or otherwise bring some of that wonderful HW support functionality to Solaris?

wizeman said...

I don't know... maybe because I have better things to do? :p

Of course, you can always try to get Sun to hire me. That'd convince me to do it ;)

wizeman said...

Oh and BTW, license compatibility would be a problem. The GPL and the CDDL don't mix very well :p

gego said...


that is not all true, most of solaris is undet 2 licenses ; GPL and CDDL (if am not mestaken...)

ux-admin said...

"Better things to do?"

Says the guy porting *ZFS* to *Linux*?

Come on. Give Solaris a chance.

Chris Samuel said...

My understanding is that "Open" Solaris is published by Sun under the CDDL which is incompatible with the GPL, so you cannot legally take GPL'd Linux kernel code and put it into "Open" Solaris.

This is precisely why this project is having to use FUSE, if Sun had GPL'd Solaris instead of creating yet another new license then the kernel code could flow both ways and both projects could have benefited. But sadly that is not to be! :-(


Anonymous said...

Contrary to popular belief core Linux kernel design is very much well thought out and designed. The drivers may suck but it's a driver problem rather than core kernel design problem.

Remember Linux runs well on more 16 architectures last I counted - and to achieve such a level of portability _requires_ design.

Anonymous said...

The amount of work you've gotten done in such a short time is amazing - I can't wait for the finished product to come out. ^_^ (Especially since I'm already using FUSE/Linux.)

The only annoying thing is the sheer number of links I had to follow to get to this page... your project doesn't seem to have had that much press on it (yet).

You /are/ supporting 32-bit Linuxes, right?

As a last note... last I checked, design and engineering do have differences. I haven't seen the Solaris code, but imagining it is "cleaner" than Linux code is not impossible - although you do have to note that cleaning code takes time away from adding features (in the short term).

Well, anyways, good luck with the project... hopefully when I'm old enough I'll be able to take part in the SoC some year in the future. ^_^

wizeman said...

anonymous said: You /are/ supporting 32-bit Linuxes, right?

Yup, definitely. I'm hoping it'll behave better than 32-bit OpenSolaris ;)

Anonymous said...

any news on the development status?

wizeman said...

Anonymous said...

any news on the development status?

I will provide a status update today or tomorrow at most. Stay tuned.

David Felstead said...

Hi Ricardo - are you looking for any extra help, development wise?

I'm a programmer from Australia, and though I only have a cursory knowledge of filesystems, ZFS is of great interest to me, and the sooner it gets to Linux, the better!

If your Google agreement doesn't preclude extra contributors, could you please drop me an email? david.felstead at


iron garden gates said...

great post