Enterprise Unix Roundup: Operating Systems on the Analyst's Couch
Last week Liepzig, Germany was home to the 30th International Conference on Software Engineering (ISCE 2008), an eight-day conference sponsored by the Association of Computer Machinery devoted to the esoteric inner workings of the code with which we work and play. No doubt Liepzig is still reeling from those party animals.
On May 15, a paper was presented that I thought would be of interest to Roundup readers. "A Tale of Four Kernels" by Diomidis Spinellis of the Athens University of Economics and Business analyzes the source code of four of the major operating system kernels to see which rank better across different categories.
Although this paper is highly detailed in its analysis, it seems a bit subjective in its conclusions, so consider yourselves warned. It's hard for subjectivity not to creep in, I suppose, given the categories Spinellis chose to rate: "file organization, code structure, code style, the use of the C preprocessor and data organization." All of these, particularly organization and style, seem ripe with opportunity for judgment. Spinellis does a thorough job, though, of defining what exactly defines these categories. He also lays out a solid set of metrics used for each kernel and is honest about where he is subjective.
The four kernels Spinellis examines are the hall of fame for enterprise servers: FreeBSD, Linux, Solaris and Windows. He does not specify which versions of the tools he researched; instead, he points out that this paper is specifically examining the OpenSolaris kernel and the Windows Research Kernel (WRK) along with the generic FreeBSD and Linux kernels.
The conclusions of the paper are interesting, and seem to reflect rather uncannily the developers who created the kernels in the first place.
Linux excels in various code structure metrics, but lags in code style. This could be attributed to the work of brilliant motivated programmers who aren't however efficiently managed to pay attention to the details of style. In contrast, the high marks of WRKB in code style and low marks in code structure could be attributed to the opposite effect: programmers who are efficiently micro-managed to care about the details of style, but are not given sufficient creative freedom to structure their code in an appropriate manner.
In other words, hippie geniuses built Linux, whereas talented drones built Windows. Sounds about right to me.
As another example, more efficient preprocessor use by WRK and Solaris could indicate, according to Spinellis, "better programming discipline." The BSD code, however, did not make use of preprocessor code as much, which Spinellis concludes "could be attributed to the age of the code base in conjunction with a gung-ho programming attitude."
I'm not one to toss around academic proceeding papers lightly because I know it's never a good idea to put readers to sleep. But this paper is a good read for those who like to check under the hood and get into the nitty gritty of code development.
Brian Proffitt is managing editor of JupiterWeb's Linux/Open Source channel, which includes Linux Today, LinuxPlanet, and AllLinuxDevices.