Skip to main content
Seb's blog

Haiku R1 beta 3 - Haiku a 20 ans !

Ça y est, la troisième version bêta de Haiku est disponible, juste à temps pour fêter les vingt ans du projet le mois prochain !

Logo de Haiku


Dépêche pour la version R1 beta 2
Dépêche pour les 19 ans de Haiku
Site de Haiku
Télécharger Haiku


Haiku est un système d’exploitation inspiré par BeOS. L’objectif est de construire un système léger, facile à utiliser tout en permettant des usages plus avancés.

Une particularité est le choix de réutiliser assez peu de composants existants. L’idée étant d’avoir une seule équipe de développement en charge de tout le code source, ce qui permet de réaliser les modifications nécessaires aux bons endroits, et pas d’ajouter des couches d’abstraction et d’adaptation entre de multiples composants pas prévus pour fonctionner ensemble.

Le projet est actuellement en version bêta, ce qui signifie que toutes les fonctionnalités prévues ont été implémentées, mais qu’il reste encore de nombreux bugs à corriger.

Cette dépêche comporte des informations générales sur le projet, ainsi qu’une section présentant les principales nouveautés de la version bêta 3 qui vient d’être publiée.

Un peu d’histoire #

Le projet Haiku (au départ nommé OpenBeOS) a démarré officiellement le 18 août 2001 avec le premier message sur la liste de diffusion: Ok, let's start (OK, allons-y).

L’idée était de donner une suite à BeOS, un système d’exploitation non libre développé par Be Inc. Au début de l’année précédente, Be avait annoncé la mise en téléchargement gratuit de son système BeOS et un focus shift pour se concentrer sur les « internet appliances », ce qu’on appellerait aujourd’hui l’internet des objets. Un certain nombre d’utilisateurs et de développeurs de BeOS ne souhaitaient pas voir ce système disparaître, et se sont rassemblés pour essayer d’y donner suite.

En 2004, le projet était renommé pour éviter de potentiels problèmes de marques déposées avec BeOS.

En 2005, pour la première fois il était possible de lancer « Tracker » (le navigateur de fichiers de BeOS) sous Haiku.

En 2008, pour la première fois, il était possible de compiler Haiku depuis Haiku (self-hosting), ce qui était l’objectif de l’entrée en phase « alpha » et de la publication d’une première version. Trois autres versions alpha suivront jusqu’en 2012.

En 2010, un sondage auprès des développeurs et utilisateurs définit les objectifs de la version R1 de Haiku, donnant la direction à suivre pour les 10 années suivantes.

En 2013, Haiku fonctionne sur les architectures x86 64 bits.

En 2018, c’est l’entrée en phase « bêta » de la version R1. On considère que toutes les fonctionnalités prévues dans la version 1 de Haiku sont présentes, mais il reste de nombreux bugs à corriger avant d’avoir une version finale. L’objectif est de publier de nouvelles versions assez souvent pour permettre aux utilisateurs de tester le système, et aux développeurs de commencer à porter ou écrire leurs applications.

Statistiques de contribution #

Statistiques détaillées pour Haiku

Au total, 305 personnes ont participé à Haiku avec au moins un commit dans le dépôt Git. Ce nombre est sous-estimé, en effet avant 2011, Haiku utilisait Subversion, et les correctifs envoyés par des personnes n’ayant pas accès en écriture au dépôt Git n’étaient pas correctement attribués. De plus, il n’y a pas d’historique pour la première année d’existence du projet pendant laquelle il n’y avait pas du tout d’outil de gestion de code.

Après un pic d’activité entre 2008 et 2010 avec plus de 5 000 commits par an, les choses ont ralenti et depuis 2016, c’est seulement environ 1 400 changements qui sont intégrés chaque année. Haiku utilise Gerrit pour recevoir les correctifs des contributeurs et la plupart des changements sont relus attentivement avant d’être intégrés, afin de s’assurer de la cohésion dans le style de formatage du code, et d’éviter de rajouter trop de bugs.

Le contributeur le plus actif est Axel Dörfler, présent depuis le tout début et encore actif aujourd’hui, qui est l’auteur de 16,63 % des commits intégrés dans Haiku.

Chaque année, environ une soixantaine de personnes contribuent à au moins un changement. Chaque mois, ce sont quinze à vingt personnes.

Aujourd’hui le projet comporte environ 8 000 fichiers sources C et C++ (et autant d’en-têtes .h) qui représentent quatre millions de lignes de code.

Haikuports, les dépôts de paquets #

Statistiques détaillées pour Haikuports

Bien sûr, un système d’exploitation ne serait pas très utile sans logiciels à faire fonctionner dessus.

Haikuports est le principal dépôt de logiciels pour Haiku. Le projet a démarré en 2008, d’abord brièvement sous le nom de BePorts, avant d’abandonner BeOS pour se concentrer sur Haiku. Il s’agit d’un projet indépendant de Haiku, même si un grand nombre de contributeurs sont en fait impliqués dans les deux projets (le monde est petit).

