Google expose des plans pour le support du noyau Linux de ligne principale dans Android

Il semble que Google travaille dur pour mettre à jour et en amont le noyau Linux qui se trouve au cœur de chaque téléphone Android. La société était un grand participant à la Linux Plumbers Conference de cette année, une réunion annuelle des meilleurs développeurs Linux, et Google a passé beaucoup de temps à parler de faire fonctionner Android avec un noyau Linux générique au lieu de la version hautement personnalisée qu’il utilise actuellement. Il a même montré un téléphone Android exécutant un noyau Linux mainline.

Mais d’abord, un peu de contexte sur le désordre actuel du noyau d’Android.Actuellement, trois fourches majeures se produisent entre le noyau Linux « mainline » et un appareil Android d’expédition (notez que « mainline » ici n’a aucun rapport avec le propre « Project Mainline » de Google). Premièrement, Google prend le noyau Linux LTS (Long Term Support) et le transforme en « noyau commun Android » – le noyau Linux avec tous les correctifs spécifiques à Android OS appliqués. Android Common est envoyé au fournisseur de SoC (généralement Qualcomm) où il reçoit sa première série d’ajouts spécifiques au matériel, en se concentrant d’abord sur un modèle particulier de SoC. Ce « SoC Kernel » est ensuite envoyé à un fabricant d’appareils pour obtenir un code encore plus spécifique au matériel qui prend en charge tous les autres éléments matériels, comme l’écran, l’appareil photo, les haut-parleurs, les ports USB et tout autre matériel supplémentaire. C’est le « noyau de périphérique », et c’est ce qui est réellement expédié sur un périphérique.

Voir plus

C’est un voyage extrêmement long qui fait que chaque périphérique expédie des millions de lignes de code de noyau hors arbre. Chaque noyau de périphérique expédié est différent et spécifique au périphérique – fondamentalement, aucun noyau de périphérique d’un téléphone ne fonctionnera sur un autre téléphone. La version principale du noyau d’un appareil est verrouillée au début du développement initial d’un SoC. Il est donc courant qu’un appareil tout neuf soit livré avec un noyau Linux vieux de deux ans. Même le dernier et, euh, le meilleur appareil de Google, le Pixel 4, a été livré en octobre 2019 avec le noyau Linux 4.14, une version LTS de novembre 2017. Il sera coincé sur le noyau 4.14 pour toujours, aussi. Les appareils Android ne reçoivent généralement pas de mises à jour du noyau, probablement grâce à l’incroyable quantité de travail nécessaire pour produire un seul noyau d’appareil et à la chaîne d’entreprises qui devraient coopérer pour le faire. Comme les mises à jour du noyau n’ont jamais lieu, cela signifie que chaque nouvelle version d’Android doit généralement prendre en charge les trois dernières années de versions LTS du noyau (le minimum pour Android 10 est 4.9, une version de 2016). L’engagement de Google à prendre en charge les anciennes versions d’Android avec des correctifs de sécurité signifie que la société prend toujours en charge le noyau 3.18, qui a maintenant cinq ans. La solution de fortune de Google pour cela jusqu’à présent a été de faire équipe avec la communauté Linux et de supporter plus longtemps les versions LTS de Linux mainline, et ils en sont maintenant à six ans de support.

L’année dernière, lors de la Linux Plumbers Conference 2018, Google a annoncé son enquête initiale pour rapprocher le noyau Android de Linux mainline. Cette année, il a partagé un peu plus de détails sur ses progrès jusqu’à présent, mais c’est certainement encore un travail en cours. « Aujourd’hui, nous ne savons pas ce qu’il faut ajouter au noyau pour fonctionner sur un appareil Android », a déclaré Sandeep Patil, chef de l’équipe du noyau Android, au groupe lors de la conférence LPC 2019. « Nous savons ce qu’il faut pour faire fonctionner Android, mais pas nécessairement sur un matériel donné. Notre objectif est donc essentiellement de trouver tout cela, puis de le mettre en amont et d’essayer d’être aussi proche de la ligne principale que possible. »

