6 23août2026 Haiku a 25 ans! Le projet a démarré le 18 août 2001 avec l’ouverture d’une liste de diffusion et le premier fil de discussion « Ok, let's start » (Ok, allons-y). Le projet a été lancé suite à l’annonce de l’abandon de BeOS par Be, inc.

Depuis, le développement continue et plusieurs versions alpha et beta ont été publiées. Le système d’exploitation Haiku reprend les idées et l’architecture de BeOS, au point d’assurer la compatibilité binaire avec les applications existantes. Il modernise l’architecture du système et apporte de nombreux perfectionnements et améliorations, tout en restant dans l’esprit original.

L’objectif est de fournir un système pour l’informatique personnelle, facile à utiliser, léger et performant mais sans faire de compromis sur les fonctionnalités avancées. Ce trimestre, les grosses nouveautés sont l’arrivée de la virtualisation avec NVMM, et les préparatifs pour la version beta 6 qui arrive bientôt! Sommaire Virtualisation NVMM Applications Tracker DeskBar HaikuDepot SoftwareUpdater Icon-O-Matic ShowImage ActivityMonitor StyledEdit WebPositive TextSearch Media Player Cortex Devices Workspaces DriveSetup AboutSystem OverlayImage Préférences Bluetooth Outils en ligne de commande Kits Interface kit Package kit Support kit Network kit Media kit Serveurs app_server Print server Net server Bluetooth server Power daemon Systèmes de fichiers Pilotes matériels Péripéhriques HID Supports de stockage Bluetooth Réseau Cartes graphiques ACPI HDA Audio PCI libroot Noyau Options du noyau et des drivers Gestion du stockage et des systèmes de fichiers Gestion de la mémoire Gestion des évènements Ordonnanceur Processeurs x86 Bootloader Outils de compilation Documentation Documentation interne Haiku Book ARM & RISC-V Et alors, ça vient, cette bêta 6 ?

Ce rapport correspond aux changements effectués en mai, juin et juillet 2026 : il s’agit des révisions hrev59672 à hrev59921 du code source. Entre parenthèses à la fin de chaque note, le pseudonyme de la personne qui a effectué le changement. Certains développeurs contribuent uniquement sous pseudonymes, d’autres utilisent leur nom légal, mais par habitude c’est le pseudonyme qui est utilisé par défaut.

Virtualisation NVMM Le portage de NVMM (le virtualiseur de NetBSD) réalisé par DalmeGNU pendant le Google Summer of Code 2024 a été mergé. Cela permet en principe de lancer des machines virtuelles (avec QEMU) bénéficiant de l’accélération matérielle du CPU, et donc avec de bonnes performances. Le code est intégré dans la branche principale des sources de Haiku et sera disponible dans la bêta 6, avec tous les changements dans le noyau (y compris quelques fonctionnalités supplémentaires et un certain nombre de corrections de bugs).

Waddlesplash a ajouté le code nécessaire pour les processeurs AMD (le projet GSoC s’était concentré sur les processeurs Intel), et a commencé à améliorer les performances (les premiers essais de virtualisation donnaient des résultats plus lents que l’émulation purement logicielle de QEMU). La virtualisation semblait ne pas fonctionner, ni pour lancer Haiku ni diverses distributions Linux, ce qui semblait pointer vers un problème général dans le virtualiseur. Finalement, après investigation par SED4906, le problème déclenché par un système invité Haiku était en fait un bug n’ayant rien à voir avec la virtualisation.

Des modifications sur le pilote VESA pour implémenter le « live patching » et l’injection de modes vidéo supplémentaire dans le BIOS des cartes graphiques essayait de copier une zone de mémoire physique dans laquelle il n’y a rien. Cela ne pose pas problème sur une vraie machine, mais déclenche une erreur de NVMM (PulkoMandy). Les problèmes pour Linux et d’autres systèmes n’étaient pas liés, mais ont également pu être corrigés.

