November 28, 2012
This article was contributed by Bruce Byfield
Haiku, the open source re-creation of BeOS, threatens to become "The Duke Nukem of operating systems," joked long-time contributor Ryan Leavengood. Actually, after eleven years of development, Haiku still falls four years short of Duke Nukem Forever's long delay, but few other projects have been so long in development. However, with the recent release of Alpha 4.1, Haiku is at last nearing general release.
Haiku started in 2001, after Be, Inc. was bought by Palm and development
stopped on BeOS. Although never popular, BeOS had developed a cult
following due to its rethinking of the assumptions that go into most
operating systems, and the resulting simplicity and performance. To this day, some of its features, such as the customizable attributes
supported by its filesystem, remain either unimplemented on other operating
systems, or else implemented with more overhead and less efficiency by desktops
or specialized applications.
Consequently, BeOS retains a certain nostalgic cachet, with at least one distribution, ZevenOS, dedicated to recreating its user experience on Linux. Although Leavengood suggested vaguely that Haiku might interest modern users with older machines or concerns about viruses, more likely the main interest in the finished Haiku will be due to its unique structures and solutions. If nothing else, they retain a historical interest as roads not taken.
Reasons for the delay
Over the years, about twenty active developers have drifted in and out of Haiku, with occasional new contributors being attracted through Google's Summer of Code and Code-In. Along the way, project founder Michael Phipps and several others have had to drop out for personal reasons, but, by now, the core developers have become a close-knit team familiar with each other's preferences and long-accustomed to filling in for each other.
So why has the project taken so long? According to Leavengood, many of the
basics, such as the kernel, the API, and most of the subsystems for
printing, sound, and other basic functionality — the
"kits," in BeOS / Haiku jargon — were largely finished
in the first years of the project. He continued:
Probably, by 2004-5, you could run Haiku, and by 2006 it was self-hosting,
meaning that you could compile it within itself. But all of us are doing
this as a hobby, and we have to spend
the majority of our time with our jobs. Some developers have been hired for
temporary work [on Haiku], but not often. It's mostly a hobby, and real
life, as they say, gets in the way.
Moreover, as a small project, Haiku often faces an unresolvable dilemma. On
the one hand, struggling to keep pace with a much larger project can be
demanding for a small team of hobbyists. For example, Leavengood, who first
ported WebKit to Haiku, observed that at times WebKit can have
"hundreds of commits" daily.
On the other hand, when a key piece of software is forked, it can fall
behind the original version and become increasingly difficult to patch. Haiku ran into this second problem with GCC, finding that the fork of release 2.95 originally used by BeOS needed to be replaced with a much later release in order to build WebKit. What seems expedient in the short term may actually have created more work in the long term.
Now, however, "we are over the hump of the last twenty percent," Leavengood said, "and I think the general release is possible by next year."
A quick tour of the desktop
Exploring Alpha 4.1 makes Leavengood's prediction sound
plausible. Considering that it is an Alpha, the release is a relatively
mature milestone, with the operating system and many basic utilities
complete and stable. (It follows in a matter of weeks after Alpha 4.0,
whose release revealed timing and hardware compatibility issues that the
project lacked the resources to reproduce without the assistance of more
users.) It is available as
both a Live image and a virtual machine image for VMware and VirtualBox, and installs in well under ten minutes on most machines.
Overview documents of both the BeOS architecture and the Haiku desktop are available as icons on the desktop, as is a Welcome page. All three are concise and well-written starting points for exploring the system, although basic navigation should offer few challenges for most computer users. The greatest problem may be minor inconsistencies and unexpected usages.
Like BeOS, Haiku is designed for use with a graphical interface and a
built-in window manager. Currently, it is a 32-bit, single-user system,
although a 64-bit version and multiple user support are in development.
On first impression, Haiku resembles a minimal desktop environment, perhaps slightly archaic in appearance compared to GNOME or KDE, but, like Xfce or LXDE, lightweight and fast to boot or open windows. Desktop icons, virtual workspaces, desktop applets, and limited customization options are all available, although themes are not.
Linux users may note small idiosyncrasies. For example, minimizing or
maximizing windows is controlled by the same titlebar button, while multiple
windows can be converted into tabs in a single window, as they can be in
KDE. Similarly, although the desktop context menu has no item for adding
launchers, you can drag and drop items from a file listing directly to the
desktop. In many cases, expected functionality is available, but may not be
immediately obvious.
The most important of these idiosyncrasies is the deskbar in the upper right corner. Like the launcher in Unity, the deskbar is an unmovable access point for the main menu, taskbar, the file manager Tracker, and system settings. Although unmovable and sometimes requiring users to drill down several layers, on the whole it is an efficient use of desktop space, although more text-based than many modern users are accustomed to seeing.
Currently, the main shortcoming of the Haiku desktop is a lack of
applications. Printing to PDF is supported, but the browser does not
support Flash, for example. As described on the Welcome page, users can install BeOS applications, but by modern standards, many offer only limited functionality. Similarly, most of the applications installed with Haiku are basic utilities, such as a CD player, a screen capture program, and a media player. Moreover, most of the applications go unmentioned in the help pages and have names that will not only be unfamiliar to Linux users, but provide no clue to their function until opened.
Probably, the most advanced — and most important — application is WebPositive, the WebKit-based browser. Although short of features compared to Chrome or Firefox, WebPositive appears faster than both. Just as importantly, the browser helps to compensate for the lack of productivity tools such as spreadsheets or word processors by providing access to online tools like Google Docs.
Under the hood
Despite Haiku's graphical orientation, some of its most interesting features are
best viewed from the terminal. To start with, Haiku's filesystem hierarchy
begins with the /boot folder. It has three branches: /boot/system,
/boot/common, and /boot/home. The /boot/system
branch is written to only by software updates, while as part of the
preliminary support for a multi-user system, /boot/common is reserved for shared resources and configuration files, and /boot/home for individual user's resources and configuration files. Eventually, /boot/home will support separate home directories, but for now there is only one.
On each branch, the files for a piece of software have a similarly named
path. Although the paths are not identical — for instance, according
to the User Guide, /boot/common/add-ons is the equivalent to
/boot/home/config/add-ons — the paths are arguably more consistent than, for example, the locations of /bin and /share directories in Linux.
In addition, aside from a few time-honored abbreviations such as /config, the directory names are usually spelled out in full, making them slower to type, but easier to identify at a glance. Such organization makes knowing where to look for a particular resource much easier than in typical Unix-like systems.
Haiku also supports a modified version of Bash that, to judge from the help, seems included largely for scripting. An Introduction to Bash tutorial is available online, and the scripting chapter of the BeOS Bible is included as part of Haiku's installation.
However, probably the most interesting feature of Haiku is the filesystem's file attributes. To start with, files on Haiku have several unique attributes that are built into them. These include flags for setting whether single or multiple instances can be opened, and whether or not a file responds to system messages.
Even more interestingly, the filesystem allows users to create their own
attributes for files using Haiku's addattr command. Like a
spreadsheet cell, each attribute is a separate field, for which a specific content type is defined, such as string or numeric. Because they are implemented at the filesystem level, these customizable attributes help Haiku to index and search files with considerably less overhead than, for example, KDE's Nepomuk, which operates on the desktop level and uses its own database.
The advantages of custom attributes inspired the Haiku developers to make each email received by the system a separate file, rather than storing it in a specific application's database. As a result, emails can be searched and viewed in Haiku by ordinary file applications rather than by specialized mail browsers, which simplifies development and integrates emails into the filesystem. In effect, customizable attributes eliminate the need for a separate database layer.
Some of these features were present in BeOS. However, Haiku is also going
beyond BeOS, and includes features such as font anti-aliasing that BeOS
never had. Even in its present incomplete stage, Haiku aspires to be
thoroughly modern while being markedly different from any other operating
system available today.
Moving closer to the general release
"There are some people who use Haiku daily and get by with it," Leavengood said, but he immediately admitted that "usually they are those who came from BeOS and really like the system."
What is required for the general release is not hardware drivers, as some
might expect. Thanks to a compatibility layer, FreeBSD drivers can be easily recompiled to support Haiku. Nor, with the increasing popularity of web applications, are productivity applications the problem they were a decade ago.
Instead, Leavengood listed the remaining necessities as polish, "some kernel bugs to work out," and the need for "a fairly decent package management system." Haiku's software installation is already a straightforward matter of uncompressing zipped files into the correct directory, but the development team has a more ambitious vision for packages:
They won't really be installed. They'll be installed virtually. We'll use a
virtual filesystem that they're expanded on to, sort of like Java jar
files, where you don't every really expand a package on to disk per se, but
the class files are pulled out of it. There will be an aspect of the filesystem in the kernel that will make them look like files, but they really won't be. We want to put a nice GUI on top to manage that, and probably an app store-ish thing eventually.
One of the main reasons that this work remains unfinished, according to Leavengood, is that the two developers doing most of the work on the package manager will not be available for several months to work on it full-time. However, by the time they are, Leavengood said, "we can start working on the betas."
In some ways, Leavengood said, Haiku's decade-long development cycle may improve its chances of a favorable reception. "We're in a different world now from what we were when BeOS was around," he noted. "Windows, while still quite dominant, isn't dominant in quite the same way." Not only has OS X gained in popularity, but the rise of smartphones and tablets means that average users are more used to multiple operating systems.
Probably, Leavengood said, the first release will not be as complete as the development team would prefer. However, so far as he is concerned, the time is rapidly approaching when "we just need to do the best job we can and get it out there for the world."
In today's more diverse market, Leavengood suggested that Haiku can offer a hybrid design philosophy, specifically:
a merger of Linux and OS X. Like OS X, we want to be a complete and cohesive and sensible system, where everything is designed to work together well. [...] We wanted it to be open source, and we want it to be the kind of system that people can use without having to worry about DRM or other scary things hidden in the system. It's the kind of system where using it can be a political statement.
When the general release finally comes, Haiku may not gain many dedicated users. However, at the very least, it does stand a reasonable chance of being installed virtually and on secondary machines by many who are curious and, perhaps looking for fresh perspectives on operating system design. If so, they are unlikely to be disappointed.
(
Log in to post comments)