Noyau 2.6.34

Magazine
Marque
GNU/Linux Magazine
Numéro
127
Mois de parution
mai 2010


Résumé
La communauté des développeurs du noyau ne se repose jamais. C'est au tour du noyau 2.6.34 d'être auditionné dans notre Kernel Corner. Au rythme effréné d'une version tous les trois mois environ, le noyau Linux se bonifie, quoique... Parfois, les régressions ou autres failles de sécurité nous font vite oublier ses atouts. Mais toujours, il sait se relever, il sait affronter les épreuves qui se présentent, qui le poussent à changer sa façon de voir. C'est une marche sans fin, où la remise en question intervient sans cesse et à tous les niveaux (gestion du cycle de vie, implémentation, etc.). C'est l'évolution, une conséquence évidente à notre imagination.

1. API du noyau

Linux utilise massivement les listes doublement chaînées circulaires. Son implémentation est un peu particulière car les nœuds d'une liste sont contenus dans les structures qui doivent être liées et non l'inverse. Ainsi, la définition de ce type de données est :

struct list_head {

        struct list_head *next, *prev;

};

La liste est initialisée et manipulée de façon à ce qu'elle boucle sur elle-même. L'opération de déclaration et d'initialisation statique est donnée ci-dessous :

#define LIST_HEAD_INIT(name) { &(name), &(name) }

#define LIST_HEAD(name) \

        struct list_head name = LIST_HEAD_INIT(name)

Nous renvoyons le lecteur au Kernel Corner 86 pour plus de détails. Bien que l'API de manipulation des listes soit très fournie, une nouvelle fonction voit le jour dans cette version du noyau. Il s'agit de list_rotate_left(), qui effectue une rotation de la liste d'un cran vers la gauche. Cette opération est notamment utile pour la manipulation de file...

Cet article est réservé aux abonnés. Il vous reste 97% à découvrir.
S'abonner à Connect
  • Accédez à tous les contenus de Connect en illimité
  • Découvrez chaque semaine un nouvel article premium
  • Consultez les nouveaux articles en avant-première
Je m'abonne


Article rédigé par

Par le(s) même(s) auteur(s)

Fuddly : introduction de l’outil et développement d’un protocole

Magazine
Marque
MISC
Numéro
103
Mois de parution
mai 2019
Spécialité(s)
Résumé

Cet article présente Fuddly, un framework de fuzzing et de manipulation de données, écrit en python sous GPLv3, qui fournit de nombreuses briques que l’on retrouve dans d’autres framework de fuzzing, mais qui se différencie par la flexibilité de représentation des données et la diversité des altérations qu’il rend possible.

L'Infrastructure Linux Gadget USB

Magazine
Marque
Open Silicium
Numéro
14
Mois de parution
mars 2015
Spécialité(s)
Résumé

L'infrastructure Gadget USB du noyau Linux facilite la création de périphériques USB, en proposant un cadre et un certain nombre de primitives qui permettent d'une part d'abstraire les contrôleurs matériels de périphériques USB, et d'autre part d'en utiliser les ressources et fonctionnalités afin de créer n'importe quelle fonction USB désirée : qu'elle réponde aux standards (tels que « Mass Storage », « CDC Eth »…), qu'elle soit l'incarnation de vos besoins particuliers, ou bien encore qu'elle soit une combinaison des deux.

Les derniers articles Premiums

Les derniers articles Premium

Cryptographie : débuter par la pratique grâce à picoCTF

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

L’apprentissage de la cryptographie n’est pas toujours évident lorsqu’on souhaite le faire par la pratique. Lorsque l’on débute, il existe cependant des challenges accessibles qui permettent de découvrir ce monde passionnant sans avoir de connaissances mathématiques approfondies en la matière. C’est le cas de picoCTF, qui propose une série d’épreuves en cryptographie avec une difficulté progressive et à destination des débutants !

Game & Watch : utilisons judicieusement la mémoire

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Au terme de l'article précédent [1] concernant la transformation de la console Nintendo Game & Watch en plateforme de développement, nous nous sommes heurtés à un problème : les 128 Ko de flash intégrés au microcontrôleur STM32 sont une ressource précieuse, car en quantité réduite. Mais heureusement pour nous, le STM32H7B0 dispose d'une mémoire vive de taille conséquente (~ 1,2 Mo) et se trouve être connecté à une flash externe QSPI offrant autant d'espace. Pour pouvoir développer des codes plus étoffés, nous devons apprendre à utiliser ces deux ressources.

Raspberry Pi Pico : PIO, DMA et mémoire flash

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Le microcontrôleur RP2040 équipant la Pico est une petite merveille et malgré l'absence de connectivité wifi ou Bluetooth, l'étendue des fonctionnalités intégrées reste très impressionnante. Nous avons abordé le sujet du sous-système PIO dans un précédent article [1], mais celui-ci n'était qu'une découverte de la fonctionnalité. Il est temps à présent de pousser plus loin nos expérimentations en mêlant plusieurs ressources à notre disposition : PIO, DMA et accès à la flash QSPI.

Abonnez-vous maintenant

et profitez de tous les contenus en illimité

Je découvre les offres

Déjà abonné ? Connectez-vous