Une version de QEMU utilisant l’accélération NVMM est désormais disponible dans les dépôts de paquets. Cela fournit une solution pour lancer les logiciels pas encore portés vers Haiku, et facilite également le développement de Haiku en auto-hébergé sans avoir à constamment redémarrer la machine pour lancer une version de test du noyau. Applications Correction de plusieurs problèmes de messages et textes impossibles à traduire suite à de mauvaises utilisations des API d’internationalisation (Madmax).

Tracker Tracker est le navigateur de fichiers de Haiku. Il est basé sur les sources du Tracker original de BeOS avec de très nombreuses améliorations. Le code est un peu daté et fait l’objet depuis plusieurs années d’un gros travail d’amélioration et de nettoyage. jscipione poursuit les améliorations du Tracker: Correction de régressions sur la position du défilement lorsqu’on passe d’un répertoire à l’autre.

Glisser-déposer d’un fichier sur un autre fichier (par exemple pour l’ouvrir dans une application). Correction d’un bug d’affichage lors du glisser-déposer entre fenêtres du Tracker dont les icônes ne sont pas de la même taille. Retour en arrière sur une modification de l’affichage du « drag bitmap » pour en limiter la taille (sinon l’affichage est trop lent et consomme beaucoup de CPU).

Encore des corrections sur l’affichage de la poubelle (icône qui doit changer selon qu’il y a des fichiers ou pas dans la poubelle) sur le bureau et dans les panneaux de navigation Ouvrir/Enregistrer. Correction de problèmes de glisser-déplacer dans la fenêtre “racine” et désactivation du menu de choix des disques dans les panneaux d’enregistrement et ouverture de fichiers. Traduction du nom de la poubelle lorsque l’option pour traduire les noms des dossiers système est active (humdinger).

Correction de plantage (récursion infinie) dans du code de debug (non activé par défaut, même dans les versions “nightly” de Haiku, donc cela ne concerne que les développeurs) (PulkoMandy). Correction de problèmes de synchronisation entre threads dans BFilePanel qui cassaient parfois la mise en page de la fenêtre (des boutons et champs de texte se retrouvant en dessous d’autres contrôles ou en dehors de la partie visible de la fenêtre) (PulkoMandy et waddlesplash). Amélioration du placement des noms de fichiers édités (lors d’un renommage) et de la zone de sélection tracée autour (k32n13).

Correction d’un problème d’affichage du nombre d’éléments dans les dossiers ainsi que de la fenêtre d’informations détaillées sur les fichiers (Madmax). DeskBar DeskBar est la barre des tâches, également récupérée des sources de BeOS et grandement améliorée. Elle est cependant plus simple que le Tracker et ne nécessite pas autant de maintenance.

Petite amélioration de la fenêtre permettant de configurer le nombre d’éléments “récents” à afficher dans la DeskBar (jscipione). HaikuDepot HaikuDepot est le gestionnaire de paquets et magasin d’applications de Haiku. Il permet de découvrir et d’installer des logiciels, de les évaluer et de laisser des commentaires. apl continue le développement de HaikuDepot avec ce mois-ci : Régression déclenchant un crash lors de l’ouverture de fichiers hpkg.

Simplification des vues “indisponibles” (par exemple si un paquet n’a aucune revue par les utilisateurs, ou pas de capture d’écran disponible). Amélioration de la sélection de paquets dans la liste (pour pouvoir installer ou désinstaller plusieurs paquets d’un coup). Amélioration de la navigation au clavier.

La fenêtre demandant l’autorisation d’envoyer des statistiques anonymes a le bouton “refuser” activé par défaut. Vérification que la date du système est assez proche de celle du serveur (nécessaire pour éviter des problèmes de connexion SSL pour cause de certificat apparemment expiré). Désélection des paquets dans la liste des résultats lorsqu’ils sont cachés par un filtre de recherche.