Le projet est devenu très actif en 2013, lorsque Haiku s’est doté d’un gestionnaire de paquets. Auparavant, HaikuPorts pouvait être utilisé soit pour installer directement des logiciels compilés à partir des sources sur le système local, soit pour générer des archives .zip permettant de redistribuer ces logiciels. Il n’y avait pas vraiment de gestion des dépendances, ce qui limitait fortement son utilité.

Les années 2017 et 2018 ont été les plus actives, avec 2 500 puis 2 900 commits respectivement. Les choses semblent se stabiliser avec autour de 1 600 commits par an.

Au total, 250 personnes ont participé à Haikuports, soit entre 60 et 70 personnes chaque année depuis 2017.

Actuellement le dépôt contient 2 971 recettes donnant chacune les instructions pour compiler un paquet, ainsi que 1 257 correctifs nécessaires pour compiler certains projets. Le nombre de recettes augmente assez régulièrement depuis le début du projet.

La taille moyenne des recettes est de 88 lignes (incluant une description du logiciel, la liste des dépendances et de ce qui est fourni par le paquet, et les instructions de compilation et d’installation).

Un système d’intégration continue est en place, qui permet de compiler automatiquement les paquets à partir des recettes dès qu’elles sont ajoutées dans le dépôt git. Les utilisateurs de Haiku peuvent ainsi télécharger et installer directement les paquets pré-compilés.

Nouveautés de la version bêta 3 #

Processus d’installation #

L’un des objectifs de Haiku est d’être un système peu gourmand en ressources et facile à utiliser. Cela commence dès le premier démarrage depuis un DVD (ou une clé USB) d’installation, en essayant de guider l’utilisateur et de faciliter ses premiers pas.

Suite à la publication de la version bêta 2, une étude d’expérience utilisateur empirique (en visionnant de nombreuses vidéos de personnes testant Haiku sur Youtube) a permis de constater plusieurs problèmes d’utilisabilité et quelques bugs dans le processus d’installation. Cela a donc été un des aspects qui ont été améliorés dans cette nouvelle version :

Le gestionnaire de disques DriveSetup

Gestionnaire de paquets #

Haiku est fourni avec un gestionnaire de paquets disposant de fonctionnalités peu souvent rencontrées sur d’autres systèmes, telles que l’installation et la désinstallation de paquets par simple déplacement dans un dossier dédié, et la possibilité de démarrer le système dans un état antérieur, si une mise à jour se passe mal, ou à des fins de tests :

Le gestionnaire de paquets HaikuDepot

Interface utilisateur #

Pulse affichant le logo Intel

Serveur graphique app_server #

APIs #

Systèmes de fichiers #

La cohabitation et l’interopérabilité avec d’autres systèmes sont importants pour Haiku. Aussi, de nombreux systèmes de fichiers conçus initialement pour d’autres systèmes peuvent être lus et parfois écrits depuis Haiku :

Les systèmes de fichiers disponibles #

En lecture et écriture :

En lecture seule :

D’autres systèmes de fichiers peuvent être utilisés via FUSE et userlandfs : SMB et sshfs par exemple. Ils sont disponibles dans le gestionnaire de paquets.

Compatibilité avec BeOS #

La possibilité d’exécuter des applications compilées pour BeOS reste un des objectifs du projet. Bien que cela n’ait aujourd’hui plus un grand intérêt au quotidien (la plupart des applications ont été remplacées ou bien leurs sources ont été publiées et elles peuvent être mises à jour), tester ces applications permet de découvrir de nombreux cas particuliers dans le comportement du système et de corriger les bugs les plus tordus :

Compatibilité avec POSIX #

En plus des applications écrites pour BeOS, Haiku permet d’utiliser des applications venues du monde UNIX (ou plutôt GNU/Linux et BSD de nos jours). Par exemple, un grand nombre d’applications utilisant la bibliothèque Qt sont disponibles. Haiku essaie autant que possible de suivre strictement le standard POSIX, mais implémente également des fonctions supplémentaires sur lesquelles il y a un consensus parmi les autres systèmes :

Amélioration des performances #

Internationalisation #

Matériel et pilotes #

Son #

Amélioration des pilotes pour les cartes son à base de chipsets es1370 et intel HDA.

Stockage #

Réseau #

USB #

Cartes Graphiques #

Plans pour la suite #

Après vingt ans passés à développer le système, on peut se poser des questions sur l’absence de version R1 stable pour l’instant. Cependant, il faut se souvenir que le développement de Haiku est effectué en grande majorité par des volontaires sur leur temps libre, en jonglant souvent avec un emploi à plein temps et d’autres activités informatiques ou non.

