Architecture

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 (collectively known in Haiku as "kits"), 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.

MID I– 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 reading/writing/conversion 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 (VFS) layer and rudimentary symmetric multiprocessing (SMP) support.