Naissance du projet Halium

58
6
mai
2017
Android

Halium est un projet libre qui cherche à créer une base commune pour les systèmes d’exploitation voulant réutiliser les pilotes Android. Il a pour but d’unifier les différentes abstractions du matériel via libhybris.

Halium

Contexte et naissance du projet

Tout est parti d’un constat : quasiment toutes les distributions GNU/Linux visant les ordiphones et tablettes réutilisent les mêmes procédés pour bénéficier des pilotes Android sur ces matériels.

Des projets comme Ubuntu Touch, Sailfish OS, FirefoxOS (maintenant B2G OS), LuneOS et autres utilisent des couches basses d’Android afin de pouvoir profiter de fonctionnalités matérielles qui n’ont pas de pilotes disponibles dans le noyau Linux : appareil photo, Wi‐Fi, GSM, etc.

Cela est essentiel pour avoir une chance de fonctionner sur du matériel relativement récent, toucher un public plus large et s’accommoder de l’énorme domination d’Android. Cependant, pour ce faire, il faut adapter, modifier, compiler et intégrer ces briques venant d’Android au sein du système d’exploitation cible. Cela demande du temps, des connaissances, un suivi, etc., choses qui ne sont jusqu’à maintenant quasiment pas partagées. C’est là que débarque Halium !

Objectifs

Ce projet veut rassembler les développeurs de Ubuntu Touch ports, de la communauté Sailfish OS / Mer, de WebOS‐Ports (le projet LuneOS), des contributeurs de KDE Plasma Mobile, B2G OS et idéalement impliquer Jolla dans le projet. Ce rassemblement est déjà bien avancé, les développeurs des différents projets voyant assez clairement le bénéfice qu’Halium peut apporter.

Aujourd’hui, Ubuntu Touch, Sailfish OS / Mer, Plasma Mobile, B2G OS et autres n’utilisent pas les mêmes sources Android et ne construisent pas leurs systèmes d’exploitation de la même façon : comment les services Android sont démarrés, quelle méthode de « flashage » du téléphone, etc. Du coup, tous ces projets font la même chose mais de différentes manières, pour ce qui est de la partie bas niveau. L’idée est donc d’en finir avec cette fragmentation bas niveau, notamment pour tout ce qui touche à l’interaction avec le matériel.

Idéalement, tout ce travail devrait être mis en commun, avec un but simple : démarrer le système d’exploitation en utilisant les pilotes fournis par Android. Ainsi, chaque projet peut se concentrer sur sa spécificité et ses valeurs ajoutées.

C’est exactement le but d’Halium : créer une base Linux commune pour tout le monde.

Défis à venir

Halium n’en est encore qu’à ses débuts. Ses contours sont encore un peu flous, l’infrastructure du projet n’est pas encore sur pieds et beaucoup de défis sont à relever.

Voici quelques‐uns de ces défis :

  • standardiser la construction de la base Android pour les différents matériels visés ;
  • avoir suffisamment de flexibilité pour s’intégrer sans trop de problèmes dans les différentes distributions intéressées ;
  • proposer un noyau Linux correspondant à la base Android choisie ;
  • faire une synthèse des différentes approches pour l’abstraction matérielle (gestion du multimédia, gestion de l’appareil photo, etc.) ;
  • garder une interaction forte avec les différentes communautés afin de prendre en compte les besoins et les particularités ;
  • avoir sa propre infrastructure de compilation et de validation de l’abstraction matérielle Android.

Le rôle d’Halium s’arrête au niveau de l’abstraction matérielle : toutes les couches au‐dessus sont gérées et pilotées par chacun des projets, à leur façon.

Ce modèle a le grand avantage d’aider tous les projets mobiles GNU/Linux, car toute la partie qui consiste à l’interaction matérielle sera commune.

Une fois que les fondations seront en place nous aurons donc un standard pour tous les projets.

Participer

Si vous souhaitez en savoir plus sur le projet ou tout simplement en faire partie, le plus simple est de commencer par lire la présentation du projet sur le site Web et de suivre les discussions en cours.

