Nouveautés et perspectives pour HAL

Posté par  . Édité par Benoît Sibaud. Modéré par Jaimé Ragnagna.
2
8
mai
2008
Technologie
HAL est une couche d'abstraction qui permet aux applications d'utiliser facilement et de manière uniforme les ressources matérielles disponibles.

Mercredi 7 mai, Danny Kukawka a sorti la version 0.5.11 du logiciel HAL après deux versions candidates. Dans le même temps, David Zeuthen – principal développeur – a publié un long courriel sur la liste de diffusion à propos de l'avenir de HAL.

Malgré une très large distribution de HAL, il ne faut pas oublier le numéro de version majeur : 0 ! Ceci exprime clairement que HAL n'est pas au bout de son chemin. HAL a déjà été ré-écrit de la version 0.4 à la 0.5, mais David a clairement indiqué la direction qui sera prise dans le futur et qui se nomme DeviceKit. Encore un Kit issu de freedesktop.org Ça fait un bail que David travaille sur l'évolution de HAL, et qu'il expose les limites actuelles du projet. Il a d'abord exposé les raisons d'une ré-écriture :
  • HAL est comme un siphon d'évier qui n'a pas été re-visité depuis longtemps
  • Le processus de production d'une version est lent car aucun développeur n'a de vision globale du projet
  • Trop dépendant de Linux/udev
  • Trop verbeux
  • HAL s'occupe de beaucoup de choses, mais pas du mieux possible
  • Inefficace : le projet passe très mal à l'échelle sur les grosses machines où hald peut prendre 1 minute à démarrer
  • Difficilement compréhensible par les développeurs, à cause d'une architecture trop complexe
  • Parfois redondant avec udev
Le concept de HAL est très bon et a montré sa valeur ces dernières années, notamment en conjonction avec PolicyKit et ConsoleKit. De plus, HAL a vraiment permis d'éviter beaucoup de duplication de code entre GNOME et KDE mais aussi entre le système et le bureau. Le concept est bon, mais l'architecture ne l'est pas assez.

Première chose, le projet n'est plus une couche d'abstraction. L'abstraction se fait à un plus bas niveau (noyau, Xorg, CUPS, SANE, etc.). Par contre, la collecte et la fusion des informations dans un format unifié est vraiment le rôle du projet. L'autre point clef du projet est la gestion de sous système particuliers : USB, énergie, volumes et peut-être aussi appareil photos, imprimante, scanner, etc.

David a déjà travaillé sur trois nouveaux projets prototypes afin d'éclairer l'avenir de HAL :

DeviceKit
Le cœur de la nouvelle architecture : un démon système qui liste les périphériques, relaie les évènements et fusionne les informations/défauts du matériel. Un périphérique n'utilise plus d'UDI, mais le chemin natif du périphérique dans l'OS hôte, un fichier UNIX (optionnel) et les traditionnelles clef/valeur décrivant les informations.

DeviceKit-disks
Un service système qui s'occupe des périphériques bloc. C'est le domaine privilégié de David Zeuthen. Le projet gère actuellement :
  • Création, édition de l'étiquette, montage et démontage de volume ;
  • Création, modification et suppression de table de partition ;
  • Ajout/suppression de composant, démarrage et arrêt de RAID
  • Création, verrouillage, déverrouillage et changement de phrase de passe des volumes chiffrés ;
  • Effacement sûr (pas encore de l'effacement en plusieurs passes)
  • Extraction des données SMART et stockage de l'historique dans une BD
En gros, c'est déjà plus fonctionnel que ce qu'on a avec HAL actuellement !

gnome-disk-utility
Il s'agit simplement d'une interface à DeviceKit-disks pour GNOME, reprenant largement l'interface de Disk Utility.app de Mac OS X.
Il y a d'autres sous-systèmes à implémenter : USB, Firewire, Audio, énergie, etc. Le but de David est de voir DeviceKit pointer son nez dans Fedora 10/GNOME 2.24 pour migrer avec Fedora 11/GNOME 2.26. David s'y consacrera dans les prochains mois (sachant qu'il est employé par Red Hat).

Le projet sera certainement très actif avec des pointures du logiciel libre : Richard Hugues, Rob Taylor, Lennart Poettering, Martin Pitt, Bastien Nocera et Danny Kukawka. Certainement plus que HAL grâce à sa modularité. La discussion est déjà très active :)

HAL et DeviceKit seront installables en parallèle pour faire migrer tout ce monde là. L'arrivée de DeviceKit confirme l'utilité de Solid de KDE.

Aller plus loin

  • # Bien

    Posté par  . Évalué à 3.

    Un bon projet.
    J'ai quand même souvent du mal à le configurer, et à l'utiliser...

    @+
    Guillaume
  • # Correction dépeche ?

    Posté par  . Évalué à 6.

    >Inefficace : le projet passe très mal à l'échelle sur les grosses machines où hald peut prendre 1 minute à démarrer

    Je cite le mail D. Zeuthen :
    "- Inefficient
    - Just doesn't work very well on big iron boxes / doesn't scale
    - If you've dealt with these socalled Enterprise Linux releases
    you've probably seen a ton of bugs where it takes ~1 hour for
    hald to start up"

    Donc c'est pas 1 minute pour démarrer, c'est 1 heure non ?
    • [^] # Re: Correction dépeche ?

      Posté par  . Évalué à 2.

      J'imagine que c'est 1mn quand ça ne bug pas !
    • [^] # Re: Correction dépeche ?

      Posté par  (site web personnel) . Évalué à 10.

      Autre correction: "kitchen sink" dans ce contexte ça veut dire "usine à gaz", et non pas "siphon d'évier".
    • [^] # Re: Correction dépeche ?

      Posté par  (site web personnel) . Évalué à 3.

      J'aime bien aussi cette petite note de mépris : "ces prétendues versions Entreprise de Linux".
      Ceci dit, c'est vrai que le LiveCD Mandriva One Xfce bloque, chez moi, sur "detecting hardware"... Et que j'attends maxi 5 minutes avant de dire que c'est planté et qu'on réessayera une autre fois, ou sur une autre machine.
  • # justement, quel impact sur Solid de KDE4 ?

    Posté par  . Évalué à 1.

    C'est mentionné à la toute fin de l'article, mais quel sera l'impact sur Solid du passage de HAL à Devicekit ? Est-ce un concurrent à Solid ? ou alors Solid s'appuiera sur Devicekit à la place de HAL ?
    • [^] # Re: justement, quel impact sur Solid de KDE4 ?

      Posté par  . Évalué à 2.

      > mais quel sera l'impact sur Solid du passage de HAL à Devicekit ?

      Il n'y a pas vraiment de passage de HAL à DeviceKit. Les deux peuvent cohabiter.
      Le passage sera fait par/pour ceux qui le jugent utile (c-à-d si les nouvelles fonctionnalités de DeviceKit sont jugées suffisament sexy pour justifier l'effort de migration).
      M'enfin, les développeurs de HAL se limitant à la maintenance minimum de HAL (ce qui se comprend), il y a une sorte de passage de HAL à DeviceKit.

      > Est-ce un concurrent à Solid ?

      Non.

      > ou alors Solid s'appuiera sur Devicekit à la place de HAL ?

      Solid fera comme il veut.
      Solid n'est qu'un wrappeur.
      Le prétexte de Solid est de gérer les changements d'API.
      Bon, ben, je vais lancer le projet Mou pour gérer les changements d'API de Solid.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.