SoftwareUpdater SoftwareUpdater permet de lancer les mises à jour du système et des paquets installés. Au trimestre dernier, une option pour supprimer automatiquement les points de restauration anciens a été ajoutée. Elle a été renommée avec un label moins technique et plus facile à comprendre (humdinger).

L’option « afficher plus de détails » a été déplacée de la fenêtre principale vers la fenêtre de réglages (humdinger). Icon-O-Matic Icon-O-Matic permet d’éditer des icônes au format vectoriel HVIF. Ce format très compact permet de stocker les icônes dans l’espace disponible dans l’inode de chaque fichier, permettant un accès très rapide par Tracker et les autres applications ayant besoin d’afficher des fichiers avec leur icône.

Correction d’un crash (Zardshard). ShowImage ShowImage est un visualiseur d’images. La barre d’outils était partiellement en dehors de l’écran lors de l’affichage en mode plein écran (nipos).

ActivityMonitor ActivityMonitor permet d’afficher des graphes de charge CPU, température des composants, utilisation mémoire, et toutes sortes de statistiques de la machine. Amélioration du calcul de taille minimale de la fenêtre (nipos). StyledEdit StyledEdit est un éditeur de texte.

Il permet d’utiliser du formatage qui est enregistré dans les attributs étendus des fichiers texte, ainsi le contenu peut toujours être manipulé par des outils manipulant du texte. Amélioration des menus pour configurer le style de texte : choix de couleurs, séparation des menus pour les polices de caractères et les styles (gras, très gras, fin, etc) pour éviter d’avoir un menu avec plusieurs douzaines de variations, peu pratique à naviguer (humdinger). WebPositive WebPositive est le navigateur web de Haiku.

Il utilise le moteur WebKit, co-développé par Apple, Sony et Igalia. Les URLs utilisées pour faire des recherches Google et DuckDuckGo sont maintenant les versions « no-AI » désactivant les résultats générés par LLM (nephele). Correction du dimensionnement des boutons de la barre d’adresse et des onglets pour les écrans à très haute densité de pixels (nephele, PulkoMandy).

Mise à l’échelle du bouton pour fermer la barre de recherche (Madmax). Lorsque WebPositive est ouvert en cliquant sur un lien dans une autre application, correction d’un bug qui pouvait aboutir à ouvrir un onglet supplémentaire avec la page d’accueil par défaut, en plus du lien cliqué (nipos). Suppression du code inutilisé qui implémentait un prototype d’interface à base de menu hamburger.

Amélioration de la barre d’adresse : meilleure gestion du cas d’une barre d’adresse vide, et de l’apparence du bouton “Go” (nephele). TextSearch Textsearch permet de faire des recherches dans le contenu de fichiers avec des expressions régulières. Il s’agit d’un équivalent graphique de grep.

Le menu affichant l’historique des recherches tronque les textes très longs, pour éviter d’avoir un menu plus large que l’écran (humdinger). Media Player Media Player est un lecteur de fichier multimédia (son et vidéo). Correction d’un bug empêchant de lire des vidéos en boucle (x512) Cortex Cortex est un gestionnaire d’application média, permettant de router la sortie d’une application dans l’entrée d’une autre et de manipuler les flux audio et vidéo de toutes sortes de façons intéressantes.

Retrait d’un contournement de bug de BeOS (plus nécessaire pour Haiku) et correction du gel de l’application lors de la suppression de nœuds média (x512). Devices L'application Devices affiche la liste des périphériques matériels de la machine. Aquamatic est en train de travailler sur cette application dans le cadre du Google Summer of Code.

Voir son article de blog pour tous les détails. Affichage du pilote utilisé et du chemin du périphérique publié dans /dev Amélioration de la disposition des éléments dans la fenêtre Affichage détaillé des descripteurs USB et décodage des descripteurs HID Affichage des périphériques Bluetooth Changements de quelques textes dans l’interface pour rendre les choses plus claires et utiliser le vocabulaire en usage dans le reste du système (humdinger). Mise à jour des listes d’identifiants PNP et ACPI avec les dernières versions disponibles (PulkoMandy).