Google dit que « par rapport à LTS (4.14.0), le noyau commun Android a 355 changements, 32 266 insertions et 1 546 suppressions (en février 2018). » Des progrès sont réalisés ici chaque année, mais gardez à l’esprit qu’il y a encore deux fourches après cela.

Bien qu’il y ait encore du travail à faire pour obtenir l’écosystème Android plus large et une myriade de configurations d’appareils à bord, pour des modèles spécifiques d’appareils, les choses semblent bien progresser. Tom Gall, le directeur du Linaro Consumer Group, a montré un Xiaomi Poco F1 exécutant le noyau Linux sous le système d’exploitation Android habituel. Gall a déclaré à l’auditoire : « Il y a de grandes, grandes félicitations à donner à l’équipe du noyau de Google en particulier pour avoir mis leur code en amont afin que nous puissions démarrer des appareils avec un noyau principal. »

Avec le plan de mettre en amont autant de code de noyau que possible, Google vise également à reproduire son travail antérieur de modularisation d’Android, le projet Treble. Tout comme Treble a créé une interface stable entre le système d’exploitation Android et les HAL (couches d’abstraction matérielles), la proposition de Google pour rapprocher Android de Linux (comment se fait-il qu’il n’y ait pas encore de nom de « projet » idiot pour cela ?) implique de stabiliser l’ABI de Linux dans le noyau et d’avoir une interface stable pour le noyau Linux et les fournisseurs de matériel pour écrire. Google veut découpler le noyau Linux de son support matériel.

Publicité

La communauté Linux s’est opposée à l’idée d’une interface stable pendant un certain temps, avec la suggestion que si vous voulez la possibilité de mettre à jour rapidement un noyau, ouvrez vos pilotes et obtenez-les dans l’arbre principal du noyau, où tout changement sera pris en charge pour vous. L’open sourcing des pilotes est une condition sine qua non pour de nombreuses entreprises de matériel informatique, et aucun plaidoyer ou dégradation de produit ne changera cela. Le fait que Google soit coincé à supporter des versions de Linux vieilles de cinq ans montre que ce modèle ne fonctionne pas.

Enlarge / Au lieu d’un tas de fourches, Google imagine le nouveau noyau comme une série de modules.

Matthias Männich, un ingénieur logiciel senior chez Google, a affiché un diagramme intitulé « Android Next Generation » qui montre à quoi ressemblerait cette architecture de noyau proposée. Google fournirait une « Generic Kernel Image (GKI) » ainsi que plusieurs « GKI Modules » qui exposeraient cette API/ABI stable dans le noyau. Les pilotes spécifiques au matériel (probablement des pilotes à source fermée) seraient chargés en tant que modules du noyau. Ainsi, au lieu de forks sur les forks, tout est modularisé en paquets additifs.

Pour l’instant, Google propose seulement que l’ABI dans le noyau soit stable pour une seule version LTS. Cela ne permettrait donc pas aux appareils de passer d’une version du noyau Linux à une autre – cela permettrait simplement à une seule image de noyau généralisée de fonctionner sur plusieurs appareils, au lieu des fourches de noyau spécifiques aux appareils que nous avons aujourd’hui. Cela permettrait certainement de faciliter les mises à jour de sécurité et, espérons-le, de mettre les nouvelles versions LTS sur le marché plus rapidement.

Publicité

Nous serions prématurés si nous disions que c’est un changement qui arrive définitivement à Android et au noyau Linux. Il y a encore des tonnes de problèmes à résoudre (à la fois techniquement et politiquement, j’imagine), et certaines de ces discussions ressemblaient plus à des séances de brainstorming publiques entre les présentateurs de Google et les ingénieurs Linux (dont beaucoup étaient aussi des Googlers !) dans le public. C’est la deuxième année consécutive que Google se présente au LPC et lance l’idée d’utiliser le noyau Linux principal dans Android, et comme Android est l’un des plus grands distributeurs de Linux sur Terre, il est logique que tout le monde travaille ensemble, non ?

« Nous avons des kilomètres à parcourir, et nous le savons, mais nous avons fait du chemin depuis le début », a déclaré Patil à la foule. « L’année dernière, j’ai parlé de son existence. Cette fois, nous avons des problèmes à discuter. »

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.