Mon premier jour avec Haiku: elle est étonnamment bonne


TL: DR; Le débutant a essayé Haiku pour la première fois et a décidé qu'elle était géniale. Surtout par rapport aux environnements de travail disponibles sur Linux


J'ai déjà partagé mes idées (ainsi que mes déceptions) sur #LinuxUsability ( partie 1 , partie 2 , partie 3 , partie 4 , partie 5 , partie 6 ). Dans cette revue, je décrirai les premières impressions de Haiku , un système d'exploitation open source pour les ordinateurs personnels. Parfois, les premières impressions sont utiles, mais comme vous n'obtenez vos premières impressions qu'une seule fois - j'ai enregistré la mienne ici.



Le système sur lequel j'écris cette critique


Ils peuvent être utiles aux développeurs de Haiku et / ou à d'autres parties intéressées.
Quelque part, je peux me tromper, car je viens de décrire la première expérience personnelle (lire: sur l'œil bleu). De plus, des gens sympathiques sur la chaîne #haiku sur le réseau irc.freenode.net m'ont aidé avec des conseils - je les publierai également. Merci aux développeurs de Haiku!


Ce que je voulais dire: Haiku n'est pas encore parfait à 100%, mais il a déjà un environnement de travail très serré.


L'installation


Le projet Haiku fournit quotidiennement des images de CD ou de DVD amorçables . J'ai utilisé une clé USB-3. On m'a dit que le démarrage à partir de l'USB-3 peut ne pas fonctionner, mais sur mes deux systèmes de test basés sur Intel, tout fonctionne parfaitement.


J'ai commencé le processus d'installation moi-même en téléchargeant une image pour 64 bits, que j'ai ensuite enregistrée sur une clé USB à l'aide d' Etcher . Le téléchargement fonctionne avec et sans EFI - mes applaudissements pour avoir fourni une telle image.


Haiku utilise son propre système de fichiers BeFS pour la partition de démarrage, bien que, en principe, la prise en charge de FAT32 et NTFS soit revendiquée. En général, 600 Mo suffisent pour le système, mais pour des applications supplémentaires, plus d'espace est nécessaire.


Par défaut, une partition de 600 Mo avec BeFS et une partition FAT32 d'une taille de 3 Go sont créées. Sur FAT32, il existe un fichier /EFI/BOOT/BOOTx64.EFI , ce qui implique la possibilité de démarrer sur des systèmes avec prise en charge EFI. Malheureusement, je n'ai pas trouvé de programmes pour augmenter la taille de BeFS, et j'espère qu'à l'avenir, ils feront un autre schéma de partitionnement du disque, car la taille de l'image de la partition est petite et il n'y a peut-être pas assez d'espace libre pour des logiciels supplémentaires. Ce serait bien si des progiciels supplémentaires étaient stockés sur la deuxième partition FAT32.


La même solution serait un avantage pour ceux qui souhaitent accéder aux fichiers directement à partir d'autres systèmes. Sous Linux, la lecture de BeFS est déjà prise en charge, il existe des implémentations pour lire et écrire BeFS sous FUSE .



Installateur Haiku


Ils m'ont donné un conseil: si vous voulez utiliser une partition plus spacieuse, installez Haiku sur une autre clé USB.
Pour moi, cette étape est, en principe, superflue, car le programme d'installation de Haiku ne sait pas comment diviser les disques, mais lance simplement le programme DriveSetup, dans lequel vous devez diviser manuellement le disque, ajouter une partition, qui est ensuite formatée en BeFS, après quoi le contrôle revient au programme d'installation. Vous devrez également installer manuellement le chargeur de démarrage à l'aide d'un programme distinct. Malheureusement, je n'ai pas réussi à démarrer à partir d'EFI avec une telle panne, car il n'y a pas de partition FAT32 avec des fichiers de démarrage pour EFI. Cela ne nuirait pas à l'installateur, qui sait comment décomposer automatiquement, y compris les fonctionnalités d'EFI.



BootManager installe le chargeur de démarrage sur le disque


Le processus d'installation lui-même prend un peu moins de trois minutes, ce qui est très rapide. Cela copie l'intégralité du système, composé "uniquement" de 4751 fichiers. La raison en est que la plupart des logiciels sont fournis sous forme de fichiers hpkg (quelque chose de similaire aux packages Snap sur les systèmes Linux) qui ne sont jamais installés, mais simplement montés. Fait intéressant, il existe de nombreux fichiers "gratuits", par exemple png. Pourquoi ne sont-ils pas opprimés?


Comme je l'ai dit, même le noyau du système d'exploitation se présente sous la forme d'un fichier hpkg. (J'ai parlé du fichier 4751, car j'ai lancé HaikuDepot avant de l'installer, ce qui a pompé un tas de tout. Une installation propre ne semble pas tous les contenir et peut être installée plus rapidement avec environ 200 packages. Cool! Comme on m'a dit, ce qui a été téléchargé les fichiers ne sont pas ignorés lors de l'installation - c'est une erreur logicielle . Wow, mais il semble que le premier rapport d'erreur ait été écrit à partir de ma soumission).