Workspaces Workspaces permet de visualiser les différents bureaux virtuels et de plus facilement naviguer entre eux. Amélioration du texte de quelques éléments de l’interface pour les rendre plus compréhensibles et pour la cohérence du style d’écriture avec le reste du système (humdinger). DriveSetup DriveSetup permet de modifier la table de partition et de formater des partitions disque.

Il est maintenant possible de modifier le type de partition d’une partition existante, étape nécessaire pour une installation de Haiku en réutilisant une partition existante dédiée auparavant à un autre système (Nathan242). AboutSystem Aboutsystem affiche quelques infos sur la machine, sur la version de Haiku installée, ainsi que les noms de tous les développeurs ayant participé au projet et les mentions légales obligatoires. Mise à jour de la liste des participants au projet : ajout de plusieurs participants au Google Summer of Code qui avaient été oubliés, et déplacement de Philippe Houdoin de la section « ancien développeurs » vers « développeurs actifs » puisqu’il est de retour (PulkoMandy).

OverlayImage OverlayImage permet de placer une image en sur-impression sur le bureau ou dans tout autre endroit pouvant accueillir des _réplicants (NdM: leur faire passer le test Voight-Kampff ? Le terme est utilisé dans toutes les dernières nouvelles Haiku mais pas défini ou explicite. Pour vous appâter vers la documentation, sachez que c’est le nouvel ActiveX)._ Correction d’un crash (Waddlesplash).

Préférences Bluetooth La fenêtre de préférences permettant de configurer le Bluetooth. Vous aviez deviné. Mise en conformité du texte de l’interface graphique avec les règles de style (humdinger).

Outils en ligne de commande Mise à jour de la base de données des IDs USB, et ajout du décodage des descripteurs CDC-NCM dans listusb (PulkoMandy). Dans l’outil “workspaces”, ajout d’options pour se déplacer “géographiquement” (vers le haut, à droite, à gauche…) entre les espaces de travail. Ces paramètres peuvent être utilisés pour définir des raccourcis claviers personnalisés (korli).

Kits Haiku offre une API assez complète aux développeurs d’application en C++. Cette API est découpée en “kits” qui regroupe des grandes catégories de fonctionnalités. Certains de ces kits sont dans des bibliothèques séparées, d’autres sont trop interdépendants et donc liés ensemble dans la bibliothèque libbe.so.

Interface kit L'interface kit regroupe toutes les fonctionnalités liées à l’utilisation d’interface graphiques : fenêtres, vues, contrôles standardisés, pointeurs de souris… Correction de plusieurs bugs lié au « mouse tracking » dans BListView, par exemple des changements de sélection inattendus (X512). Une régression dans BTab:: SetEnabled empêchait de désactiver un onglet avant de l’attacher à une BTabView (waddlesplash).

Ajout de l’espace de couleur RGB 30 bit, utilisé par certaines machines Apple (smrobtzz). Correction de problèmes de curseur invisible, mauvais affichage des marges, et utilisation systématique des tailles de polices de caractères mises en cache pour améliorer les performances dans BTextView (k32n13). Correction d’un bug empêchant les raccourcis clavier de fonctionner lorsque la touche caps lock est active (Philippe Houdoin).

Correction d’un bug d’affichage des bordures des barres de progression avec le « control look » par défaut (Bill Hayden). Package kit Le Package Kit permet de manipuler les paquets logiciels et les dépôts permettant de les télécharger. Correction d’une fuite mémoire dans la gestion des jobs du Package Kit (waddlesplash).

Support kit Le support kit contient toutes les fonctions et structures de base indispensables: gestion des chaînes de caractères, listes, maps, et autres conteneurs utiles à toutes les applications. Correction de l’échappement des chaînes de caractères lors de la conversion d’un BMessage en fichier driver_settings. Ce problème empêchait d’enregistrer les paramètres des réseaux wifi dont le nom contenait un espace ou certains autres caractères spéciaux.

