Haiku is a free and open-source operating system compatible with the now discontinued
BeOS. Its development began in 2001, and the operating system became self-hosting in 2008.
The first alpha release was made in September 2009, and the most recent was November 2012.
Haiku is supported by Haiku, Inc., a non-profit organization based in Rochester, New York,
founded in 2003 by former project leader Michael Phipps.
History
Haiku began as the OpenBeOS project in 2001, the year that Be, Inc. was bought by Palm,
Inc. and BeOS development was discontinued; the focus of the project was to support the
BeOS user community by creating an open-source, backward-compatible replacement for BeOS.
The first project by OpenBeOS was a community-created "stop-gap" update for BeOS 5.0.3 in 2002.
In 2003, the non-profit organization Haiku, Inc. was registered in Rochester, New York,
to financially support development, and in 2004, after a notification of infringement
of Palm's trademark of the BeOS name was sent to OpenBeOS, the project was renamed Haiku.
However, development would only reach its first milestone in September 2009 with the
release of Haiku R1/Alpha 1. Development
Haiku is written in C++ and provides an object-oriented API.
The modular design of BeOS allowed individual components of Haiku to initially be developed
in teams in relative isolation, in many cases developing them as replacements for the BeOS
components prior to the completion of other parts of the operating system. The original
teams developing these components, including both servers and APIs, included:
App/Interface – develops the Interface, App and Support kits.
BFS – develops the Be File System, which is mostly complete with the resulting OpenBFS.
Game – develops the Game Kit and its APIs. Input Server – the server that handles input
devices, such as keyboards and mice, and how they communicate with other parts of the system.
Kernel – develops the kernel, the core of the operating system.
Media – develops the audio server and related APIs.
MIDI – implements the MIDI protocol. Network – writes drivers for network devices
and APIs relating to networking. OpenGL – develops OpenGL support.
Preferences – recreates the preferences suite.
Printing – works on the print servers and drivers for printers.
Screen Saver – implements screen saver functionality. Storage – develops the storage kit and drivers
for required filesystems. Translation – recreates the readingconversion
modules for the different file formats. A few kits have been deemed feature complete
and the rest are in various stages of development. The Haiku kernel is a modular hybrid kernel
and a fork of NewOS, a modular kernel written by former Be Inc. engineer Travis Geiselbrecht.
Like the rest of the system it is currently still under heavy development. Many features
have been implemented, including a virtual file system layer and rudimentary symmetric
multiprocessing support. Package management
As of September 2013, Haiku includes a package management system enabling software to be
compiled into dependency tracking compressed packages. Packages can be activated by installing
them from remote repositories with pkgman, or dropping them over a special packages directory.
Haiku package management mounts activated packages over a read only system directory.
The Haiku package management system performs dependency solving with libsolv from the openSUSE
project. Compatibility with BeOS
Haiku R1 aims to be compatible with BeOS at both the source and binary level, allowing
software written and compiled for BeOS to be compiled and run without modification on
Haiku. This provides Haiku users with an instant library of applications to choose from, in
addition to allowing development of applications to resume from where they had been terminated
following the demise of Be, Inc. This dedication to compatibility has its drawbacks
though — requiring Haiku to use a forked version of the GCC compiler, based on version
2.95, released in 2001, which is now 13 years old. Switching to the newer version 4 of GCC
breaks compatibility with BeOS software; therefore Haiku supports being built as a hybrid GCC4/GCC2
environment. This allows the system to run both GCC version 2 and version 4 binaries
at the same time. The changes done to GCC 2.95 for Haiku include wide characters support
and backport of fixes from GCC 3 and later. Note that this compatibility applies to 32-bit
x86 systems only. The PowerPC version of BeOS R5 will not be supported. As a consequence,
the ARM, 68k, 64-bit x86 and PPC ports of Haiku use only the GCC version 4 compiler.
Despite these attempts, compatibility with a number of system add-ons that use private
APIs will not be implemented. These include additional filesystem drivers and media codec
add-ons, although the only affected add-ons for BeOS R5 not easily re-implemented are
Indeo 5 media decoders for which no specification exists.
R5 binary applications that run successfully under Haiku include: Opera, Firefox, NetPositive,
Quake II, Quake III, SeaMonkey, Vision and VLC.
Driver compatibility is incomplete, and unlikely to cover all kinds of BeOS drivers. 2D graphics
drivers in general work exactly the same as on R5, as do network drivers. Moreover, Haiku
offers a source-level FreeBSD network driver compatibility layer, which means that it can
support any network hardware that will work on FreeBSD. Audio drivers using API versions
prior to BeOS R5 are as-yet unsupported, and unlikely to be so; however, R5-era drivers
work. Low-level device drivers, namely for storage
devices and SCSI adapters, will not be compatible. USB drivers for both the second- and third-
generation USB stacks will work, however. In some other aspects, Haiku is already more
advanced than BeOS. For example, the interface kit allows the use of a layout system to automatically
place widgets in windows, while on BeOS the developer had to specify the exact position
of each widget by hand. This allows for GUIs that will render correctly with any font size
and makes localization of applications much easier, as a longer string in a translated
language will make the widget grow, instead of being partly invisible if the widget size
were fixed. Beyond R1
Initial planning for R2 has started through the "Glass Elevator" project. The only detail
confirmed so far is that it will switch to a current GCC release.
A compatibility layer is planned that will allow applications developed for Haiku R1
to run on Haiku R2 and later. This was mentioned in a discussion on the Haiku mailing list
by one of the lead developers, Axel Dörfler. Suggested new features include file indexing
on par with Unix's Beagle, Google Desktop and OS X's Spotlight, greater integration
of scalable vector graphics into the desktop, proper support for multiple users, and additional
kits. System requirements
x86 32-bit systems, like Pentium II 400 MHz Memory: 128 MB, to compile Haiku within itself
1 GB Harddisk: 700 MB
See also
Be File System Be Sample Code License
BeOS API Comparison of operating systems
Syllable Desktop Haiku Vector Icon Format
KDL List of BeOS programs
OpenTracker References
External links Official website
Haiku Tech Talk at Google on YouTube Ryan Leavengood. "The Dawn of Haiku OS". IEEE
Spectrum. Retrieved 30 April 2012.