Mobile

Pourquoi Google veut-il adopter le pur noyau Linux sur Android ?

Il n’est pas nouveau qu’Android ait Linux comme base. Mais il est faux de penser qu’il s’agit de la version “pure” : au fil du temps, le noyau (de base) a été considérablement modifié pour adapter le système d’exploitation aux exigences techniques émanant de sociétés comme Qualcomm, de fabricants de téléphones portables et, bien sûr, de Google lui-même. Mais cela peut changer.

L’information provient d’Ars Technica, qui explique que lors de la conférence des plombiers Linux 2019, les développeurs de Google ont révélé des plans pour faire en sorte qu’Android ait un noyau aussi proche que possible de Linux générique, pour ainsi dire.

Ce scénario présenterait au moins deux avantages majeurs : il permettrait à Google de passer moins de temps à maintenir des milliers de lignes de code correspondant aux changements et faciliterait la fourniture de correctifs de sécurité.

Vous pouvez également penser à une amélioration des performances et même à une augmentation de la durée de vie des piles des appareils.

Comment Google implémente-t-il Linux sur Android ?

Le passage à un Linux générique n’est pas un processus facile. Cela devient clair quand on regarde comment le noyau Linux est mis en œuvre sur Android aujourd’hui. En gros, cela commence par la transformation par Google de Linux LTS (Long Term Support) en Android Common, une version du noyau complétée par du code spécifique à Android.

  Les téléphones portables de Xiaomi auront des gestes tactiles dans le dos comme sur l'iPhone

Plus tard, l’Android Common est transmis aux fournisseurs de SoCs tels que Qualcomm et MediaTek. Ces sociétés ajoutent au noyau un code spécifique concernant leur matériel (processeur, GPU, modem LTE, entre autres).

Enfin, le noyau qui en résulte est envoyé aux fabricants pour qu’ils ajoutent les modifications aux composants de leurs téléphones portables (appareils photo, écran, ports, etc.).

En pratique, chaque appareil finit par avoir son propre noyau. C’est pourquoi il est presque impossible de faire fonctionner le noyau d’un modèle dans un autre sans modifier le code source.

Ce nombre d’étapes est l’une des raisons pour lesquelles Android n’est pas basé sur des versions récentes du noyau Linux. C’est également la raison pour laquelle les appareils Android ne reçoivent généralement pas les nouvelles versions de noyau.

En raison de ce manque de mises à jour, Google doit faire en sorte que chaque nouvelle version d’Android prenne en charge les anciennes versions de Linux LTS. Android 10, par exemple, a été publié en 2019, mais maintient la prise en charge du noyau Linux 4.9, disponible fin 2016.

  Le prochain iPhone sera peut-être livré avec un chargeur rapide dans la boîte

On peut déjà en déduire qu’il est très logique pour Google de vouloir travailler avec un noyau sans modifications.

Comment Google compte-t-il mettre en place un Linux “pur” ?

Vous vous souvenez du Projet Treble ? Cette initiative a été présentée par Google en 2017 comme un moyen d’accélérer la disponibilité des mises à jour pour Android.

Google a donc modularisé l’architecture du système afin que les fabricants puissent travailler sur leurs implémentations presque en même temps que des entreprises telles que Qualcomm et MediaTek s’occupent de leur part.

L’idée est similaire ici. Le plan des développeurs de Google est de créer une sorte d’interface dans le noyau pour permettre aux pilotes et autres composants de fonctionner comme s’ils étaient des plugins.

Cela ne nécessiterait pas l’ajout de milliers de codes au noyau du système sur chaque nouvel appareil. Google pourrait donc mettre en œuvre du Linux “pur” sur Android et maintenir la compatibilité avec divers composants matériels par le biais de modules.

Mais bien sûr, c’est une explication simpliste. Pour qu’une telle interface fonctionne, il est important, par exemple, que les parties fondamentales du noyau modifié pour Android deviennent le noyau Linux lui-même.

  Xiaomi travaille dans la Redmi K30 Ultra avec une caméra rétractable

Il s’agit d’un projet à long terme, car il exige que Google travaille encore plus étroitement avec la communauté Linux et s’appuie sur une collaboration à l’échelle du secteur pour que ce modèle de déploiement Android fonctionne.

Mais pour montrer que cette idée est réalisable, Tom Gall, directeur du groupe de consommateurs Linaro, a montré à la conférence des plombiers Linux un Pocophone F1 avec Android 10 utilisant le noyau Linux sans modifications.

Il est vrai que certaines fonctions n’ont pas fonctionné, comme celle qui indique le pourcentage de charge de la batterie. Malgré tout, la démonstration sert à montrer qu’avec un certain effort, vous pouvez faire avancer la proposition.

Mais l’idée rencontre déjà une certaine résistance. Les membres de la communauté Linux craignent que l’interface contienne des failles de sécurité qui pourraient compromettre l’ensemble du système.

Pour eux, les fabricants devraient ouvrir le code source de leurs pilotes afin de permettre leur implémentation directement dans le noyau, ce qui permettrait une diffusion plus rapide des mises à jour du noyau. Mais nous savons que cela n’arrivera pas.

A propos de l'auteur

Ronan

Le Breton de l'équipe ! Développeur back-end dans une startup française. Internet des objets, domotiques, mes sujets de prédilection sont vastes. #teamLinux sur PerlmOl

Laisser un commentaire