Cependant, il reste d’autres problèmes qui empêchent la connexion wifi de s’établir automatiquement au démarrage (madmax). Dans BStringList, ajout d’une variante de la fonction de tri Sort() utilisant une fonction utilisateur pour comparer les chaînes (par exemple pour faire un tri “naturel” de texte contenant des nombres) (korli). Modification du code générant un nom de CPU standardisé à partir du CPUID (sur les plateformes x86) pour faire confiance au champ « brand string » lorsqu’il est disponible (KevinAdams).

Correction de bugs dans BBufferIO (korli). Network kit Le Network Kit regroupe toutes les fonctions permettant la communication en réseau : gestion des interfaces, ouverture de sockets, client HTTP, etc. Correction d’un bug dans la comparaison d’objets BNetworkAddress de type AF_LINK (adresses MAC) (madmax). Media kit Le Media Kit permet de gérer les fichiers et les flux multimédia.

Il traite principalement de l’audio et de la vidéo mais pourrait être étendu pour d’autres usages impliquant des flux de données temps réel. Correction d’un crash dans le code de conversion d’espace de couleurs pour la lecture de vidéos (PulkoMandy). Serveurs Les “serveurs” sont des applications système complétant le fonctionnement des kits.

Ils sont l’équivalent des démons ou des services UNIX. app_server app_server est le serveur graphique se chargeant de l’affichage des applications à l’écran. Refonte de la façon dont les configurations d’écrans sont enregistrées dans app_server, de façon à restaurer la bonne résolution d’écran en cas de crash d’une application qui avait changé la résolution de façon temporaire (par exemple un jeu lancé en plein écran avec une résolution spécifique) (waddlesplash). Ajout de code pour une meilleure gestion des curseurs de souris accélérés par le matériel : sur les anciennes cartes graphiques, seul un curseur à 2 bits est disponible (pixels noir, blancs, transparents, ou inversés par rapport à ce qui est en dessous).

Certains pilotes n’implémentent l’accélération que pour ce type de curseur, mais les curseurs utilisés par Haiku sont plus perfectionnés (niveaux de gris et canal apha). Dans ce cas, app_server peut convertir le curseur dans le format supporté par le pilote et la carte graphique (PulkoMandy). Correction de problème d’accès au « frame buffer » pour afficher le curseur pendant un changement de mode écran.

Cela corrige un plantage dans le cas où on change de résolution d’écran et qu’on déplace la souris en même temps (waddlesplash). Correction de l’affichage du dernier pixel lors de l’affichage d’un bitmap avec un redimensionnement à filtrage bilinéaire (madmax). Correction d’une inversion de verrous dans le code de gestion des curseurs de souris (Waddlesplash).

Sauvegarde des réglages de luminosité de l’écran même si le fichier de préférences des espaces de travail n’existe pas (PulkoMandy). Print server Le print server se charge de tout ce qui concerne les imprimantes et les impressions. Suppression de l’imprimante « Enregistrer en PDF » installée par défaut, car elle ne fonctionne pas si le paquet « PDF Writer » n’est pas installé.

Cette imprimante peut être configurée automatiquement lors de l’installation du paquet (KevinAdams05). Ajout d’un test d’existence des add-ons d’impression avant de les charger. Auparavant, le serveur d’impression appelait load_add_on sans vérifier au préalable l’existence du fichier, puis détectait l’échec de cet appel.

Ce qui fonctionne bien, mais émet un message dans le syslog pour indiquer une erreur de chargement. Cette erreur pouvait perturber certains utilisateurs (Philippe Houdoin). Net server net server est responsable de toutes les opérations concernant le réseau : configuration des interfaces, obtention et renouvellement des baux DHCP par exemple.

Correction d’un plantage lors du chargement d’un fichier network_settings ne comportant aucune option, ce qui peut arriver si on efface la configuration de tous les réseaux connus (madmax). Bluetooth server Le serveur Bluetooth se charge de la découverte et de l’appairage des pér