# Haiku (Betriebssystem)

Haiku, ehemals OpenBeOS, ist ein Betriebssystem-Projekt, das in Anlehnung an BeOS als dazu binär­kompatibles Open-Source-System nach­program­miert und weiter­entwickelt wurde. Das Haiku-Projekt wird von der gemeinnützigen Haiku, Inc. mit Sitz in Rochester im US-Bundesstaat New York getragen.
Haiku baut nicht auf originärem BeOS-Quellcode auf, sondern wird vollständig neu geschrieben. Der Kernel beispielsweise basiert auf NewOS, einer Neuentwicklung des ehemaligen BeOS-Kernel-Entwicklers Travis Geiselbrecht, der später Zircon, den Kernel von Google Fuchsia, entwickelte. Bei der Entwicklung wird auch auf bestehenden freien Code aus BSD- und Linux-Projekten zurückgegriffen. Weite Teile des ursprünglichen BeOS sind bereits implementiert und lauffähig.
Die Haiku-Entwickler geben keinen Termin für eine mögliche Veröffentlichung der ersten offiziellen Version an. Im eigenen Blog informieren die Entwickler im Haiku monthly activity report (dt. monatlicher Haiku-Aktivitätsbericht) über erreichte Neuerungen.
Zwischenzeitlich sind vier offizielle Alpha-Versionen und vier Beta-Versionen erschienen. Weitere Vorabversionen zum Testen des Betriebssystems stehen in Form von inoffiziellen Festplatten-Images zur Verfügung, den sogenannten Nightly Builds, die auf eine Partition kopierbar oder mit Emulatoren bzw. Virtualisierungs­lösungen wie QEMU oder VMware lauffähig sind.
Seit 2013 ist ein Paketverwaltungssystem in Haiku integriert, sodass ein installiertes System darüber aktualisiert werden kann; bis dato musste das System stets vollständig neu installiert werden.
Im Rahmen des Google Summer of Code 2017 wurde für Haiku 3D-Hardwarebeschleunigung und Unterstützung für die Programmiersprache Swift entwickelt. Erstmals Teil des jährlichen Programmierstipendiums war Haiku 2007. 2018 wurde die Office-Suite LibreOffice portiert.

## Ziel

Ziel des Projekts ist es zunächst, die letzte veröffentlichte Version von BeOS vollständig nachzubauen und sie dann nach und nach zu verbessern. Dabei wird besonders auf Binär- und Quelltextkompatibilität zu BeOS geachtet, damit sowohl alte BeOS-Programme unverändert ausgeführt als auch neue Programme in gleicher Weise wie unter BeOS erstellt werden können.
Bei den nunmehr eingeführten x64- und Arm-Varianten entfällt der Anspruch an BeOS-Binärkompatibilität, die Quellcodekompatibilität besteht bei diesen Architekturen aber weiter.

## Technik

Haiku ist in C++ geschrieben und stellt eine objektorientierte Programmierschnittstelle (API) bereit.
Das modulare Design des BeOS macht es möglich, dass Systemkomponenten für Haiku in beinahe voneinander unabhängigen Teams entwickelt werden können. Der Nachbau der BeOS-Komponenten als freie Software hat Vorrang vor der Neuentwicklung anderer Teile des Systems. Die ursprünglichen BeOS-Teams, die entsprechende Komponenten einschließlich Servern und Schnittstellen entwickelten (zusammen in Haiku als „Kits“ bezeichnet), umfassten:
* App/Interface – entwickelt Interface Kit, Application Kit sowie das Support Kit.
* BFS – entwickelt das Be File System, das mit OpenBFS nahezu vollständig implementiert ist.
* Game – entwickelt das Game Kit.
* Input Server – entwickelt den Server, der Eingabegeräte (Tastatur, Maus etc.) und deren Kommunikation mit anderen Systembereichen handhabt.
* Kernel – entwickelt den Kernel, das Kernstück des Betriebssystems.
* Media – entwickelt den Audioserver und entsprechende APIs.
* MIDI – implementiert das MIDI-Protokoll.
* Network – schreibt Treiber für Netzwerkadapter und Netzwerk-relevante APIs.
* OpenGL – entwickelt die OpenGL-Unterstützung.
* Preferences – setzt die Möglichkeiten, Einstellungen am System vorzunehmen neu um.
* Printing – arbeitet am Drucksystem sowie Druckertreibern.
* Screen Saver – setzt die Bildschirmschonerfunktion um.
* Storage – entwickelt das Storage Kit und Treiber für benötigte Dateisysteme.
* DataTranslations – entwickelt Module zum Lesen/Schreiben/Konvertieren unterschiedlicher Dateiformate und Datentypen.
Einige Kits werden als vollständig implementiert (feature complete) angesehen, die übrigen sind in unterschiedlichen Entwicklungsphasen.
Der Haiku-Kernel ist ein modularer Hybridkernel und ein Fork von NewOS, ein vom früheren Be-Entwickler Travis Geiselbrecht geschriebener modularer Kernel. Viele Fähigkeiten wurden bereits implementiert, einschließlich eines virtuellen Dateisystems (VFS-Layer) und rudimentärer Unterstützung symmetrischer Multiprozessorsysteme (SMP).

