19 fév. 2013

Linux : suivi du kernel 3.8

Logo Linux

Le kernel Linux 3.8 est enfin sorti, après moult -rc et un cycle de release décalé vers le milieu de semaine. Au menu, pas mal de nouveautés qui ont un intérêt fort pour les plateformes embarquées - et principalement ARM.

Support des namespace user

Le support des namespace user est complètement implémenté. Dans linux, les namespace permettent de créer simplement des conteneurs qui vont avoir (par exemple) leur propre vision du système de fichier, du réseau ou bien encore de la liste des processus actifs. Théoriquement, utilisé en conjonction avec cgroups, les namespaces permettent de proposer une solution simple de pseudo-virtualisation (vous pouvez imaginer N serveurs web, ne communiquant pas ensemble, et fonctionnant tous sur un seul et unique kernel). D'autres applications sont possibles (sandboxing...).

Les namespace user permettent de créer un espace virtuel où l'utilisateur actuel devient l'administrateur du sous-système. Il ne peut pas prétendre avoir les droits root sur toute la machine, mais pour tout ce qui se passe dans l'espace de nom il sera considéré comme root (ou comme un autre utilisateur). Un tel namespace permet par exemple d'implémenter aisément un pseudo-chroot.

Extension du contrôlleur de mémoire

Les cgroups mémoire (memcg) ont été étendu pour permettre le contrôle de la pile et des allocations. Cette évolution ouvre de nouvelles possibilités tant dans le domaine de la maîtrise du système (détection et contrôle des fork bomb) que dans d'autres domaines plus ésotériques - par exemple le test : la possibilité de contrôler la taille de pile et la taille des allocations que peut faire un programme dans un memcg permet de tester sa résistance à ces contraintes - malloc() peut enfin retourner NULL ! :)

Evolutions coté ARM

Support de l'Exynos 5440

Ce processeur devrait sortir en 2013. Il s'agit d'un SoC ARM quadcore (Cortex A15) cadencé à 1.7 Ghz et pourvu d'un GPU MALI T604, gravé en 28 nm. Le support intégré au kernel est basique et devrait permettre de le faire booter et d'accéder aux UART.

Il n'y a pas encore de produits prévus avec ce processeur. Ceci dit, les gentils développeurs de hardKernel doivent certainement avoir quelque chose dans les cartons...

Support des processeurs AllWinner

Ces processeurs sont peu connus et peu utilisés en europe ou aux Etats Unis, mais il s'agit d'une gamme complète de processeurs chinnois very low cost, principalement créés pour supporter les développements de tablettes et smartphone alliant une puissance acceptable à un faible (voire très faible) coût[1].

Le kernel 3.8 ajoute un support minimal pour les version A10 et A13 de ces processeurs.

Meilleur support Aarch64

Derrière ce nom barbare se cache le support officiel de l'architecture ARM 64 bits. Ce support, intégré récemment, est étendu dans la nouvelle version du kernel Linux.

A noter que les processeurs de cette génération ne sont pas attendu avant (prédiction personnelle) le second trimestre 2014[2]

Evolutions coté GPU

Au niveau des GPU, cette nouvelle version du kernel apporte pas mal de nouveautés :

  • support HDMI pour le gma600 (rebranding Intel d'un GPU PowerVR)
  • ajout du support Tegra20 et Tegra30
  • support HDMI pour les GPU Tegra
  • support IPP amélioré pour les processeurs Exynos[3]

Dans une moindre mesure, le driver Nouveau (NVIDIA GeForce) supporte maintenant les opérations 3D pour tous les GPU NVIDIA - ce n'est pas nécessairement intéressant coté embarqué, mais il faut se rappeler que les GPU intégrés aux processeurs Tegra sont à la base des GPU GeForce. Il y a fort à parier que ces avancées dans le domaine du desktop vont avoir un effet coté embedded.

Autres points intéressants

Le kernel 3.8 supporte des devices d'entrée utilisateurs utilisant le protocole Windows 8. Dans l'idée, ça permettra a terme d'utiliser Linux sur les systèmes où Windows 8 est préinstallé et sur lesquels les systèmes d'entrée utilisateur sont certifiés et signés par Microsoft au niveau firmware. Sont par exemple concernés à l'heure actuelle les écrans tactiles des tablettes Surface.

Le support de dma_buf dans les drivers Video 4 Linux permet de partager les buffers DMA entre le GPU et le décodeur/encodeur vidéo hardware. On devrait obtenir de meilleures performances dans les mois à venir (le temps que les lecteurs vidéo se mettent à la page).

Il va être possible dans peu de temps de démarrer ou arrêter un processeur (CPU hotplug). Les premiers pas sont fait dans le domaine de x86, mais les autres architectures devraient pouvoir suivre. En ligne de mire : la possibilité de rajouter une capacité de calcul supplémentaire à chaud (utile par exemple pour les serveurs à faible tolérance aux pannes). Dans le domaine de l'embarqué, ça permettrait d'avoir un CPU qu'on peut démarrer et arrêter sur demande, de manière à profiter d'une grosse capacité de calcul supplémentaire ou au contraire à limiter la consommation électrique. C'est intéressant dans le domaine des TV connectées, des smartphone...

Notes

[1] exemple de produit basé sur un processeur AllWinner A10 : une tablette 7'' avec écran capacitif à 30$ en volume

[2] c'est vraiment un prédiction toute personnelle. L'architecture AArch64 vient d'être fournie aux fondeurs, qui ne l'ont pas encore tous intégré à leur roadmap. Cette année, c'est le règne des coeurs Cortex A15 avec support de l'architecture big.LITTLE (Tegra 4, Exynos 5 Octa...). C'est une année de proposition technologique. L'année prochaine pourrait être aussi forte comme elle pourrait se transformer en année de transition technologique (avec l'abandon progressif des Cortex A9 en faveur des Cortex A15+Cortex A7 en big.LITTLE). Si bien que l'arrivée de l'architecture 64 bit pourrait même être repoussée en 2015.

[3] IPP est un canal de communication entre le GPU et un chipset graphique dédié (par exemple un contrôlleur caméra ou un décodeur h.264 hardware)

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

Fil des commentaires de ce billet