# Haiku (système d'exploitation)

Haiku (anciennement OpenBeOS) est un système d'exploitation libre. Son but est d'être une version libre de BeOS, ce dernier ayant été abandonné en 2001, à la suite de la fermeture de Be. Il n'est ni basé sur Linux, ni sur BSD.

## Histoire

Le projet Haiku est lancé en 2001 par Michael Phipps à la suite du rachat par Palm de la propriété intellectuelle de Be Inc. Deux ans plus tard, il crée Haiku, Inc., une association à but non lucratif située à Rochester dans l'État de New York et visant à soutenir le développement du système d'exploitation Haiku.
En 2004, pour éviter d'éventuels problèmes de détournement de nom de produit, il est décidé de renommer OpenBeOS en Haiku. Il fait référence aux haïkus qui étaient affichés lorsque NetPositive, le navigateur web de BeOS, ne pouvait afficher la ressource web demandée, parce qu'elle n'existait pas (voir concernant cette erreur, l'article : Erreur HTTP 404).
D'octobre 2005 jusqu'à la fin de cette année, un des plus actifs développeurs d'Haiku, Axel Dörfler était payé par la communauté et a ainsi pu travailler à temps plein sur le projet. Une de ses premières tâches a été de permettre à Haiku de pouvoir démarrer sur un CD et ainsi créer un LiveCD.
Le 29 mai 2006, Michael Phipps annonce qu'un second développeur sera payé pour travailler à temps plein sur Haiku durant les vacances d'été de juin à août. Il travaillera principalement sur la couche réseau (compatible Bone, la couche réseau de BeOS 6 jamais officiellement sortie mais utilisée sous ZETA et inspirée de la couche BSD).
Durant l'été 2007, Haiku profite pour la première fois du Google Summer of Code, qui est un programme rémunéré visant à faire travailler des étudiants durant leurs vacances scolaires sur des projets de logiciels libres. À l'issue de cette première édition, plusieurs éléments d'Haiku ont été améliorés :
* la pile firewire de FreeBSD a été en partie portée ;
* une application de configuration graphique de la couche réseau a été développée ;
* une application gérant l'installation et la désinstallation d'applications supportant le format SoftwareValet utilisé du temps de BeOS a été développée ;
* un algorithme de precache a été implémenté visant à améliorer les performances des entrées/sorties ;
* plusieurs développements de la pile USB ont été réalisés, notamment l'ajout d'un mode de transfert isochrone et l'établissement d'une communication avec une webcam ;
* un ordonnanceur O(1) a été développé ;
* plusieurs développements sur la pile réseau.
Les développements ne sont pas complètement terminés, il reste bien des choses à développer et certains de ces étudiants continueront à travailler sur Haiku.
Après huit ans de développement, une version alpha de Haiku R1 est distribuée le 14 septembre 2009. La R1 Alpha 2 est sortie le 9 mai 2010, la R1 Alpha 3 le 20 juin 2011, et la R1 Alpha 4 le 12 novembre 2012. La R1 Beta 1 est sortie le 28 septembre 2018, soit 6 ans après la dernière version Alpha.
Le 10 juin 2020, sortie de la nouvelle version Haiku R1 bêta 2 que vous pouvez télécharger ou mettre à niveau à partir de la version R1 bêta. Plusieurs améliorations ont été apportées à cette nouvelle version : un plus grand support matériel, une meilleure stabilité générale, améliorations du navigateur WebPositive et portage de plus de logiciels, tels que LibreOffice, Telegram, Okular, Krita, AQEMU... ainsi que des jeux, FreeCiv, DreamChess, Minetest... de nouvelles préférences de saisie font leurs apparitions, une amélioration nécessaire du processus d'installation, l'émulation de la touche Méta dans le terminal.
Apportant son lot de révisions, Haiku R1 bêta 3 est lancée le 26 juillet 2021. Parmi les nouveautés figurent notamment un programme d'installation et un gestionnaire de paquets améliorés, des corrections de l'interface utilisateur, une version mise à jour de Webkit pour le navigateur Internet intégré, une meilleure prise en charge du système de fichiers XFS, une meilleure compatibilité POSIX, l'ajout de la langue tchèque qui porte le nombre de langues disponibles à 28, diverses optimisations au niveau des pilotes matériels, etc.

## Historique des versions