## Paketverwaltung

Seit September 2013 hat Haiku ein Paketverwaltungssystem, Haiku Depot, durch das es möglich wurde, Software in komprimierte, Abhängigkeiten auflösende Pakete (packages) zu kompilieren. Zum Aktivieren von Paketen können selbige mittels pkgman aus Online-Paketquellen (repositories) installiert oder manuell in ein spezielles packages-Verzeichnis kopiert werden. Die Paketverwaltung von Haiku bindet aktivierte Pakete über ein schreibgeschütztes Systemverzeichnis ein. Das Paketverwaltungssystem löst Abhängigkeiten mittels libsolv vom openSUSE-Projekt auf.

## Systemvoraussetzungen (R1/Beta 4)

Mindestvoraussetzungen:
* Ein 32-Bit-Prozessor der x86-Architektur („IA-32“), z. B. Pentium II oder Athlon
* Arbeitsspeicher: mindestens 384 MB
* Monitor: ab einer Auflösung von 800 × 600
* Festspeicher: 3 GB verfügbar
Empfohlen:
* Ein 64-Bit-x86-Prozessor („x64“), z. B. Core i3 oder Phenom II
* Arbeitsspeicher: mindestens 2 GB
* Monitor: ab einer Auflösung von 1366 × 768
* Festspeicher: 16 GB verfügbar

## Geschichte des Namens

Direkt nach der Bekanntgabe des Kaufs von Be durch Palm am 18. August 2001 wurde das OpenBeOS-Projekt gegründet, indem eine Mailingliste mit diesem Namen eingerichtet wurde. Dies blieb zunächst auch der Name, als das Projekt konkretere Züge annahm, obwohl die Benutzung des eingetragenen Markenzeichens „BeOS“ als Teil des Projektnamens für rechtliche Unsicherheit sorgte.
Am 6. Mai 2002 wurde ein Namensfindungsprozess initiiert, bei dem um Einsendungen für Namensvorschläge gebeten wurde. Am 25. Oktober 2002 lief dann der Abstimmungsprozess zum neuen Namen an.
Am 5. November 2002 inszenierte Bruno G. Albuquerque, einer der damaligen Leiter des OpenBeOS-Projekts, als Scherz den Namenswechsel. Der neue Name sollte demnach „Walter“ lauten. Der Name leitete sich von einer Szene bei Garfield ab und erlangte im Laufe der Zeit eine gewisse Popularität innerhalb der OpenBeOS-Community, was dazu führte, dass Walter zum Codenamen für die Entwicklungslinie hin zu Haiku 1.0 wurde. WalterCon wurde zum Namen für die amerikanische Haiku-Entwickler-Konferenz (analog zu den BeGeistert-Treffen in Düsseldorf, Deutschland).
Am 19. Juni 2004 wurde auf der ersten WalterCon der neue, eigenständige Name Haiku eingeführt, nicht zuletzt, um etwaigen Rechtsstreitigkeiten mit dem nunmehrigen BeOS-Rechteinhaber Access (ehemals PalmSource) aus dem Weg zu gehen. Der Name geht auf die Fehlermeldungen des BeOS-eigenen Browsers NetPositive zurück, der Fehler beim Abrufen von Webseiten in der Form von Haikus, einer alten japanischen Versform, darstellt.

## Schwesterprojekte

Mit dem Niedergang von Be Incorporated entstanden unabhängig voneinander mehrere Projekte mit dem Ziel, BeOS in quelloffener Form nachzubauen. Neben Haiku waren dies unter anderem BlueEyedOS und Cosmoe. Als Sammelbegriff dieser Projekte wurde die Bezeichnung Open Standards BeOS-compatible Operating Systems (OSBOS) eingeführt. Die verschiedenen Entwicklerteams schlossen sich in der Organisation beunited.org zusammen und verabredeten eine Zusammenarbeit. Allerdings war Haiku zuletzt das einzige verbliebene aktive Projekt dieser Gruppe. beunited.org hat ihre Auflösung am 4. Januar 2007 bekanntgegeben. Das Haiku-Projekt an sich ist davon jedoch nicht betroffen und wird aktiv weiterentwickelt.

## Haiku-Vector-Icon-Format

Haiku-Vector-Icon-Format (HVIF) ist ein Vektorgraphikformat für Icons. Es wurde für Haiku erstellt und wurde bis jetzt ausschließlich dort implementiert, ist aber betriebssystemunabhängig. Eine große Besonderheit ist, dass die Icons in diesem Format üblicherweise unter einen Kibibyte groß sind, wodurch sie in den Metadaten von BFS gespeichert werden können, um von Haikus Dateimanager Tracker gemeinsam mit den anderen Metadaten der Datei in nur einem Lesevorgang gelesen zu werden. Da auch bei SSDs Datenträgervorgänge am langsamsten sind, führt dies zu einer besseren Geschwindigkeit beim Anzeigen von Ordnerinhalten.