Linus Torvalds vient d'annoncer la dernière mouture du noyau Linux et voici un petit inventaires des nouveautés.
La version 3.19 du noyau Linux voit l'ajout de la gestion des "device-tree overlays", une fonctionnalité qui va être particulièrement utile pour le monde de l'embarqué.
Pour rappel, les device-tree sont des fichiers permettant de décrire une architecture matérielle de façon indépendante de l'OS à démarrer. Cette fonctionnalité est très importante pour le matériel non-autodescriptif (les SoC ARM et leurs cartes porteuses en particulier).
Le device tree peut être contenu dans le boot-loader pour être passé au noyau, ce qui permet de compiler un noyau fonctionnant sur un grand nombre de cartes. (il est également possible de compiler les device-tree en dur dans le noyau).
L'ajout des overlay permet de modifier dynamiquement le device-tree chargé par le noyau après le démarrage, ce qui permet de facilement charger des morceaux de device-tree décrivant - par exemple - des "CAPES" de Beaglebone ou des parties dépendantes d'un firmware chargé dans un FPGA.
Il est maintenant possible d'attacher un filtre eBPF à une socket. Les filtres eBPF correspondent au nouveau système de programmation de filtres pour le noyau. La version 3.18 du noyau permettait de les charger, mais pas de les exécuter. La version 3.19 permet d'attacher un filtre à une socket, le filtre sera alors appliqué à tous les paquets arrivant sur la socket. Notons que cette implémentation est très limitée. A ce stade on ne peut obtenir que les données du paquet (donc aucun contexte venant du noyau lui même) et il est impossible de modifier ou de rejeter le paquet (on peut donc uniquement faire des statistiques sur les paquets). La version 3.20 du noyau apportera sans doute une plus grande utilité aux eBPF.
Enfin, voici une petites listes de modifications moins importantes :
- L'architecture Nios II a été ajoutée
- Les Atmel AT91 utilisent maintenant les device-tree
- Il est possible pour Linux d'agir en esclave sur un bus I2C si le matériel le supporte
- Il est possible de modifier plusieurs GPIO simultanément de façon atomique (à nouveau, si le matériel le supporte)
Bonne compilation à tous