Jul 13, 2005

Bloggix: A Unix for Web Logs

For my senior project, I chose to design my own Unix distribution tailor-built for running web logs like Slash and Scoop. I had my choices of operating systems to build on, and after several false starts and unforeseen roadblocks, I'm well into this project. I felt it may benefit future computer science majors to document my progress so far, so here's my story.

My advisor and I had been discussing porting drivers to various operating systems, creating an efficiency metric for various processor cores, and writing a compiler for the processor the graduate students had created. All of these options would would have challenged me and looked good on my transcript, but I had an idea later that week that made me sit up, wide-awake, at three in the morning.

I had been perusing MacSlash and Slashdot for ideas when it hit me: Why not create an Open Source operating system built specifically to run web blogs as efficiently as possible? I called my advisor and in his sleeping stupor he gave me the go-ahead. I rubbed my hands together in anticipation of the opus I would soon create. How little I knew then, and how much I would later learn!

A few days later, we had built a short-list of operating systems I could employ as the basis for Bloggix (the clever name I had given to my project). The list included Mac OS X, FreeBSD, Linux, NetBSD, and OpenBSD. All of them had some sort of Open Source license that would allow me total control. We got to work right away on reading the fine print.

I had been in contact with Mr. Eric S. Raymond, leader of the Open Source movement. He had urged me to use Linux, though its license turned out to be very restrictive. It had a lot of requirements, such as making the source code available, that would stymie my research and hold me back on trivial points instead of letting me code and develop my idea. We passed on it and looked at less restricted operating systems.

OpenBSD was next on the list and we eliminated it just as quickly. Though probably the most secure Open Source operating system out there, I found the development mailing list a mess of arguments and bickering. After reading the latest of Theo de Raat's temper tantrums on the OpenBSD developer's list, we moved on to more serious alternatives.

Now we looked at NetBSD. Its gimmick was that it ran on more architectures than any other operating system and was stable on x86, PowerPC, and MIPS, which were the architectures I favored. Looking into things a bit more, it became clear that the onus of multi-platform panacea drained the project of driver support and development efficiency. Too bad; NetBSD seemed otherwise stable.

So much for the minor leagues. It was crunch time and I needed something a little more mature.

FreeBSD had a lot going for it, more than the other BSD operating system at least. It had a solid development team, excellent driver support, easy installation, and rock-solid stability. It also had corporate backing, first in WindRiver and later Apple. Looking at Apple's involvement, however, had led me to look at FreeBSD's half-brother, Mac OS X.

Through the marriage of the FreeBSD and Mach kernels, Apple had created the most widely-shipped Unix in the world. Their developer support was unsurpassed and the Apple employees on the mailing lists seemed eager to get involved with the developers. As a bonus, it ran on the two major serving architectures, PowerPC and x86. It seemed almost too good to be true.

And with that, my decision was made. Bloggix was to be a custom-built Mac OS X kernel and userland made directly for serving web communities, the focus of my senior project and hopefully, one day, a viable product webmasters could turn to for speed, efficiency, and power.

I've been doing metrics testing on Panther, though I've moved up to Mac OS X Tiger recently. The numbers seem promising and even Mr. Eric Raymond, who I originally had spoken to about Linux, has thrown his support behind Mac OS X. He said it was the next great Unix and it would be a good bet to invest in.

Right now as my final semester nears I'm starting to get into the real work and set up a CVS, having officially forked Mac OS X Tiger v10.4.2 into Bloggix today. I shall release Bloggix as Open Source upon graduation. I believe in an open, community-driven development model, so please email me with any comments, critiques, or questions regarding my project.

1 comment: