URL:     https://linuxfr.org/news/haiku-r1-beta-2
Title:   Haiku R1 bêta 2
Authors: pulkomandy
        ZeroHeure, zurvan, Davy Defaud, palm123, tankey, Ysabeau et Thomas Debesse
Date:    2020-05-18T09:35:42+02:00
License: CC by-sa
Tags:
Score:   4


Vingt mois après la première version bêta de Haiku, il était plus que temps pour une mise à jour ! La deuxième version bêta vient d’être publiée. Cette dépêche fait le tour des principaux changements et nouveautés.
![Léger comme une plume](https://www.haiku-os.org/images/haiku_logo_white.svg)


Haiku est un système d’exploitation pour les ordinateurs de bureau dont le développement a commencé en 2001. Il reprend les idées de [BeOS]( https://fr.wikipedia.org/wiki/BeOS) et assure une certaine compatibilité avec les applications écrites pour ce dernier.

----

[Dépêche LinuxFr.org présentant la version précédente](https://linuxfr.org/news/haiku-r1-beta-1)
[Site officiel du projet](https://www.haiku-os.org)
[Manuel de l’utilisateur de Haiku](https://www.haiku-os.org/docs/userguide/fr/contents.html)
[Page de téléchargement](https://www.haiku-os.org/get-haiku/)
[Notes de version](https://www.haiku-os.org/get-haiku/r1beta2/release-notes/)

----

Encore une version bêta ?
=========================
Il semble utile de rappeler la feuille de route du projet Haiku, qui a des définitions un peu inhabituelles des versions Alpha et Bêta.


L’objectif de Haiku est de fournir un système d’exploitation complet au moins iso‑fonctionnel avec BeOS R5.0.3 (la dernière version officielle de BeOS). Cette version sera la version R1. Il y a actuellement un flou assez important sur ce qui vient après cette version R1. Probablement une rupture de compatibilité, rendue nécessaire par l’obsolescence des outils ou la nécessité de corriger des erreurs de conception dans l’API. Par exemple, la compatibilité avec BeOS nécessite de compiler une partie de Haiku avec la version 2 de gcc, qui est largement obsolète (elle ne permet pas de compiler du code conforme à la norme C99 ni aucune des versions suivantes de C ou de C++).


Avant la version R1, sont prévues deux phases :

1. les versions Alpha, dont la première a été publiée en 2009, ont été publiées à partir du moment où il est devenu possible de compiler Haiku depuis Haiku (« _self hosting_ ») ; cette étape permettant aux développeurs de commencer à utiliser eux‑mêmes le système ;
1. les versions Bêta, dont la première a été publiée en 2018, ont démarré à partir du moment où toutes les fonctionnalités de BeOS R5.0.3, augmentée d’[objectifs supplémentaires décidés en 2010](https://dev.haiku-os.org/wiki/FutureHaiku/Features), ont été disponibles.


Le système restera encore quelque temps en bêta, phase pendant laquelle l’équipe a choisi de se concentrer sur les corrections de bogues, les améliorations des performances et la simplification l’expérience utilisateur. En parallèle, il faut essayer d’attirer les développeurs d’applications natives, sans lesquelles le système n’a pas de raison d’être (si c’est seulement pour lancer des applications conçues pour GNU/Linux, autant rester sous Linux).


À ces aspects s’ajoutent la nécessité de suivre l’évolution de l’informatique, par exemple au niveau des pilotes matériels ou du navigateur Web. C’est la partie qui demande probablement le plus de travail, suite au choix de ne pas réutiliser le noyau Linux qui aurait directement la plupart des pilotes nécessaires.

En conséquence, cette nouvelle version comporte peu de nouvelles fonctionnalités visibles. Il y en a tout de même quelques‑unes, car personne ne peut empêcher les contributeurs de faire ce qu’ils veulent, malgré tout.

L’objectif pour l’instant est de tenir un rythme d’une nouvelle version par an. Objectif encore manqué cette fois, puisque la version précédente date de septembre 2018 (1 an et 8 mois). C’est déjà beaucoup mieux que le trou de six ans entre la version alpha 4 et la bêta 1.



Configuration nécessaire
========================
Haiku n’est pas très exigeant quant au matériel nécessaire, n’importe quel ordinateur âgé de moins de quinze ans fera probablement l’affaire. Cependant, le système saura sans problème tirer parti d’une configuration plus performante :

- un ordinateur avec un processeur x86 (64 bits ou 32 bits) pouvant exécuter les instructions MMX ;
- une carte graphique compatible VESA et un écran d’au moins 800 × 480 pixels ;
- un clavier et/ou une souris ;
- environ 300 Mo de mémoire vive ;
- 2 Gio d’espace libre sur un disque dur ou une clé USB (ou choisir une utilisation autonome depuis un DVD).

Si votre processeur ne sait pas exécuter les instructions SSE2 vous ne pourrez pas utiliser le navigateur natif WebPositive (il s’agit d’une limitation du moteur HTML WebKit). Les développeurs de Haiku conseillent dans ce cas d’utiliser [NetSurf](https://netsurf-browser.org) en remplacement.



Principales nouveautés
======================
Il est difficile de lister tous les changements, puisque près de [900 tickets ont été corrigés](https://dev.haiku-os.org/milestone/R1/beta2) depuis la version précédente. Voici cependant quelques-uns des points les plus intéressants.



Périphériques d’entrée
----------------------
Les différentes fenêtres pour la configuration des souris, claviers et pavés tactiles sont maintenant regroupées dans une unique fenêtre de configuration.

Les boutons au‑delà du troisième ainsi que la molette horizontale sur les souris USB peuvent être utilisés.

![La nouvelle fenêtre de configuration avec une souris à cinq boutons](https://oshi.at/jUoeJP/mouse.png)



Matériel géré
-------------
Le pilote XHCI (USB 3) a été largement retravaillé et nettoyé pour résoudre la plupart des problèmes de compatibilité.

Il est maintenant possible d’utiliser les supports de stockage NVMe qui remplacent de plus en plus le SATA dans le matériel moderne.

Le travail sur le pilote Intel Extreme pour les contrôleurs vidéo Intel continue, avec une amélioration du fonctionnement sur les machines de génération _Sandy Bridge_ et précédentes. Les premières étapes pour l’affichage sur plusieurs écrans (en mode clone, pour le moment) ont été franchies.

Les pilotes réseau ont été synchronisés avec FreeBSD 12, permettant l’utilisation de l’Ethernet et du Wi‑Fi sur la plupart des ordinateurs. D’autre part, la désactivation d’une vérification de cohérence (_sanity check_) dans la pile réseau permet de multiplier par cinquante les performances de cette dernière.

Le pilote pour les cartes audio compatibles Intel HDA a également reçu quelques améliorations, mais il reste encore fort à faire pour avoir une sortie son fonctionnelle sur toutes les machines concernées.



Amélioration du processus d’installation
----------------------------------------
L’intégration du gestionnaire d’amorçage EFI se poursuit, il est maintenant automatiquement inclus dans l’image amorçable _anyboot_ (pour la version bêta 1, il avait été ajouté manuellement dans l’image disque publiée). Son installation reste manuelle mais est plus facile à réaliser car la partition EFI peut être montée depuis Haiku. D’autre part, divers bogues dans le gestionnaire d’amorçage ont été corrigés pour améliorer la compatibilité avec toutes les configurations.

L’installateur de Haiku permet d’activer ou de désactiver un certain nombre de paquets optionnels. Ces paquets (principalement des outils et bibliothèques de développement) sont maintenant désactivés par défaut en mode autonome (_live CD_), ce qui permet d’utiliser et d’installer le système sans problème sur les ordinateurs avec peu de mémoire (environ 300 Mo sont nécessaires).

![L’installateur montrant la liste des paquets optionnels](https://oshi.at/dTtrsh/installer.png)

DriveSetup, l’outil de partitionnement de disques, a reçu lui aussi plusieurs améliorations et peut afficher l’espace disponible sur chaque partition et détecter les volumes chiffrés.



Paquets disponibles
-------------------
Le projet HaikuPorts continue son travail pour fournir un ensemble de paquets prêts à installer sur Haiku. Citons par exemple l’arrivée de Rust et de Node.js.

Le dépôt _haikuports_ comporte 2 761 paquets dont 355 propres à Haiku.



Interface utilisateur
---------------------
La « Deskbar » (similaire à la barre des tâches de Windows) se dote d’un nouveau mode « miniature » qui occupe moins de place à l’écran. Elle s’adapte également beaucoup mieux aux écrans à haute résolution (avec des icônes dans les menus et le cartouche plus ou moins large selon le besoin) et peut être redimensionnée à la largeur souhaitée. Le mode « _auto‑raise_ » qui permet à la Deskbar de passer automatiquement en avant‑a été retravaillé pour éviter son activation intempestive. C’est maintenant le mode configuré par défaut sur les nouvelles installations.

![La Deskbar dans son nouveau mode compact](https://raw.githubusercontent.com/haiku/website/755767c1dd39e9124f72fadb4ce13a48136f6045/static/files/get-haiku/deskbar_minimode.png)


Tracker (le navigateur de fichiers) permet maintenant de faire une sélection « multi‑plage ». L’affichage a été optimisé pour corriger un problème de lenteur lors de l’affichage d’un dossier avec beaucoup de fichiers. La fenêtre d’information sur les fichiers liste leurs attributs étendus, qui auparavant n’étaient visibles que depuis la ligne de commande. Un modèle de fichier « contact » (pour l’application People) a été ajouté dans le menu afin de permettre de créer de nouveaux fichiers.


L’application SoftwareUpdater qui permet la mise à jour des paquets indique maintenant si un redémarrage est nécessaire après mise à jour. Le magasin de paquets logiciels _HaikuDepot_ a aussi été retravaillé et optimisé, avec par exemple l’affichage de plusieurs captures d’écran par application, la liste des paquets en attente de téléchargement, un indicateur clair pour savoir quand l’application est en train de télécharger des informations depuis le serveur de paquets, et une interface utilisateur un peu plus claire et compréhensible (bien que ce soit encore loin d’être parfait).

Le dock « LaunchBox » peut être lancé automatiquement au démarrage, et afficher de très grosses icônes en 96 x 96 ou 128 x 128 pixels.

Le Terminal dispose maintenant d’une touche Méta, indispensable entre autres pour les utilisateurs d’Emacs. D’autre part, la commande `uname` affiche la version exacte de Haiku en cours d’utilisation (numéro de révision « hrev »).

Le lecteur de médias peut se souvenir de l’emplacement où la lecture d’un fichier s’était arrêtée, et reprendre la lecture à cet endroit.



Navigateur Web
--------------
Haiku fournit le navigateur WebPositive, utilisant le moteur WebKit (partagé avec Safari chez Apple, Epiphany et les consoles Sony PlayStation, par exemple). L’adaptation du moteur pour Haiku se fait petit à petit, et il reste encore de nombreux problèmes de compatibilité et de stabilité. Cependant, les choses s’améliorent, cette nouvelle version bêta 2 vient avec une grosse mise à jour de WebKit (près de deux ans de travail) et de nombreuses corrections sur la couche réseau ([[WebSockets]]…) et le rendu graphique.

Le navigateur permet également de choisir une taille de police de base plus grande que 18 points si nécessaire.



Sécurité
--------
Une revue de tous les appels système est en cours pour détecter et corriger les plus gros problèmes de sécurité et possibilités de « planter » tout le système par un appel avec des paramètres incorrects (de façon volontaire ou pas).

L’ajout de SMAP et SMEP permet de vérifier au niveau matériel qu’il n’y a pas de confusion entre les espaces mémoire noyau et utilisateur. Cela nécessite d’expliciter dans le noyau tous les accès à l’espace mémoire utilisateur (remplacement des appels à `memcpy()` par `user_memcpy()`).


Le client FTP hérité de BSD, et qui n’était plus maintenu, a été remplacé par _tnftp_, une implémentation plus propre et avec moins de trous de sécurité.



Traducteurs de fichiers
-----------------------
Les traducteurs permettent aux applications de lire et écrire des fichiers sans avoir à se soucier du format utilisé.

Le traducteur WebP traite maintenant les images avec un canal alpha (transparence).

La _libjpeg_ a été remplacée par la _libjpeg-turbo_, un divergence simplifiée et optimisée qui gagne en popularité, car la _libjpeg_ ajoute de plus en plus d’extensions non standardisées au format JPEG standard.



Localisation
------------
La version coréenne a malheureusement dû être supprimée car elle n’était plus maintenue. Cependant, les traductions en danois, espéranto, frioulan, portugais européen, thaï et turc sont maintenant disponibles. Haiku peut être utilisé dans vingt‑neuf langues différentes. Le manuel d’utilisation est, quant à lui, disponible dans vingt de ces langues.



Informations pour les développeurs
==================================
S’agissant d’une version bêta, il y a relativement peu de nouveautés, l’objectif étant d’abord de stabiliser les interfaces de programmation (API) existantes et de corriger les dysfonctionnements. Cependant, des ajouts sont toujours possibles.



Compatibilité POSIX
-------------------
POSIX est un standard décrivant les API de systèmes de type UNIX. Implémenter les API POSIX permet de porter facilement un très grand nombre de programmes écrits pour fonctionner sur ces systèmes. Le standard évolue assez peu, mais il est assez vaste puisqu’il couvre de nombreux aspects : allocation mémoire, fils d’exécution, processus, réseau…

Haiku complète petit à petit son implémentation, en priorisant les parties nécessaires au portage de certaines applications :

- la fonction `posix_fadvice()` a été ajoutée, elle est sans effet pour l’instant (cette fonction est utilisée à titre indicatif à des fins d’optimisation) mais permet de simplifier l’adaptation de logiciels écrits pour d’autres systèmes POSIX ;
- une couche de compatibilité avec les périphériques réseau virtuels [TUN et TAP](https://en.wikipedia.org/wiki/TUN/TAP) de Linux a été ajoutée ;
- les fonctions `pthread_attr_getstack()`, `pthread_attr_setstack()`, `getpriority()`, `setpriority()` et `nice()` sont disponibles ;
- ​la constante `POSIX_SPAWN_SETSID` est ajoutée et son utilisation est possible dans `posix_spawn()` ;
- correction d’une déviation du comportement de `putenv()` par rapport à ce qui est spécifié dans POSIX ;
- la fonction `sysconf()` peut répondre aux demandes sur `_SC_HOST_NAME_MAX`, `_SC_REGEXP`, `_SC_SYMLOOP_MAX` et `_SC_SHELL`.


Game Kit
--------
Les API de Haiku sont découpées en « kits » regroupant un ensemble de fonctionnalités. Le « _game kit_ » regroupe des fonctions destinées à l’origine aux développeurs de jeux vidéo.

Une partie de ce kit est dédiée au son, avec la possibilité de lire de la musique ou de déclencher des effets sonores, en utilisant la classe [`BFileGameSound`](https://www.haiku-os.org/docs/api/classBFileGameSound.html). Jusqu’à présent, cette classe chargeait forcément le son à partir d’un fichier. Il est désormais possible d’utiliser n’importe quelle classe implémentant l’interface [`BDataIO`](https://www.haiku-os.org/docs/api/classBDataIO.html) : tamon en mémoire, _[socket](https://fr.wikipedia.org/wiki/Berkeley_sockets)_, ressources stockées dans le binaire de l’application…).



Interface Kit
-------------
Il est possible de créer une vue (BView) avec une couleur de fond transparente, permettant à la vue parente de rester visible.

Une nouvelle fonction permet de remplir un rectangle avec une image matricielle répétée en tuiles de façon optimisée.



Est‑ce que c’est l’année de Haiku sur le desktop ?
==================================================
À vous de voir !

Aujourd’hui, il est possible d’utiliser Haiku comme système d’exploitation principal. Le système est stable, de nombreuses applications Qt sont disponibles (et un portage de GTK est en cours), ainsi qu’un bon nombre d’outils en ligne de commande, dont l’adaptation depuis GNU/Linux se fait en général sans trop de problèmes. On pourra par exemple éditer des documents avec LibreOffice, versionner du code source avec Git et l’éditer avec Vim. Certaines applications intéressantes de KDE sont portées : l’[EDI](https://fr.wikipedia.org/wiki/Environnement_de_d%C3%A9veloppement_int%C3%A9gr%C3%A9 "Environnement de développement intégré") KDevelop, Calligra Suite, Krita, etc. — mais GIMP n’est pas encore disponible.

[![Tout plein d’applications](https://user-images.githubusercontent.com/2559260/84137217-b6ac1e80-aa8f-11ea-8361-2ea9bcb7f8a4.png)](https://user-images.githubusercontent.com/2559260/84137217-b6ac1e80-aa8f-11ea-8361-2ea9bcb7f8a4.png)


Cependant, il reste encore beaucoup de choses à améliorer ou à compléter. Les navigateurs Web les plus connus ne sont pas disponibles : pas de Chromium, pas même de Firefox en vue. Il faut se contenter d’[Otter](https://en.wikipedia.org/wiki/Otter_Browser) ou du navigateur natif WebPositive (et parfois jongler entre les deux pour contourner les problèmes de compatibilité).


Pour les joueurs, il faut garder en tête qu’il n’y a pas encore d’accélération 3D, et pas non plus de version de [Wine](https://fr.wikipedia.org/wiki/Wine) qui permettrait de lancer les jeux Windows (QEMU fonctionne, mais sans accélération processeur, ce qui limite rapidement les possibilités). Il faudra donc se contenter de jeux sur émulateurs (la suite RetroArch est disponible) ou de jeux pouvant fonctionner correctement sans accélération.

[![Des jeux qui fonctionnent tout de même très bien sans accélération 3D](https://user-images.githubusercontent.com/2559260/84137387-fa9f2380-aa8f-11ea-9b8a-5d161231b803.png)](https://user-images.githubusercontent.com/2559260/84137387-fa9f2380-aa8f-11ea-9b8a-5d161231b803.png)


_A priori_, il vaut mieux réserver Haiku aux utilisateurs les plus enthousiastes et prêts à accepter ces limitations, ainsi qu’aux développeurs dont les applications pourraient venir utilement compléter l’offre disponible.