Premier démarrage


Le système démarre, montrant un joli économiseur d'écran, puis s'arrête: après le chargement, ma carte vidéo (Radeon) affiche un écran noir.


On m'a conseillé de démarrer en mode écran sécurisé avec une résolution de 1024x768 sur un moniteur FullHD. En principe, vous pourriez être confondu avec le chargeur de démarrage pour travailler avec FullHD, mais sur un autre ordinateur avec une carte graphique d'Intel, tout fonctionnait parfaitement.


Le système lui-même fonctionne de manière réactive à partir d'un lecteur flash, apparemment dû au fait que rien n'est écrit sur le lecteur flash pendant le fonctionnement, j'espère donc utiliser le lecteur flash comme système de travail principal. Vous obtiendrez un vrai système lors du démarrage à partir de l'USB, contrairement aux images Linux "live" de freinage.


Lors du démarrage, l'écran ne clignote pas, les messages du noyau ne sont pas visibles, il n'y a aucun sentiment que Xorg est vissé au cœur avec un ruban électrique bleu. Contrairement aux distributions Linux typiques, le noyau et l'interface graphique sont créés et adaptés l'un à l'autre ici!


Il n'y a aucune invitation à se connecter, car le système est conçu pour un seul utilisateur. Tout est simple, exactement ce qui est requis pour un ordinateur personnel.


Besoin d'assistance pour plusieurs utilisateurs - donnez-leur un lecteur flash, dont chacun ne coûte pas plus de 5 $.


Premières impressions sur l'environnement de travail


Si vous comparez la première impression - cela ressemble plus à un Mac qu'à, par exemple, sur Linux avec Gnome. La touche de commande fonctionne exactement de la même manière que sur le Mac. Bon!



Rien ne vaut un gestionnaire de fichiers spatiaux, on dirait un bon vieux Mac!


Le gestionnaire de fichiers par défaut est spatial (comme Macintosh System 1.0), malheureusement chaque fenêtre ne se souvient pas de ses paramètres (par exemple, l'affichage sous forme de liste ou d'icônes). Comme on m'a dit, il s'agit d'une erreur qui, je crois, ne sera pas difficile à corriger. (Malheureusement, écrire des rapports au «mimocrocodile» dans le bugtracker pour Haiku est difficile - il utilise un système original qui n'est pas basé sur GitLab ou GitHub, qui est également impossible à entrer avec leur aide). Les fichiers obtiennent leurs icônes, il n'y a aucun problème avec les fichiers individuels sur le bureau et les icônes.
Bon! Bien meilleure que les environnements de travail pour Linux, la simplicité se fait sentir.


Performances


Le système d'exploitation fonctionne intelligemment, même sur du matériel à faible consommation comme les netbooks Atom. Pas de couches logicielles gonflées. Bon!


Lunduke a déclaré que LibreOffice était plus rapide que les autres systèmes d'exploitation, mais je ne l'ai pas encore testé.



Bryan Lunduke. Haiku OS Beta - revue et expérience


Ligne de commande


La structure a un terminal. En général, malgré les petites différences avec Linux, je m'y suis immédiatement habitué, en fait - le bash habituel, qui est très content.


 Welcome to the Haiku shell. In it, you can easily launch applications that are on the $PATH: ~> Touchpad ~> echo $PATH .:/boot/home/config/non-packaged/bin:/boot/home/config/bin:/boot/system/non-packaged/bin:/bin:/boot/system/apps:/boot/system/preferences 

