URL: https://linuxfr.org/news/haiku-r1-beta-1 Title: Haiku R1 bêta 1 Authors: pulkomandy ZeroHeure, BAud, palm123, Davy Defaud, Ontologia, Zatalyz, vincent LECOQ et Benoît Sibaud Date: 2018年08月30日T09:01:32+02:00 License: CC By-SA Tags: libreoffice Score: 95 Haiku est un système d’exploitation conçu pour les ordinateurs de bureau. Il est facile à utiliser, léger, et cependant puissant. Après une longue période sans version publiée (la dernière version alpha date de 2012), [une version bêta vient enfin d’être publiée](https://www.haiku-os.org/news/2018_09_28_haiku_r1_beta1/) !  ---- [Comment lancer Haiku dans une machine virtuelle avec KVM ou VirtualBox ou...](https://www.haiku-os.org/guides/virtualizing/) [Le site officiel de Haiku](http://www.haiku-os.org) [Dépêche sur la précédente version R1 alpha 4](https://linuxfr.org/news/sortie-d-haiku-version-1-alpha-4) [Guide de l’utilisateur de Haiku](https://www.haiku-os.org/docs/userguide/fr/contents.html) [Notes de version](https://www.haiku-os.org/get-haiku/release-notes/) [Get Haiku! (téléchargements)](https://www.haiku-os.org/get-haiku/) ---- Qu’est‐ce qu’une bêta ? ======================= Le projet Haiku est connu pour son exigence sur la qualité des versions diffusées. Jusqu’en 2009, aucune version compilée n’était disponible au téléchargement, ceci afin de restreindre l’accès aux personnes suffisamment courageuses pour compiler le système elles‐mêmes et éviter de décevoir des utilisateurs naïfs. La version R1 de Haiku est définie comme « un remplaçant de BeOS R5, complet et fonctionnel ». À partir de là, on définit les versions bêta : « toutes les fonctionnalités sont présentes, mais il reste des bogues ». Et les versions alpha : « le système est capable de se compiler lui‐même, il est donc possible de l’utiliser au moins pour continuer à le développer » (c’est un peu la notion de « produit minimum viable » dont on entend parler de nos jours). L’arrivée d’une version bêta est donc une étape importante dans la vie du projet. Elle signifie que le système n’a plus besoin de nouvelles fonctionnalités, et que la prochaine étape est de corriger les bogues restants et de stabiliser le système pour atteindre la version R1. Qu’est‐ce qui a pris autant de temps ? ====================================== La dernière version alpha date de 2012, cela fait donc presque six ans que rien n’a été publié. Ce n’est pourtant pas faute de nouvelles fonctions à présenter (le journal des modifications ci‐dessous en est témoin). Pourquoi Haiku n’a pas publié de versions depuis tout ce temps ? Pour comprendre, il faut remonter en 2009. La version _alpha 1_ vient de sortir, une poignée de développeurs sont très actifs sur le projet, ce n’est toujours pas l’année de GNU/Linux sur le Desktop. Haiku semble donc promis à un avenir brillant. On y croit fort. La sortie de la version _alpha 1_ fut elle aussi une grande étape franchie dans la vie du projet. Et à cette occasion, une discussion s’est engagée entre les développeurs, puis avec les utilisateurs, pour réévaluer l’objectif de la version R1. En effet, il était clair que quelques années seraient encore nécessaires pour finir Haiku, et BeOS commençait déjà à accuser son âge. Le but initial de « remplacer BeOS » a donc été étendu avec, par exemple, la prise en charge du Wi‐Fi, une vraie gestion de l’USB et, surtout, quelque chose qui paraissait simple : « l’utilisateur doit pouvoir mettre à jour son système sans tout réinstaller ». C’est ce dernier élément qui a été plus compliqué que prévu. Nous avons choisi de concevoir un système de gestion de paquets permettant de mettre à jour non seulement le système lui‐même, mais aussi toutes les applications. Il s’agit là d’un chantier conséquent, avec des impacts à tous les niveaux. Mais surtout, cela a nécessité de mettre en place une infrastructure permettant d’héberger les paquets. Le problème est que Haiku n’était pas du tout prêt pour cela. Notre unique serveur était alors maintenu par une seule personne, dont ce n’était pas le métier. Nous avons donc été dépassés par le travail à accomplir, avec la mise en place des « _buildslaves_ » pour compiler les paquets, l’hébergement des binaires (qui prennent beaucoup de place), les miroirs à différents endroits dans le monde pour que tous les utilisateurs puissent facilement y accéder, etc. Nous avons finalement migré toute notre infrastructure sur un nouveau serveur, géré par une équipe d’administrateurs un peu plus conséquente et mieux organisée pour pouvoir accueillir plus de monde. Et ils sont enfin prêts pour publier une version de Haiku ! Qui développe Haiku ? =====================  Le projet a démarré en 2001 suite à l’annonce par Be Inc. de l’abandon du développement de [[BeOS]]. Plusieurs utilisateurs de BeOS et développeurs d’applications se sont rassemblés avec le projet (un peu fou) de réécrire entièrement le système. Les contributeurs sont presque tous bénévoles, même si occasionnellement certains travaillent à plein temps sur le projet (en fonction des moyens de l’association qui récolte les dons, et de leurs contraintes professionnelles respectives). L’équipe qui travaille sur Haiku est ouverte et accueillante aux nouveaux contributeurs, même ceux qui ne maîtrisent pas la programmation en C++ : il y a toujours à faire pour écrire le manuel de l’utilisateur, tester le système et remonter des bogues, traduire les applications dans différentes langues, etc. Une spécificité est l’absence d’un « chef », les décisions sont prises par consensus entre tous les membres du projet ou, au pire, par un vote, s’il n’est pas possible de mettre tout le monde d’accord. Nouveautés de cette version =========================== Gestionnaire de paquets -----------------------  C’est la grosse nouveauté dans cette version bêta. Il est maintenant possible d’installer des applications très facilement, soit en utilisant la ligne de commande, soit via l’application graphique _HaikuDepot_, qui permet également de voir quelques captures d’écran des applications et les commentaires et votes des autres utilisateurs. L’architecture du système de gestion de paquets est innovante : plutôt que d’extraire les fichiers du paquet lors de l’installation, ce dernier est monté dans un système de fichiers virtuel pour exposer les fichiers aux applications. En conséquence, il n’y a pas besoin de faire un suivi des fichiers installés par chaque paquet, l’installation et la désinstallation sont donc instantanées. Le gestionnaire de paquets conserve un historique des versions précédentes des paquets installés, ce qui permet en cas de problème de redémarrer le système dans un état antérieur et fonctionnel.  Cela a cependant un impact visible pour les utilisateurs : le dossier `system` qui contient Haiku et les applications installées est maintenant en lecture seule, puisqu’il est composé uniquement du contenu des paquets (à quelques exceptions près, pour les fichiers de configuration par exemple). C’est sécurisant (il est beaucoup plus compliqué de [désinstaller sa _glibc_](http://www.pafoo.net/uninstallglibc/uninstglibc.html) maintenant), mais parfois déroutant pour les anciens utilisateurs de BeOS et de Haiku, habitués à bricoler leurs fichiers système. Mises à jour de WebPositive ---------------------------  Le navigateur _WebPositive_ utilise une version plus récente de WebKit avec de très nombreuses corrections de bogues et nouvelles fonctionnalités. Il est, entre autres, possible de lire des vidéos YouTube. Il sait également naviguer avec [[Gopher]], en plus du HTTP. Préférences réseau ------------------  Suite à la prise en charge du Wi‐Fi dans la version _alpha 4_, les préférences réseau ont été repensées, pour permettre un accès plus simple à la configuration de chaque carte réseau. Ce panneau de préférences permet également de configurer les services réseau (serveur SSH, FTP, etc.) et peut être augmenté par des _add‐ons_ fournis par des applications tierces (VPN, serveur Web...) Interface utilisateur ---------------------  Le diable se cache dans les détails. De nombreux changements subtils ont été faits pour rendre l’interface toujours plus cohérente et agréable à utiliser. _Tracker_ (l’explorateur de fichiers) a vu toute sa partie graphique réécrite avec le nouveau système de « _layout_ », ce qui lui permet de mieux s’adapter à différentes tailles de polices de caractères (sur les écrans haute densité par exemple). Les quelques icônes manquantes ou qui étaient encore en format _bitmap_ et non vectorielles ont été remplacées. Le « décorateur » par défaut (qui définit le comportement et l’apparence des décorations de fenêtres) prend en charge Stack&Tile. Il s’agit au départ d’un [projet de recherche de l’université d’Auckland](https://researchspace.auckland.ac.nz/handle/2292/22117) dans le but de simplifier la gestion des fenêtres. Sans faire de Haiku un système travaillant uniquement avec des tuiles, il permet d’empiler ou de lier plusieurs fenêtres entre elles (pour toutes les opérations de déplacement, redimensionnement, minimisation, etc). Ceci peut être fait manuellement par l’utilisateur ou bien à l’initiative d’une application. Le navigateur NetSurf, par exemple, utilise cette possibilité plutôt que d’implémenter son propre système d’onglets dans une fenêtre. Multimédia ----------  Le multimédia était à la mode dans les années 90 et s’est donc retrouvé au centre de la stratégie de vente de BeOS. Haiku s’inscrit dans cet héritage et fournit tous les outils nécessaires pour consommer ou créer des fichiers audio et vidéo. Le décodage et l’encodage sont assurés par FFmpeg. C’est désormais la version 4.0.2 qui est utilisée afin de traiter les formats les plus récents, y compris pour les applications BeOS compilées avec gcc 2 (grâce à quelques astuces pour faire fonctionner du code compilé avec gcc 2 et gcc 7 dans le même binaire). Le _Media Kit_ peut maintenant traiter des fichiers provenant de l’Internet, sans téléchargement préalable dans un fichier ou un tampon mémoire temporaire. Cela simplifie l’écriture d’applications de diffusion en direct (_streaming_) pour écouter des webradios, par exemple. D’autre part, il est possible de regarder la télé via un tuner TNT. Enfin, un greffon spécifique a été ajouté pour décoder les fichiers audio APE (monkey’s audio), l’implémentation dans FFmpeg étant incomplète et ne prenant pas en charge toutes les variantes du format (cela permet en plus de valider le fonctionnement du cadriciel média de Haiku en présence de deux greffons pouvant tous les deux décoder un fichier donné). Bureau à distance ----------------- Il est possible de connecter deux machines fonctionnant sous Haiku et de déporter l’affichage d’applications de l’une vers l’autre. Ceci est fait au niveau des commandes de rendu entre l’application et le serveur graphique. Il y a donc en principe peu de transferts de données entre les deux machines, sauf si l’application manipule directement les données d’un _bitmap_ dans lequel elle demande aussi au serveur graphique de dessiner. Cette stratégie permet d’utiliser une bande passante réduite et d’obtenir de bonnes performances (potentiellement meilleures qu’en mode natif, puisque la machine qui fait fonctionner les applications est déchargée du rendu graphique). Si la machine sur laquelle on souhaite afficher les applications ne fonctionne pas sous Haiku, il est également possible d’utiliser un client en HTML5 qui fait le rendu dans un canevas JavaScript. Le serveur graphique se comporte alors comme un serveur Web et offre un accès via un WebSocket pour permettre à l’application HTML5 de récupérer les informations. Toutefois, le rendu n’est pas exactement identique dans ce mode de fonctionnement. Chargeur de démarrage EFI, partitions GPT ----------------------------------------- Il est désormais possible de démarrer Haiku en EFI et de monter les partitions d’un disque au format GPT (qui remplace l’antique MBR et n’a plus de limite à quatre partitions par disque). SerialConnect ------------- SerialConnect est un terminal série permettant d’utiliser les ports RS232 (intégrés sur la carte mère de la machine ou via un convertisseur USB). Bien que rarement utile pour la plupart des utilisateurs, cette application fera le bonheur des bricoleurs qui souhaitent connecter leur Arduino à Haiku. Et de toute façon, elle faisait partie de la liste des fonctionnalités de BeOS à reproduire. Les pilotes série (USB et 16C550) ont également été améliorés et complétés. Bluetooth --------- Il est possible d’appairer un périphérique Bluetooth avec Haiku. Mais aucun pilote n’a été développé pour l’instant pour faire quoi que ce soit d’autre. Les bases sont en place, au moins. Amélioration des performances ----------------------------- L’ordonnanceur a été complètement réécrit. Haiku peut maintenant utiliser plus de huit processeurs (la limite était imposée par l’API de BeOS, donc les applications plus anciennes qui n’ont pas été adaptées ne verront que les huit premiers). Le nouvel ordonnanceur a connaissance de la topologie des processeurs et de la mémoire cache et utilise ces informations pour programmer les fils d’exécution (_threads_) sur un cœur susceptible de déjà avoir en cache les données nécessaires. Haiku dispose maintenant d’une version 64 bits qui exploite les capacités des processeurs modernes. Il n’est en revanche pas encore possible de faire fonctionner les applications 32 bits sur un système 64 bits (le travail est très avancé mais n’a pas pu être intégré à temps pour la version bêta 1, il le sera sûrement dans une version prochaine). De façon générale, diverses parties du système ont été optimisées pour le rendre toujours plus réactif : les fonctions `memcpy()` et `memset()`, certains traitements particulièrement inefficaces dans le serveur graphique (pour le _clipping_ avec une forme arbitraire par exemple). Sécurité -------- Bien que ça ne soit pas la priorité principale du projet, Haiku se préoccupe un peu de la sécurité et de protéger les données de l’utilisateur. Plusieurs améliorations récentes à cet effet : * _Data Execution Prevention_, pour empêcher le processeur d’exécuter du code depuis une région de la mémoire supposée contenir des données ; * _Address Space Layout Randomization_, qui consiste à modifier l’organisation de la mémoire à chaque exécution d’une application, afin qu’un attaquant ne puisse pas deviner des adresses utilisées pour son attaque ; * _Supervisor Mode Access Prevention_, pour empêcher le code noyau d’accéder sans protection aux applications utilisateur (sauf sur demande explicite, via les drapeaux donnés lors de la création d’un espace mémoire) ; * _Supervisor Mode Execution Prevention_, pour empêcher le noyau d’exécuter du code provenant d’une application en espace utilisateur. Un nouveau débogueur -------------------- Dans la version _alpha 4_, _gdb_ était l’outil par défaut pour analyser les problèmes d’une application. Il a été remplacé par _Debugger_, un outil graphique plus facile à prendre en main. Lorsqu’une application plante, Haiku propose soit d’attacher le _Debugger_ pour une session interactive, soit d’enregistrer un rapport résumé de l’état de l’application (parfois suffisant pour remonter un rapport de bogue, surtout si le problème est reproductible), soit enfin de faire un « _core dump_ » de l’application qui pourra ensuite être analysé toujours en utilisant _Debugger_. Cette application dispose également d’une interface en ligne de commande, ce qui permet de l’utiliser en cas de crash du serveur graphique ou d’autres composants essentiels du système. Launch daemon ------------- Un nouveau démon a été introduit pour prendre en charge le démarrage des services et leur maintien en marche. Le démarrage du système n’est donc plus pris en charge par un script bash. Le démon surveille les services lancés et les redémarre automatiquement en cas de plantage. Il surveille également différents évènements afin de séquencer le démarrage du système, éventuellement en parallélisant plusieurs services. Pilotes VirtIO -------------- VirtIO est un bus de périphériques utilisé pour les machines virtuelles. Il évite d’émuler du matériel réel dans ces machines et fournit une interface plus appropriée permettant d’améliorer les performances. Haiku est doté de pilotes VirtIO pour le réseau, le stockage de masse, la mémoire vive « ballon » (qui peut être allouée et désallouée à chaud à une machine virtuelle en fonction des besoins), et le générateur de nombres aléatoires (récupérer de l’entropie de façon suffisante dans une machine virtuelle étant compliqué). Systèmes de fichiers réseau --------------------------- Il est maintenant possible d’accéder à des partages NFS v4 et Samba. BKeyStore --------- Le _Key Store_ permet de stocker des mots de passe pour différentes applications. Dans un premier temps cette API est proposée de façon expérimentale, elle sera amenée à évoluer en fonction des besoins des applications qui l’utilisent. Essayer Haiku ============= Matériel requis --------------- Vous aurez besoin d’un processeur prenant en charge MMX, de 256 Mio de mémoire, d’un écran en 800 ×ばつ 600 pixels au moins (certaines fenêtres de préférences ne tiennent pas dans un écran plus petit), et de 2 Gio d'espace libre sur un disque dur ou une clef USB. Cependant, il est recommandé d’avoir une machine plus récente, plus de place sur le disque pour installer de nombreuses applications et fichiers, et un peu plus de mémoire pour pouvoir lancer plusieurs applications simultanément. Les besoins en mémoire sont plus importants que pour BeOS, cela est dû à un manque d’optimisation du système (dans un premier temps le but est d’avoir un système qui fonctionne), à l’augmentation des besoins liés à l’environnement (écrans de plus haute résolution, vidéos HD, sites Web de plus en plus gourmands), à une utilisation plus importante de la mémoire en tant que cache pour le système de fichiers (les fichiers étant stockés sur disque dans des paquets compressés, mais décompressés dans le cache en mémoire pour un accès plus rapide — avoir de la place pour cela est donc très important pour les performances du système), et à des choix architecturaux différents pour s’adapter aux contraintes et aux exigences modernes (par exemple, le serveur graphique utilise un double tampon graphique, et tout le rendu graphique est anti‐crénelé, ce n’était pas le cas dans BeOS). Cependant, Haiku peut toujours fonctionner correctement, même sur une configuration modeste. Haiku fournit des pilotes pour les cartes graphiques Intel et Radeon, à défaut le pilote VESA sera utilisé et il n’est pas certain que le mode graphique natif de l’écran soit disponible (cela dépend du BIOS VESA fourni qui n’inclut pas toujours le mode vidéo de l’écran...). Pour le réseau, les pilotes utilisés sont ceux de FreeBSD 11, assurant une compatibilité avec les contrôleurs les plus courants. CD/USB autonome --------------- Vous pouvez facilement graver sur un CD ou copier sur une clef USB l’image de Haiku. Il s’agit d’un système autonome (_live_) qui permet également de lancer l’installateur. L’installateur réplique l’installation existante, il est donc possible de faire des modifications (ajouts de paquets, configuration, etc.), puis de faire l’installation par la suite en conservant tous vos réglages. Virtualisation -------------- Il est bien sûr possible d’utiliser Haiku dans une machine virtuelle. Quelques recommandations cependant : * pour QEMU, configurer la souris en mode « tablette » ou « écran tactile » permet d’avoir une souris avec des coordonnées absolues, par conséquent cela laisse le système hôte gérer la position de la souris et il n’y a plus de « _mouse grab_ » (capture de la souris dans la fenêtre de QEMU) ; * pour VirtualBox, il est possible de définir des résolutions d’écran personnalisées pour le pilote VESA, ceci vous permettra d’utiliser Haiku dans la résolution native de votre écran ; * toujours pour VirtualBox, la carte réseau émulée par défaut n’est pas très bien gérée par Haiku, il est préférable de choisir une des alternatives. Installation ------------ Si Haiku vous plaît, vous pouvez facilement l’installer à partir de l’image autonome (cela vous sera proposé au premier démarrage, sinon vous trouverez l’installateur dans le menu Deskbar). Il est recommandé d’avoir une partition de taille réduite pour le système (par exemple, 3 Gio) et de stocker vos données sur des partitions secondaires. En effet, il reste encore quelques bogues et les corruptions du système de fichiers ne sont pas aussi exceptionnelles qu’elles devraient l’être. N’oubliez pas de faire une sauvegarde de vos données si vous vous lancez dans un partitionnement de disque dur. Il est possible que vous rencontriez des problèmes au démarrage de Haiku (écran noir, gel sur l’écran de chargement, etc.). Dans ce cas, maintenir la touche `Maj` ou `espace` enfoncée pendant le démarrage vous permettra d’accéder à un menu permettant de configurer plusieurs options « sans échec ». En particulier, vous pourrez forcer l’utilisation du pilote VESA. Ces changements peuvent être rendus permanents, soit en éditant le fichier de configuration du noyau, soit en mettant en liste noire les pilotes dysfonctionnels. Logiciels disponibles --------------------- Haiku est compatible avec BeOS et permet de lancer les logiciels publiés pour ce dernier. Cependant, ces logiciels vieillissent et la plupart ne sont aujourd’hui plus maintenus. La logithèque pour Haiku est donc, grosse maille, découpée en trois parties : - des logiciels écrits pour BeOS, soit disponibles uniquement sous forme de binaires ([WonderBrush](http://www.yellowbites.com/wonderbrush.html), [Sync Modular](http://www.sync-modular.org/), soit mis à jour lorsque l’auteur a publié les sources ; un grand nombre de logiciels dans ce deuxième cas sont hébergés par [_HaikuArchives_](http://haikuarchives.github.io/software.html), une équipe qui assure l’archivage des sources (prise de contact avec les développeurs, clarification des licences...) et la maintenance, de façon communautaire ; - des nouveaux logiciels écrits exclusivement pour Haiku ; ils sont encore rares, mais nous espérons que cela va changer avec la mise à disposition d’une version bêta avec une API stable (citons par exemple l’éditeur de texte [Koder](https://github.com/kapix/koder)) ; - des portages de logiciels venus du monde UNIX (au sens large) ; on trouvera par exemple de nombreux logiciels utilisant Qt (dont LibreOffice, qui est enfin fonctionnel après des années de travail), des jeux reposant sur la SDL (version 1 ou 2), etc.  La plupart de ces logiciels sont disponibles via _HaikuDepot_. Soit ils sont dans le dépôt officiel [_HaikuPorts_](https://github.com/haikuports/haikuports), soit dans des dépôts supplémentaires fournis par certains membres de la communauté. Conclusion : expérience utilisateur =================================== Il devient donc aujourd’hui de plus en plus possible de travailler avec Haiku. On dispose d’un navigateur Web moderne, d’une version de LibreOffice, de quelques jeux, de diverses applications de discussion en ligne. Cependant, il reste encore du travail pour fournir une logithèque complète et surtout arriver à se passer complètement des applications portées depuis d’autres systèmes, qui sont très bien pour dépanner mais contribuent peu à l’expérience fortement intégrée que Haiku vise à fournir.