* Version courante
| Version | Date de sortie | Nom de l'OS | Architecture |
| Haiku R1/Alpha1 | 14 septembre 2009 | hrev33109 | X86 |
| Haiku R1/Alpha2 | 10 mai 2010 | hrev36769 | X86 |
| Haiku R1/Alpha3 | 20 juin 2011 | hrev42211 | X86 |
| Haiku R1/Alpha4 | 11 novembre 2012 | hrev44702 | X86, X86-64 |
| Haiku R1/Bêta1 | 28 septembre 2018 | hrev52295 | X86, X86-64 |
| Haiku R1/Bêta2 | 9 juin 2020 | hrev54154 | X86, X86-64 |
| Haiku R1/Bêta3 | 26 juillet 2021 | hrev55182 | X86, X86-64 |
| Haiku R1/Bêta4 | 23 décembre 2022 | hrev56578 | X86, X86-64 |
| Haiku R1/Bêta5 | 13 septembre 2024 | hrev57937 | X86, X86-64 |

## Objectifs

Le développement d'Haiku est d'abord focalisé sur la R1, qui est quasiment identique à la dernière version distribuée par Be, la R5. À tel point identique, que la compatibilité binaire est assurée. Sur ce point, en mars 2006, plusieurs applications, telles que VLC Media Player, Quake II et III, NetPositive ou encore l'éditeur d'image Wonderbrush, fonctionnaient aussi bien sous R5 que sous Haiku.
Une fois la R1 terminée, c'est la R2 qui pourrait être lancée. Cette version a pour but d'innover en apportant des fonctionnalités non présentes dans la R5 de Be. Avec cette version, la compatibilité binaire ne sera plus assurée. Un groupe de réflexion (Glass Elevator) établit une liste d'idées qui pourraient être implémentées.

## Les composants

Le noyau choisi par les développeurs d'Haiku est NewOS, qui a la particularité d'être léger et d'avoir beaucoup de similitudes avec celui de BeOS. Ce noyau qui a été modifié avec le développement d'Haiku est portable et fonctionne sur des microprocesseurs x86 et PowerPC, qui sont les deux architectures visées par Haiku.
Autour du noyau, différents services (les Kits) se chargent de remplir les autres fonctionnalités du système d'exploitation. Au départ, un groupe de développeurs différent devait s'occuper de chacun de ces kits, mais cette séparation n'est plus d'actualité aujourd'hui et tous les développeurs du projet contribuent à plusieurs parties du système.
Ce découpage du système en kits a permis une transition progressive depuis BeOS R5 : en effet il était possible de remplacer certains des kits de BeOs par les versions de Haiku, plus performantes. Ce fut également le cas pour certaines applications comme le visualiseur d'images ShowImage. Cependant, la compatibilité des composants dans ce sens n'est plus assurée ; le noyau de Haiku et ses kits présentent des fonctionnalités n'existant pas dans BeOS ce qui rend difficile le rétro-portage d'applications vers ce dernier.
Aujourd'hui, il est possible d'utiliser les versions alpha de Haiku, qui comportent une version fonctionnelle de tous ces kits. Certains sont légèrement moins complets que leur équivalent dans BeOS, mais d'autres sont en avance ou même entièrement nouveaux.

### Les Kits

Voici plus en détail les différents kits de Haiku :
* Application Kit : fournit les composants de base pour l'exécution d'applications graphiques ainsi que classes utilitaires (comme la gestion des chaînes de caractères) ;
* BFS, le système de fichiers (BeOS file system) et ses utilitaires. Ce kit est utilisé par SkyOS pour son système de fichier SkyFS ;
* Game Kit, le support de la bibliothèque OpenGL notamment ;
* Input Server, la gestion des entrées/sorties (clavier, souris et autres périphériques communiquant avec le système) ;
* Kernel, le noyau ;
* Locale Kit, permettant l'internationalisation (non présent dans BeOS) ;
* Media Kit, le serveur de sons, la bibliothèque pour les codecs et ces derniers ;
* MIDI Kit, implémentation du protocole MIDI ;
* Net Server, la couche réseau et les pilotes des composants réseaux ;
* Preferences Kit, regroupe toutes les applications permettant de configurer le système d'exploitation ;
* Print Server, le serveur d'impression et les pilotes d'imprimantes ;
* Screen Saver, l'économiseur d'écran et l'API associée ;
* Storage Kit, la gestion des périphériques de stockage et les pilotes d'écriture sur les différents types de systèmes de fichiers autres que le BFS ;
* Translation Kit, les translators et toutes les classes associées.