A Roundup of Free Operating Systems

The Free Software community is well known for its diversity. This is most obvious at the application level, but even exists in the context of operating systems. David Chisnall takes a break from UNIX-derivatives and explores some of the more esoteric options.

Like this article? We recommend

Like this article? We recommend

Whenever people thinks of a free operating system (if they do), the odds are
that they will think of Linux, a clone of UNIX from 1991. They also might think
of one or more of the BSDs, UNIX-derivatives dating back to the early
’80s. Let’s face it, though—UNIX is pretty boring. It was
great for a PDP-11, and it gets the job done now, but it’s not exactly
exciting.

Fortunately, the Free Software community has some much more interesting
projects which, even if they might not be as useful, are much more fun.

I Want to Be a... Haiku?

I have something of a soft spot for BeOS. It was the first mainstream
operating system built around the idea of concurrency and low latency. The BeOS
kernel was designed from the ground up to run large numbers of threads, and the
entire API was designed around this. Because interface elements had their own
threads, they didn’t stop responding when the application was busy. This
meant that BeOS always felt quick and responsive, even on slow systems. The
heavily threaded nature of the system also meant that applications tended to get
a significant boost from multiple CPUs.

For a while, it looked like BeOS might be bought by Apple to replace the
aging MacOS; however, the high price demanded by Be Inc. prevented this. The
company decided to focus on the embedded market with BeIA aimed at Internet
appliances. This killed the BeOS applications market, and turned out not to be
the brightest decision to make just before the dot-com crash.

A project called OpenBeOS began in 2001 to try to re-create the Be
experience. Due to trademark concerns, the project was renamed Haiku in
2004.

Haiku has come a long way in the last six years. The aim for the 1.0 release
is full source and binary compatibility with BeOS Release 5 (the last public
release). A lot of applications run already, and the team has implemented my
favorite feature from BeOS: the BFS. There are only two filesystems I consider
to have a truly elegant design—BFS and ZFS. While BFS lacks a few features
you would expect from a new design, such as snapshots, it is still a very good
choice for a desktop.

The basic design of BFS is close to UFS, with the addition of journalling and
the use of B+ trees to store directory contents. BFS inodes were at least one
disk block, because this is the smallest amount you can efficiently read from a
disk. This left about 200 bytes free per inode. Rather than waste this space,
BFS used this for "small data," or typed key-value pairs containing
arbitrary information.

While storing arbitrary metadata was nice, as was the fact that you could get
at it all just by reading the inode (making folder listings with metadata very
fast), BFS had one extra trick. It was possible to create folders containing
indexes of metadata, which would be automatically updated.

One of the ways in which BeOS gained some speed was to put the file icon into
the metadata. This meant that a single disk read would get all of the
information required to display a file in the Tracker (the BeOS file manager).
Haiku does this, too, but uses a highly compressed vector graphics format,
giving a much higher visual quality.

Haiku is more or less ready for their 1.0 release in terms of features,
although not in terms of bugs (a lot still remain). Hopefully this will improve
in the next few months, making Haiku a potentially interesting operating system
for future desktops.