Pages

mercredi 24 octobre 2012

Architecture Android le noyau Linux


Le système est construit sur un noyau Linux (version 2.6 et 3.x depuis Android 4.0) mais attention ce n’est pas un Linux non plus.



Le noyau Android est un fork et les deux parties ont eu du mal à s’entendre pour faire converger les deux. Le noyau Android contenait par exemple des patchs pour

Améliorer la gestion de la batterie 
  • Alarm timer permettant de réveiller le device quand il est en veille 
  • Wakelocks permettent de forcer le device à rester actif (exemple du GPS). Par contre ceci est très gourmand en batterie 
  • Early suspend extension permettant de suspendre l’exécution de certains composants comme l’écran, le capteur tactile, l’acceléromètre… lorsque l’on met en veille le device 

Améliorer le reporting des erreurs
  • Logger permettant de distinguer les logs (distinction de events, main et radio) 
  • RAM console permet de stocker certains message en RAM pour les retrouver pour faire un diagnostique après une erreur système par exemple 
  • Android Debug Bridge permettant de debugger une application via une connexion USB 
Améliorer la sécurité
  • Paranaoid network vérification des permissions pour un accès sécurisé aux opérations du réseau 

Améliorer les performances
  • Un mécanisme pour permettre aux applications de partager de la mémoire non utilisée (ashmem) 
  • Le low memory killer permettant de libérer de la mémoire en quittant les applications lorsque le système est en manque de mémoire 
  • Yaffs2_fs système de fichier pour les cartes mémoires 

Fournir des drivers
permettant au système d’interagir avec les différents devices, de gérer le bluetooth…


De nombreuses spécificités Android ont finalement été intégrées dans la version 3.3 du kernel (mars 2012) mais il reste encore quelques spécificités Android qui resteront à part.

Ce tableau montre les versions de kernel utilisées pour chaque version du système

Version Release date Version kernel Linux
4.1.x Jelly Bean July 9, 2012 3.0.31
4.0.x Ice Cream Sandwich October 19, 2011 3.0.1
3.x.x Honeycomb February 22, 2011 2.6.36
2.3.x Gingerbread December 6, 2010 2.6.35
2.2 Froyo May 20, 2010 2.6.32
2.0, 2.1 Eclair October 26, 2009 2.6.29
1.6 Donut September 15, 2009 2.6.29
1.5 Cupcake April 30, 2009 2.6.27


Par contre même si le kernel est un fork de Linux le code source Android n’est pas sous licence GNU et n’est pas publié.



Pour suivre la prise en compte des spécificités Android dans Linux consultez le wiki http://elinux.org/Android_Mainlining_Project

Dans les prochains articles nous verrons d'autres aspects de l'architecture du système


Aucun commentaire:

Enregistrer un commentaire

Remarque : Seul un membre de ce blog est autorisé à enregistrer un commentaire.