En parallèle du travail des développeurs sur les versions bêta 2 et 3, du tri a été fait dans les rapports de bugs pour essayer de dégager une feuille de route pour les prochaines versions. Beaucoup de tickets ont été déplacés dans les jalons « Unscheduled » (qui signifie que ce n’est pas nécessaire pour la version R1) et R1.1 (pour les bugs les moins importants, pour lesquels on considère qu’ils ne justifient pas de bloquer la version R1).

Durant l’année de travail sur la bêta 3, ce sont environ 250 bugs qui ont été corrigés. Actuellement, le jalon R1 contient plus de 600 bugs, et cela va probablement augmenter après la publication de la nouvelle version bêta, car de nombreuses personnes vont essayer Haiku et découvrir de nouveaux problèmes.

Il reste donc encore au moins trois ans de travail sur la version R1 au rythme actuel. C’est beaucoup. En fait, c’est trop. La solution pour aller plus vite consiste à embaucher une ou plusieurs personnes pour travailler à plein temps sur le projet. Cela a déjà été fait plusieurs fois depuis 2010, d’abord avec des contrats ponctuels de quelques semaines ou quelques mois, puis un contrat plus long en 2014 avec un développeur qui a pu travailler à plein temps sur Haiku pendant environ un an.

Ces emplois sont financés entièrement par les dons reçus par l’association Haiku inc. Ces dons proviennent en partie de particuliers, et en partie de sponsoring de Google pour la participation au Google Summer of Code et au Google Code In. De plus, Haiku inc a reçu certains dons en bitcoins qui ont été oubliés sur un portefeuille électronique quelque temps et leur cours a pas mal augmenté.

Le budget est donc suffisant à présent pour embaucher un développeur pendant un ou deux ans avec un salaire raisonnable. Le problème restait de trouver une personne compétente et volontaire pour se lancer dans l’aventure. En effet, la plupart des développeurs actifs de Haiku ne souhaitaient pas quitter leurs emplois actuels. La situation va peut-être changer puisque Waddlesplash, un des développeurs les plus actifs, vient de quitter son emploi et est en discussion avec Haiku inc pour établir un contrat.

Après les versions R1 et R1.1, il est logiquement prévu une version R2. Dans celle-ci, des changements d’API et d’ABI seront faits (en plus, probablement, d’autres changements). Il n’est pas encore décidé si cette version assurera toujours la compatibilité avec les applications BeOS, et de quelle façon elle pourra le faire. Concrètement, on verra si l’un des développeurs qui souhaitent conserver cette compatibilité se propose pour effectivement implémenter quelque chose.

Le retour de la « promotion team » #

Durant les cinq dernières années et suite au départ de Matt Madia, il n’y avait plus vraiment d’équipe chargée de la publicité et du marketing. Une nouvelle équipe a été formée cette année et travaille sur plusieurs sujets : réorganisation du site web et de la documentation, amélioration de « l’onboarding » (accueil, embarquement) pour les nouveaux contributeurs, interviews des développeurs, remise en place d’une boutique de produits dérivés pour financer le projet, etc.

Portage de Haiku sur RISC-V #

Une autre grosse nouveauté cette année est le portage de Haiku sur une nouvelle architecture de CPU. Jusqu’à présent, seule la version x86 (32 ou 64bits) était fonctionnelle.

Ceci a été possible principalement grâce au travail de Kallisti5 et X512. Ces deux développeurs ont chacun reçu une station de travail RISC-V offerte par Haiku inc pour les aider à poursuivre leurs efforts (après avoir réussi à faire fonctionner le système dans qemu).

Les corrections faites dans le cadre de ce portage ont également permis de débloquer la situation pour la version ARM de Haiku, qui pourrait elle aussi devenir bientôt utilisable. À moins que la version SPARC soit prête avant.

Tous les changements pour la version RISC-V n’ont pas encore été intégrés dans le dépôt Git. Certains ont besoin d’être mis au propre afin de ne pas casser les autres architectures, d’autres sont en cours de revue et de relecture.

Le Google Summer of Code #

Haiku participe régulièrement au Google Summer of Code depuis 2006. Ce programme financé par Google permet d’accueillir des étudiants en tant que contributeurs à des projets open source, sous la forme d’un stage avec un développeur du projet servant de tuteur.

Cette année, quatre étudiants contribuent à Haiku dans ce cadre :

Tous les quatre ont passé avec succès la première évaluation après un mois de développement.

Migration des canaux de discussion IRC de Freenode vers OFTC #

Dans la dépêche de l’année dernière, on parlait de la fermeture du service d’archivage de conversations IRC Echelog. Malheureusement, moins d’un an après, c’est tout le réseau IRC Freenode qui a été fermé. L’ensemble des canaux de discussion de Haiku (à l’exception de certains canaux dans différentes langues qui ont choisi d’utiliser d’autres protocoles de communication) ont donc migré sur le réseau OFTC, un autre réseau IRC accueillant les projets de logiciels libres. L’enregistrement des conversations est maintenent fait par le service irclog de whitequark

Source

Commencer la discussion: Venez écrire un commentaire dans le forum