Vous pouvez rejoindre la communauté sur IRC #halium sur freenodef, le groupe _Telegram Halium ou, enfin, en utilisant Matrix #halium:dishroot.org ou #halium:matrix.org. Les forums IRC et Telegram sont synchronisés à travers Matrix.

  • # Avantage

    Posté par (page perso) . Évalué à 7 (+4/-0).

    Si je comprends bien, un avantage de projet, c'est qu'il sera aussi beaucoup plus facile de tester les différents système pour deux raisons: une couverture matérielle plus grande et plus documentée (il n'y aura pas besoin de parcourir le site de chaque projet pour savoir ce qui est compatible1) et une procédure d'installation unifiée (et peut-être plus fiable).


    1. même si j'imagine que tout ne sera pas forcément complètement pris en charge par chaque projet, on aura au moins un truc qui boot. 

    « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

    • [^] # Re: Avantage

      Posté par . Évalué à 6 (+6/-0).

      Oui, en effet, ça va permettre de passer d'un projet à l'autre en étant relativement confiant que le support matériel sera similaire entre les deux.

  • # remplacer Alien Dalvik ?

    Posté par . Évalué à 4 (+3/-0).

    En effet ce projet semble intéressant !

    N'étant pas développeur, je vais peut être poser une question idiote : Halium permettra t'il à terme, et si le projet grandit, de remplacer la couche Alien Dalvik édité par Myriad Group sur les smartphones Jolla ou ultérieurs (Intex et peut être bientôt Sony) ?

    En tous cas, je ne sais pas s'il y a un lien de cause à effet, mais chez Jolla en embauche en ce moment. Pas beaucoup, certes mais on embauche ;-)

    Notamment un "Android Runtime Technical Lead".

    • [^] # Re: remplacer Alien Dalvik ?

      Posté par . Évalué à 3 (+2/-0). Dernière modification le 06/05/17 à 20:39.

      Non, Halium ne permettra pas cela, le but étant juste de fournir une abstraction du matériel (d'où le nom: HALium, Hardware Abstraction Layer -ium). Une sous-partie d'Android sera effectivement lancée, probablement dans un container isolé, mais pas dans le but de faire tourner des applis "utilisateur" Android. Halium ne contient pas de code Java, ni d'ailleurs Dalvik ou ART. Juste le strict nécessaire.

      Je pense qu'actuellement le meilleur candidat pour remplacer Alien Dalvik est Anbox (https://anbox.io) mais je ne sais pas où c'en est pour les smartphones.

  • # Plus de précision

    Posté par . Évalué à 2 (+1/-0).

    Serait-il possible d'avoir plus de précision ?
    En effet j'ai du mal à comprendre comment les pilotes peuvent être abstraits avec une bibliothèque utilisateur sachant que les pilotes font parti du noyau.

    De plus si les """systèmes""" que vous avez cités (Ubuntu touch, Sailfish OS) sont basés sur Linux pourquoi ont-ils besoin de cette bibliothèque ?

    • [^] # Re: Plus de précision

      Posté par (page perso) . Évalué à 10 (+9/-0).

      En effet j'ai du mal à comprendre comment les pilotes peuvent être abstraits avec une bibliothèque utilisateur sachant que les pilotes font parti du noyau.

      je cite la dépêche « utilisent des couches basses d’Android afin de pouvoir profiter de fonctionnalités matérielles qui n’ont pas de pilotes disponibles dans le noyau Linux : appareil photo, Wi‐Fi, GSM, etc. »
      et le schéma disponible sur la page principale du projet https://halium.org m'a l'air relativement clair :

      halium archi

      en bref, halium fournira une interaction avec les pilotes proprios via libhybris et une intégration au noyau Linux qui soient stables (ou communs en tout cas, plutôt que de les re-rajouter dans son coin).

      • [^] # Re: Plus de précision

        Posté par . Évalué à 4 (+3/-0).

        Du coup, je suppose que c'est un bon pas en avant pour pouvoir utiliser les distributions classiques Linux (Debian, Fedora, Arch, etc.) sur du matériel Android, ou je me trompe ?

        Je rêve de pouvoir installer une Debian sur un smartphone, aussi facilement que sur un PC actuellement…

        • [^] # Re: Plus de précision

          Posté par . Évalué à 5 (+4/-0).

          Ça pourrait aider, mais il ne faut pas trop rêver non plus: les briques de base sont déjà communes globalement (systemd, glibc, pulseaudio, Wayland, coreutils…), mais le gros du boulot consiste à fournir une interface adaptée à ce type de matériel:

          • gestion intelligente de la batterie
          • UI adaptée au tactile (taille des éléments d'interface, pas de menu contextuel, rotation de l'écran, clavier virtuel…)
          • gestion de la partie téléphonie (appels, historiques, contacts…)
          • parfois, arriver à concilier un vieux noyau (3.4) avec un userspace récent (systemd, glibc…)

          Ceci dit, si on veut juste un bon vieux bureau GNOME/Wayland sur un Nexus 5, effectivement Halium peut aider.

      • [^] # Re: Plus de précision

        Posté par . Évalué à 0 (+0/-1).

        Merci pour les précisions.

        J'aurai du relire la dépêche avant de poster ma question.

  • # Projet Treble

    Posté par . Évalué à 4 (+2/-0).

    Les évolutions annoncées pour Android O vont sans doute intéresser tous les gens qui veulent changer de système en bénéficiant des drivers prévus pour Android :
    https://android-developers.googleblog.com/2017/05/here-comes-treble-modular-base-for.html

    En gros il vont (enfin?) avoir une interface avec les drivers matériels plutôt de laisser les constructeur bidouiller directement l'OS (si j'ai tout bien compris)

Envoyer un commentaire

Suivre le flux des commentaires

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