Legal Disclaimer

"...For Dummies" is a registered trademark of Wiley Publishing, Inc. Wiley has not given authorization for this title, nor is it associated in any way with the Wiley (nee IDG Books, nee Hungry Minds) series "... for Dummies."

January 17, 2007

Userspace Woos

A few years ago, I worked for the Center for Systems Assurance and would go to the secure operating systems research group meetings. I wasn't much of a programmer then, but I knew enough to know secure design when I saw it. As such, microkernels have always been of interest to me. I went to Dresden, for example, hoping to broaden my knowledge of formal methods and secure coding techniques from the team that brought us the L4 microkernel and eventually TUD:OS.

I've been sorely disappointed at the world's slow adoption and approval of what I call the, "userspace push," microkernels that run traditional operating system capabilities as userspace services. From a security standpoint, this is the way to go...make a small and optimized generic kernel hooks for userspace services to tie in to, for everything from filesystems to networking to graphics. It makes for a lot of Really Neat Things, too: for example, writing a little driver to encapsulate ethernet packets over SSH is easy, and you will even be provided with a device file like, 'ssheth0' to put your packets on (one of the things a coworker wrote for GNU/HURD).

Commerce doesn't work like that, though: commerce wants features first, and secure design later. It's hard for a microkernel operating system to get its foot in the door, because the features just aren't there. The HURD didn't even support POSIX threads until almost the year 2002, which pretty much made all commercial development shy away from the kernel.

It's kind of funny when I see things like MacFUSE, though. FUSE is essentially taking a microkernel idea and wedging it into a monolithic kernel (Linux), moving a traditional kernel feature (filesystems, in this case) into userspace. MacFUSE makes me laugh out loud, of course: it's taking a microkernel idea that was wedged into a monolithic kernel, and porting it to a microkernel. Hilarity ensues!

Still, it's interesting to see the monolithic operating system adopting microkernel ideas. I kind of wonder if GNU/Linux will start to move more in this direction? Doubtful, but time will tell...

Post a comment










Please enter the number above into the box below.









Further back...

Archives