I have long been interested in the Darwin project. It is, after all, the basis for Mac OS X. And it’s open source! Perhaps the aspect that so fascinates me is that it runs on x86 hardware, albeit with limited support. I have played with Darwin since version 1.2.1, when it was quite a bit more raw than it is today. Darwin still remains raw, but many things have improved. With the recent release of OpenDarwin 7.2.1, I decided to upgrade my existing Darwin 7.0.1 installation on my Dell Latitude D600.
I did have a few problems with the installation. The x86 installation of OpenDarwin still requires that you reboot into the installation CD shell, mount the new installation, and edit a file to specify exactly which partition to boot to. (It can be done from the boot prompt as well, but you must remember what partition designation is required.) Also, the Broadcom Gigabit driver for my built-in BCM5705M chipset would not load this time. I was, in fact, very surprised that it was supported under Darwin 7.0.1, but I didn’t understand why it would be broken in a later release. After some help from the OpenDarwin hackers list, (thanks Chuck!) I discovered that the new driver was not compiled fat (with both x86 and ppc code), while the previous one had included x86 support. I was able to replace the new driver with the one provided on the 7.0.1 CD and all is well again.
I now have OpenDarwin 7.2.1 running quite well on my Latitude. I was able to successfully compile XFree86 4.4, which is much nicer than running in Darwin’s VESA framebuffer o’ artifacts. My greatest success so far has been to get GNUstep running. It’s not exactly an easy task. I had to compile GCC 3.3.4 and use it instead of Apple’s provided GCC 3.3. After wading through the documentation, I was treated to a working installation of GNUstep. I have WindowMaker running as well. My goal at present is to get more GNUstep applications to compile and run. I have successfully managed to compile ProjectCenter and GNUMail, but neither will run, complaining about bundles not existing. The bundles do in fact exist, so I clearly have some work to do there.
The fascinating part of GNUstep is that it is based upon the NeXTSTEP/OpenSTEP architecture, which has become Mac OS X/Cocoa today. My goal is to create a system which resembles my Mac OS X system as closely as possible on x86 hardware. Using the GNUstep framework, it is possible to port Mac OS X/Cocoa applications to Darwin x86/GNUstep. I find this possibility very interesting. I know that I may not have the time or continuing interest to achieve this goal, but perhaps I can share some of my efforts here and inspire others to do the same.
The best part of the 7.2.1 release? The bootsplash screen is exactly the same as that on Mac OS X. When booting, you are greeted with the gray screen with the Apple logo and spinning progress indicator below. It’s marvelous.