Ouah! " . " dans $PATH ! Cela signifie que vous pouvez exécuter des commandes directement à partir du répertoire actuel (Linux OS m'a dit un jour que le monde exploserait si j'essayais de le faire). Super!



bash en cours d'exécution dans le terminal de Haiku


Quoi de plus cool dans le terminal - vous pouvez appuyer sur ctrl + c pour copier, tout comme dans d'autres applications, contrairement aux environnements de travail Linux où vous devez appuyer sur ctrl + shift + c dans le terminal.
De petites choses qui montrent l'intégrité de l'ensemble du système.


Structure du système de fichiers


La partition d'où provient le téléchargement est montée sur /boot . Comme c'est facile!
Pas de tas /etc , /usr , /bin ... Juste /home et /system . Propre, simple, clair. Bon! (Pas vraiment: ils le sont, mais cachés. Pourquoi? Parce que /bin est /system/bin , il n'est pas nécessaire de l'afficher dans Tracker, mais les scripts l'utilisent toujours. Je pense que les développeurs devraient se débarrasser des choses obsolètes faites pour la compatibilité, car cela ne fait que compliquer la compréhension.)


packagefs


J'ai mentionné plus tôt les fichiers hpkg, qui sont quelque peu similaires aux packages Linux, mais ils ne sont pas installés, ils sont simplement montés (comme les packages snap). Le système de fichiers qui fait cette magie s'appelle packagefs. Il monte les fichiers hpkg au-dessus des autres; par conséquent, le répertoire / system entier est créé de cette façon.


La commande mount, malheureusement, ne montre pas ce qui est monté.


 ~> mount usage: mount [-ro] [-t fstype] [-p parameter] [device] directory -ro mounts the volume read-only -t specifies the file system to use (defaults to automatic recognition) -p specifies parameters to pass to the file system (-o also accepted) if device is not specified, NULL is passed (for in-memory filesystems) 

On m'a recommandé d'essayer mountvolume , qui affichera les partitions montées, mais, malheureusement, il n'affiche pas non plus les points de montage avec packagefs (il n'affichera que ceux associés aux partitions ou aux images de disque). [Heureusement, si vous exécutez mount ou df quelque part sur l'hôte avec docker, vous pouvez terminer quelques écrans! - env. traducteur ] Mais vous pouvez faire l'affaire avec df:


 ~> df -h Mount Type Total Free Flags Device ---------------------------------- /boot bfs 600.0 MiB 6.0 KiB QAM-PW /dev/disk/usb/0/0/0 /boot/system packagefs 4.0 KiB 4.0 KiB QAM-P - /boot/home/config packagefs 4.0 KiB 4.0 KiB QAM-P - /no name fat 2.8 MiB 2.3 MiB - M-PRW /dev/disk/usb/0/0/1 

Comme vous pouvez le voir, /system et /home/config dans /boot sont que packagefs.
Les personnes qui me connaissent savent que je suis un fan de la prise en charge du glisser-déposer dans les gestionnaires de fichiers: par exemple, j'utilise les suites d'applications de style NeXT ou AppImages .
Dans tous les cas, ce format de distribution de logiciels présente des inconvénients. Packagefs peut-il combiner le meilleur?


Comme vous pouvez le voir, dans mon cas (la partition système est pleine, mais je veux installer des applications), il serait plus élégant de télécharger des applications quelque part à l'aide d'un navigateur, tout comme je le fais avec des fichiers .dmg pour Mac ou AppImage. packagefs vit dans le noyau, donc ce n'est pas un système de fichiers pour FUSE (bien que je sache que FUSE est également en Haiku). On m'a également dit que peut-être à l'avenir des «zones packagefs» supplémentaires seraient créées, ce qui signifie très probablement que je peux dire à packagefs de sauvegarder les packages, par exemple, sur des partitions de disque distinctes. C'est à mon goût - si la partition de disque est sur un support amovible, je peux m'asseoir sur un autre ordinateur et y faire fonctionner des applications.


Ils ont également déclaré que l'installation des packages fonctionnait également avec la méthode du glisser-déposer: faites simplement glisser le fichier vers /system/packages ou vers /home/config/packages à installer, et si vous tirez le fichier à partir de là, il sera supprimé. Si vous faites glisser un package avec des dépendances non satisfaites, le système demandera leur installation préliminaire.


Au début, il n'était pas clair pour moi comment packagefs gère plusieurs versions du même package, que se passerait-il si je voulais installer, par exemple, différentes versions de gcc ou d'autres programmes GUI? (L'un des développeurs a déclaré: «packagefs lui-même ne contient rien qui empêche l'installation de plusieurs packages avec le même nom, mais comme libsolv d'OpenSuse est utilisé pour résoudre les dépendances, ce qui ne le permet pas, il était interdit de le faire et HaikuDepot lui-même dans les paramètres. "Je peux expliquer pourquoi j'aime l'idée avec les packages .app, AppDir et AppImages).


Bibliothèques dynamiques


Existe-t-il une technologie de bibliothèque dynamique? Oui, cela peut être vu, par exemple, si vous lancez l'application avec les bibliothèques manquantes en double-cliquant:



Pouvez-vous imaginer cela dans gnome, kde ou xfce?


Sous Linux, un tel lancement ne montrerait rien. Voyons combien de temps cela se fera dans différents environnements:



Et les chèques?


 ~> ldd bash: ldd: command not found 

Il est nécessaire d'utiliser un remplacement:


 ~> objdump -x /bin/bash | grep NEEDED NEEDED libreadline.so.7 NEEDED libhistory.so.7 NEEDED libncurses.so.6 NEEDED libintl.so.8 NEEDED libroot.so 

En principe, ldd serait mieux, car il montre en plus les chemins à partir desquels les bibliothèques seront chargées.
Et d'où chargent-ils vraiment?


 ~> echo $LIBRARY_PATH %A/lib:/boot/home/config/non-packaged/lib:/boot/home/config/lib:/boot/system/non-packaged/lib:/boot/system/lib 

Vous pouvez donc mettre la bibliothèque à côté du fichier exécutable, et cela "fonctionnera". Comme c'est génial! Vous pouvez simplement connecter des bibliothèques individuelles à l'application sans vous soucier de rpath ou définir la variable LD_LIBRARY_PATH comme sous Linux. Bon!


Il y a une bibliothèque (terrible sur Linux) /boot/system/lib/libstdc++.so.6.0.24.
Que faire si une application nécessite une version plus récente que celle de / boot / system / lib?
Un utilisateur ordinaire passera probablement à la dernière version, car il n'y a pas d'utilisateur "Administrateur" avec le mot de passe root sur ce système [l'auteur fait allusion à la simplicité - env. traducteur ].
Eh bien, c'est du moins ce à quoi ça ressemble. (En fait, «l'utilisateur» est analogue à root. Vous pouvez définir un mot de passe à l'aide de la commande passwd , puis définir PermitRootLogin=yes sur sshd_config , puis vous pouvez vous connecter en externe via ssh. Les développeurs m'ont dit que par défaut toutes les applications s'exécutent en tant que root En fin de compte, ils peuvent terminer cela ... Mais je ne sais pas si je l'aimerai.)


En raison du fait qu'il n'y a pas de distributions Haiku, les développeurs d'applications n'ont pas non plus accès à des versions plus récentes que celles disponibles en téléchargement sur votre système. Résultat: moins de frustration, les choses "fonctionnent juste". Grande simplification! Je l'aime.


Ressources et registraire


Comme mentionné ci-dessus, les applications ont un type et une icône, vous n'avez donc pas à vous soucier des fichiers sur le bureau ou similaires. Ils m'ont dit qu'il existe un registraire de service spécial qui connaît les applications, les types de fichiers et les icônes. Il est toujours notifié lors de l'installation d'un package ou lors du marquage d'un fichier pour exécution (à l'aide du programme chmod ou mimeset ).
Quelque chose comme Launch Services sur un Mac. Mais c'est quelque chose qui est absent dans les environnements de travail sous Linux . Super!


Les fichiers binaires reçoivent des icônes intégrées sous forme de ressources, vous n'avez donc pas besoin d'une icône distincte en plus des fichiers sur le bureau. Presque le même que sur le Macintosh System 1. Cool!



Types d'application, types de documents pris en charge, ressources intégrées et informations de version


Tracker (gestionnaire de fichiers) marque automatiquement les fichiers binaires comme exécutables. C'est ce que j'attends des environnements Linux depuis plus de 10 ans.
Tout cela est très satisfaisant. C’est cool! La vie devient si simple. C'est plus subtil et plus semblable à Mac que Linux XDG . Ou ça ...



Application Linux sans jeu de bits exécutables


Gnome a supprimé la possibilité d'exécuter des fichiers exécutables à partir du gestionnaire de fichiers, mais la communauté a fait des histoires et tout le monde est revenu.
Ils m'ont également dit que les applications utilisent la fonction find_paths() au lieu des /usr/bin et /usr/share codés en dur (une caractéristique commune des environnements Linux), ce qui signifie qu'ils peuvent être déplacés dans le système de fichiers. J'applaudis en position debout! Sous Linux, c'est "compliqué" comme d'habitude .


Ce qui m'a surpris


  • Il était gênant que /boot soit le point de montage de la partition d'où le système démarre. Pourquoi pas un " / "? Eh bien ou /Haiku ? (Explication: en effet, /boot est toujours une partition amorçable, elle apparaît sur le bureau comme «Haiku» car c'est son nom. Regardez « / » comme l'analogue de bureau dans Mac System 1, la racine de la hiérarchie qui n'existe pas vraiment sur lecteurs).
  • Le point de montage des packages installés par l'utilisateur est /home/config . Pourquoi pas juste /home ? (Un des développeurs m'a expliqué qu'il ne voulait pas obstruer le répertoire personnel, mais il me semble que config est un mauvais nom car il y a un bin/ sous bin/ répertoire à l'intérieur, donc ce n'est pas seulement le stockage des paramètres).
  • Quelle est la licence pour tout? Par exemple, dans le navigateur WebPositive lors de l'affichage de "À propos du programme", il n'y a aucune indication explicite. Le champ "À propos de ce système" indique que le code Haiku est sous licence MIT. Super! (On m'a également dit que WebPositive est livré avec le système d'exploitation sous la même licence, mais son moteur WebKit est, pour la plupart, sous BSD à deux points).

Qu'est-ce qui n'a pas fonctionné comme je m'y attendais


Tout d'abord, j'ai été frappé par le niveau de soutien de l'équipement. Tout a fonctionné sur mon netbook basé sur Atom, y compris le WLAN. Mais il y a quelques fonctionnalités dans le travail.


  • Inopérabilité totale sur le matériel Macintosh, indépendamment du mode EFI ou de l'émulation du BIOS ("Windows"). Le système se bloque simplement lorsque vous sélectionnez l'icône dans le chargeur de démarrage Mac. On m'a dit que c'est une fonctionnalité connue et peut être démarrée à l' aide de rEFIt , mais ces paramètres sont trop compliqués pour moi.
  • Accélérer les graphismes. Il semble qu'il soit toujours impossible d'utiliser Radeon (j'avais un écran noir), mais Intel ne se passe pas bien non plus. L'accélération vidéo WebPositive est uniquement logicielle, y compris H.264. Étonnamment, l'orientation originale est dans la vidéo. L'un des développeurs a déclaré que la vidéo dans WebPositive fonctionne à l'aide de hacks de frein.
  • Pas de son "Les pilotes de carte son sont toujours en transit", a expliqué le développeur. Besoin probablement de quelqu'un pour prendre en charge le pilote HDA comme USB-3. Maintenant, pour obtenir le son, un redémarrage à chaud à partir d'un autre système d'exploitation suffit, et je pense que ce sera corrigé d'une manière ou d'une autre.
  • Les boutons de contrôle de la luminosité et du volume ne fonctionnent pas. (La base est déjà sous la forme de l'application Raccourcis: vous pouvez lier n'importe quel raccourci clavier à n'importe quelle fonction que vous aimez, mais Haiku n'est pas encore en mesure de travailler avec les touches multimédias. Peut-être qu'il y a des volontaires?)
  • Commande tactile à deux doigts. Ne fonctionne pas hors de la boîte. Un panneau de paramètres indique "Aucun pavé tactile trouvé, les paramètres n'auront aucun effet". (Problème connu avec le périphérique d'entrée ELAN, ACPI ETD050A).
  • Avec l'application existante pour lire les fichiers des appareils photo numériques et des smartphones sur Android, la synchronisation dans les modes MTP et PTP ne fonctionnait pas pour moi. Ce serait formidable s'ils étaient montés comme les autres partitions du système.
  • La fermeture du couvercle de l'ordinateur portable n'est apparemment pas en cours de traitement. (Je sais que Haiku ne fonctionne toujours pas avec ACPI: le support est implémenté, mais pas connecté par défaut; il n'y a pas de réinitialisation du pilote)
  • Je n'ai pas pu créer de compte dans bugtracker, car captcha ne fonctionne pas dans WebPositive.

Les applications


Le but principal du système d'exploitation est de lancer des applications. J'avais peur que sous Haiku, il n'y ait pas de demande de travail réel. Heureusement, je me suis trompé, car il y a de l'espoir pour une amélioration - quand Haiku sera utilisé plus souvent.
Scribus (application de mise en page visuelle) l'est, et c'est une application très complexe basée sur Qt. Il existe également un QtCreator (IDE).


Je me demandais s'ils écrivent aujourd'hui des applications Be natives pour Haiku en utilisant des outils natifs (s'ils existent), ou s'ils utilisent simplement QtCreator (ce qui facilitera le portage d'applications multiplateformes). La position des développeurs Haiku est la préférence "explicite" pour les applications natives Haiku. Non? Je doute que les applications réelles ne soient pas multiplateformes (toutes les applications utilisées dans mon travail sont multiplateformes).


Prise en charge déclarée des applications WxWindows.


Le manque de support pour Gtk + est frustrant. Cela signifie que Haiku n'aura pas Gimp dans un avenir proche (enfin, je pense que oui), mais il y a un remplacement sous la forme de Krita!


De plus, je pense que nous avons besoin d'un moyen simple et compréhensible pour créer des applications pour Haiku, comme ceci - en utilisant Travis CI et GitLab CI.


Où allons-nous?


Haiku sera-t-il coincé dans le concept BeOS UX? Il me semble que, pour l'attractivité, elle doit vérifier soigneusement les nouveaux schémas UX lors de leur adoption, tout en restant fidèle à leurs fondamentaux.
Par exemple:


  • Restez simple, sans les 100 500 options qui rendent Linux «complexe».
  • Utilisez le curseur de la souris au lieu d'une main étrange.
  • Y aura-t-il un quai? (Je suis conscient qu'il existe quelque chose comme un Dock appelé LaunchBox , encore plus proche du Dock LnLauncher , mais le BeOS d'origine en 1998 avait déjà un Dock!)
  • Menu global? (Évidemment non, car le JLG ne voit pas beaucoup d'avantages).
  • Changement de fenêtre rapide? (Ils ont dit que vous pouvez essayer d'activer " Stack & Tile " en maintenant la touche Windows enfoncée tout en faisant glisser la fenêtre, mais ce n'est pas intuitif, de plus, cela ne fonctionne pas pour moi).
  • Animation d'ouverture et de réduction des fenêtres?
  • Des ombres à l'extérieur des fenêtres?
  • Soutenir des thèmes comme dans Aqua? (Oui, vous pouvez, il y a une infrastructure et des outils, par exemple, HaikuThemeManager , mais quelqu'un devrait créer des thèmes. Je l'essayerais moi-même, on m'a dit qu'il y avait de la documentation dans https://xref.plausible.coop/source / xref / haiku / en-têtes / os / interface / ControlLook.h, mais pas maintenant).

Ce sont des nuances subtiles, étant donné que le système ne doit pas perdre sa personnalité unique.


Conclusion


Haiku m'a vraiment ouvert les yeux, a montré comment l'environnement de travail «fonctionne tout simplement».
Il y a plus de 10 ans, je suis passé de Mac à Linux et depuis lors, je recherche le même niveau de sophistication et de beauté, et Haiku y correspond largement.


, , , , WLAN , " ".


, , , Linux.


( ) .


() .


.


: , , , " ", UNIX.


, ( ), .


#LinuxUsability . , Haiku , , Linux .


, : , .


! Haiku DVD USB, . Etcher .


: Haiku.


:

Source: https://habr.com/ru/post/fr461141/


All Articles