Darwin Redux

Last time out, I voiced some concerns about how Apple was handling their Open Source initiative. Since then, however, things have moved rapidly, partly due to announcements at the World Wide Developer’s conference. Here’s an update on what’s new as of the end of May.

Another License, Less Griping:
When Apple first released their source code under the Apple Public Source License (APSL), there were several complaints voiced, including some by significant figures and organizations in the Open Source movement. At the time, Apple said that they would listen to the complaints and modify the license if it was appropriate. That’s exactly what has happened. The next time a significant amount of code was released, (more on that below) it was done concurrently with a new APSL, version 1.1, which amended the most frequent targets of complaints, such as the license termination clauses. With version 1.1, the complaints were mostly about how long it was and that the language was a bit too legalish—in other words, there were no significant complaints.

Would you like some Source on top of that?
Apple’s first foray into Open Source was rather limited in scope. When Apple released QuickTime 4 to the public, though, it also released the source code for the streaming server at the same time; since then, even more code’s been opened up. This shows that Apple didn’t just release code once as a publicity generating device but rather is fairly dedicated to the Open Source idea. Significantly for QuickTime in particular, it should allow the Streaming Server to be ported to many server platforms (thus expanding its use) and strengthen its claims to be the only streaming server without a “server tax.”

The code released at the WWDC falls into two categories: an application framework for games, and further release of OS X code. The game framework allows platform portability while programming the networking portion of a multiplayer-capable game. Put simply, instead of writing networking code specific for both the Mac and Windows, you can call network functions in this framework, and they will compile correctly for either platform. If it’s well executed, it can save a lot of effort. Since it’s already been used by Bungie (think Myth), it’s probably well executed.

The newly released OS X code is even more exciting. At the time of their original release, Apple did not include all the code necessary for moving the kernel to other platforms (Intel x86-specific code and the driver kit were among the things missing). The missing pieces have now been cleaned up and released. The previous release had the serious limitation of being incapable of interacting with a user without the interface that comes with the commercial release of OS X, meaning that the only people who could do much with the source code were those that already owned a copy of OS X. The newly released code can now be built into a kernel that will boot directly into a BSD-Unix based command line.

Everybody gets the boot!
Not only can the latest Darwin release be built into a bootable OS, but Apple has done the building. Anyone who agrees to the APSL can download an installer that will take the hard drive of your choosing (provided it’s hooked up to a recent PowerPC machine), wipe it clean, and put a 1 GB Darwin OS on it, leaving the rest as an HFS+ partition. It’s the easiest install of a Unix system I’ve ever seen, though that probably is due to the fact that it offers you no installation options.

I’m not familiar with the BSD utilities and shells, but it appears that many standard Unix utilities are there, and the file system has a traditional Unix directory structure. Still, there are some severe limitations to the system as it now stands. It won’t even let me set the password because it can’t interact with “netinfo”, a Next/OS X specific user configuration tool system. Many of the directories that seemed likely to hold some interesting OS X specific software are effectively empty (oddly, they hold two blank files).

Perhaps most significantly for anyone considering writing code for Darwin, the text editors present are quite primitive. Currently, the best editors on Unix systems are all designed for use with a GUI, instead of the command line, and most programmers work with several editor and command line windows open. This wouldn’t be so bad if Darwin had an easy method of transferring files to other environments (I would happily do my typing elsewhere), but that doesn’t seem to be the case. Although HFS and HFS+ partitions are supported, I can’t seem to get the “mount” command to work with any of those partitions. So, I tried accessing Darwin’s UFS partitions from Linux; although some Linux distributions can access UFS disks, LinuxPPC does not currently support them.

That leaves ethernet-based networking as the only mechanism of moving files into or out of the Darwin environment, an option I don’t have the ability to test at home. As such, I won’t be able to take advantage of the recent deployment of a CVS server for the Darwin project. Don’t worry about what CVS stands for; what it does is allow for version-based FTP access to all the source code. Thus, programmers that connect via the CVS client will have it automatically download only those files that have been updated since their last connections. This helps keep everyone working on a large project up to date and working on the same files and has been critical to the success of many open source projects.

A Need for Someone to do the Windows:

As hinted at above, the 0.2 release of Darwin is hampered by the lack of a windowing system. It keeps its users from taking advantage of the latest software developed for other Unix systems, such as Linux, and limits them to working in a single application at a time. With the full source code available and a growing amount of interest in it, it’s probably only a matter of time before somebody fills this void. A windowing system is almost certainly necessary if interest in Darwin’s going to move outside the development community.

Unfortunately, this also poses a danger for Apple. If people can download a freely available version of OS X, which has a decent windowing system, where most of the free Unix programs work on it, and which functions on multiple platforms, then Apple will almost certainly lose sales of the regular release. In fact, it would have to add some substantial value with its user interface and available applications in order to get anyone to buy their system. It will be interesting to see how this works out.

The Takehome:

At this point in time, Apple seems to be doing all the right things. They’re responding to user feedback and giving people what they want: a useable Operating System with an acceptable licensing agreement. Although there may be some risks in the long term, the recent developments should help generate the interest and excitement needed for Apple to generate a community of developers contributing to Darwin

Jay Timmer

Leave a Reply