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.