Antistress : Les composants GNU, ou pourquoi Android n'est pas une distribution GNU/Linux
lundi 20 mai 2013 à 14:56Note : Ce billet aborde la question sous un angle purement technique.
On peut se demander pourquoi les pilotes (libres ou non) des appareils fonctionnant sous Android (spécialement les ordiphones et tablettes) ne marchent pas avec nos distributions GNU/Linux habituelles (ou, autrement dit, pourquoi nos distributions GNU/Linux ne peuvent pas facilement tourner sur un appareil fonctionnant sous Android), alors que les deux partagent le même noyau : Linux.
Pour rappel, une distribution GNU/Linux inclut généralement a minima :
- un noyau : Linux (créé en 1991),
- des composants du projet GNU (lancé en 1984) comme glibc (pour GNU C Library – la bibliothèque C GNU créée en 1987), coreutils (pour GNU Core Utilities – les outils de base GNU), Bash (pour Bourne-Again shell – le shell GNU).
S'il s'agit d'une distribution pour poste de travail (et pas seulement pour serveur), celle-ci inclura en outre :
- un serveur d'affichage : X.Org, dérivé en 2004 de XFree86 (lui-même créé en 1991) et qui devrait céder prochainement sa place au récent Wayland (ou à Mir, dans le cas d'Ubuntu),
- un environnement logiciel comme GNOME (lancé 1997, basé sur la boite à outils graphiques GTK+), KDE (lancé en 1996, basé sur la boite à outils graphiques Qt) ou Xfce (lancé en 1996 et basé sur GTK+).
Android, sorti fin 2007, a pour seul point commun Linux, le noyau du système d'exploitation (rappelons à ce sujet que, depuis octobre 2011, les projets Android et Linux collaborent pour minimiser les différences entre la version utilisée par le premier et celle publiée par le second).
Android utilise en effet son propre environnement d'exécution (Dalvik), sa propre boite à outils graphiques, son propre serveur d'affichage (SurfaceFlinger) mais surtout sa propre bibliothèque C : Bionic libc.
Ces choix correspondent, pour la plupart, au fait que les besoins pour un ordiphone ou une tablette sont plus limités que pour un PC, tout comme les ressources matérielles (processeur, mémoire). Les solutions logicielles retenues ont donc généralement des fonctionnalités plus limitées mais une empreinte mémoire plus faible.
Les conséquences de ces choix sont que les applications conçues pour Android ne fonctionnent pas directement sur une distribution GNU/Linux mais aussi, de manière plus embêtante – et peut-être plus étonnante, que les pilotes conçus pour Android sont inutilisables par une distribution GNU/Linux.
Ces pilotes sont en effet conçus pour la bibliothèque C d'Android (Bionic libc) qui n'est pas compatible avec la bibliothèque C du projet GNU (glibc).
À noter que FirefoxOS, dont la sortie est prévue pour cet été, repose également sur un noyau Linux et la bibliothèque Bionic libc de sorte qu'il pourra utiliser directement les pilotes conçus pour Android et être ainsi, dès sa sortie, compatible avec un grande variété d'appareils.
Inversement, nos distributions GNU/Linux sont compatibles avec un nombre beaucoup plus restreint d'appareils mobiles car les fabricants ne se donnent pas la peine de réaliser des pilotes pour celles-ci.
Face à cette situation, deux solutions sont possibles : développer des pilotes (libres), notamment par rétro-ingénierie (c'est, par exemple, ce qui est en train d'être réalisé pour les GPU embarqués dans les ordiphones et tablettes) ou s'arranger pour pouvoir utiliser les pilotes (libres ou non) conçus pour Android (via la bibliothèque libre Libhybris conçue initialement pour le projet Mer – plus ici, ici et là).
Notons pour finir que, si FirefoxOS fournit également son propre environnement d'exécution (Gecko), cela ne fait pas obstacle à l'utilisation des logiciels conçus pour FirefoxOS sur nos distributions GNU/Linux ou n'importe quel autre système puisque cet environnement met en œuvre les technologies Web (HTML, CSS et JavaScript) que n'importe quel navigateur peut exécuter.
Lire aussi : À quand les smartphones et tablettes libres ? sur LinuxFr.org.
Original post of Antistress.Votez pour ce billet sur Planet Libre.
Articles similaires
- ®om : Android en ligne de commande (31/03/2012)
- crowd42 : Cinnarch : une distribution basée sur ArchLinux avec le bureau Cinnamon (25/11/2012)
- crowd42 : Tails : une distribution GNU/Linux pour les paranos (03/12/2012)
- Slobberbone : Cubox - Mise à jour du U-boot et installation d'une distribution GNU/Linux (08/02/2013)
- Antistress : Débuter : Qu'est-ce qu'une distribution GNU/linux ? (05/03/2013)