- Cours pratique
- Informatique
Formation Ecriture de drivers et programmation noyau Linux

- Durée
- 4 jours
- Niveau
- Avancé
- Modalités
- Présentiel / Distanciel
Description de la formation linux drivers
Le support pour les périphériques est assuré sous Linux par des pilotes (drivers) dont le code se déroule dans le noyau du système d'exploitation. Il est donc nécessaire pour le développeur amené à écrire ou à tester des pilotes de périphériques de maîtriser les concepts propres à la programmation noyau. Cette formation Linux Drivers propose une approche originale, s'appuyant sur l'écriture progressive de pilotes de différents types, pour appréhender les mécanismes parfois complexes (préemptibilité, multiprocesseur, support d'architectures différentes, etc.) inhérents au code exécuté en mode noyau. Cette formation Linux drivers vous permettra de maîtriser le développement de pilotes de périphériques (drivers) robustes et adaptés aux différentes déclinaisons de Linux. Outre les périphériques classiques (caractère, bloc, réseau), son étudié les sous-systèmes du noyau tels que les systèmes de fichiers ou l'ensemble USB.

Objectifs pédagogiques
Cette formation Ecriture de drivers et programmation noyau Linux vous apprendra à :
- Maîtriser le développement de pilotes de périphériques (drivers) robustes et adaptés
- Connaitre les outils de développement noyau
- Maitriser les aspects avancés d'un driver de périphérique
- Savoir gérer la mémoire
- Connaitre les Périphériques réseau et USB
Objectifs opérationnels
Savoir maîtriser le développement de pilotes de périphériques (drivers) robustes et adaptés aux différentes déclinaisons de Linux.
Programme
Contenu du cours, module par module
4 modules
Noyau Linux et modules
- modèle, version, licence GPL, développement du kernel, appels-système, modules.
Outils de développement noyau
- sources, compilation noyau et modules,écriture et compilation de modules, cross-compilation, messages, dépendances.
API du noyau
- chaînes, blocs mémoire, fonctions numériques et conversions, éléments temporels et actions différées, préemptibilité du noyau.
Environnement du noyau
- tâches et processus current, espaces d'adressage, dialogue avec /proc.
Travaux pratiques
Travaux pratiques
Travaux pratiques
Travaux pratiques
Écriture d'un pilote de périphérique
- principes, numéros majeurs et mineurs, classes de périphériques, enregistrement du driver, fonctions de lecture et écriture.
Appels-systèmes et I/O
- Paramétrage par ioctl. Synchronisation d'appels-système par mutex. Accès matériel. Ports d'entrée-sorties. GPIO sur carte embarqué
Gestion d'interruptions
- contextes d'exécution, installation d'un handler, traitement différé (tasklet, workqueue et threaded interrupts).
Interactions entre appels-système et interruptions
- protection des variables globales (spinlock), attentes d'événements (waitqueue), appels-système bloquants.
Travaux pratiques
Travaux pratiques
Travaux pratiques
Travaux pratiques
Entrées-sorties avancées
- multiplexage d'entrée-sorties (select et poll), principes des transferts de données par DMA.
Gestion de la mémoire
- allocation et libération de mémoire (kmalloc, vmalloc, get_free_pages, kmem_cache), projections (mmap).
Périphériques blocs et VFS
- principes, enregistrement, disque générique, file de requêtes,partitionnement, sous-système Block, i/o scheduler, Virtual File System.
Périphériques PCI Express
- principe, détection et enregistrement de driver, Base Address Registers, interruptions classiques et MSI.
Travaux pratiques
Travaux pratiques
Travaux pratiques
Travaux pratiques
Périphériques réseau
- interfaces bas-niveau et protocoles réseau, périphérique net_device, enregistrement, activation, émission et réception de paquets.
Communications réseau
- Statistiques d'utilisation d'interface, principes de la pile IP, communications entre protocoles et interface bas-niveau.
Périphériques USB
- Organisation du sous-système USB de Linux, implémentation d'un driver Interrupt, type de endpoints, Communication avec les URB.
Aspects avancés
- écritures successives rapides, déconnexions intempestives, accès concurrents, Exemples de drivers Bulk, Control et Isochrones.
Travaux pratiques
Travaux pratiques
Travaux pratiques
Travaux pratiques
Les exercices et démonstrations ont lieu, suivant les sujets, sur plate-forme PC ou sur carte ARM Raspberry Pi.
Programme mis à jour le 24/10/2025

Prérequis
Connaissance de Linux (utilisateur) et bonne familiarité avec le langage C.
J’évalue mes connaissances pour vérifier que je dispose des prérequis nécessaires pour profiter pleinement de cette formation en faisant le test de prérequis.
Faire le testFinancement
Cette formation peut être prise en charge par votre entreprise, seule ou avec l’appui de son opérateur de compétences. Nous fournissons le devis et les pièces attendues par l’OPCO.
5/5
1 avis
« Mon avis sur le contenu du stage: Support très bien organisé et itératif, bien indexé. Les seules idée d'évolution du support auquel je pense (minimes) sont les suivantes : * voir s'il est possible d'avoir un repère encore plus direct entre un slide et l'exemple de code source en cours. * renommer les exemples pour ajouter un caractère avant les indices afin de dissocier les chapîtres. Il n'y a alors plus de confusion possible quand on lit "exemple_03" dans le document papier. Mon avis sur le formateur: Parfait. La chance d'être le peu de stagiaires a permis une très grande interactivité. Mon avis sur la salle de formation: Les postes de travail Cent-OS ont une installation un peu étrange. Certains paquets basiques ne sont pas installés (un navigateur web, les man pages). Ce que j'ai le plus apprécié: Comité (très) réduit, environnement propre est clair, Ce que j'ai le moins apprécié: fil de la souris mal placé car il se bloque systématiquement entre les tables, Le switch vidéo était à redémarrer à certains boots de la machine du formateur »
LA
Les avis figurant ci-dessus sont issus des fiches d’évaluation que remplissent les participants à la fin de la formation. Ils sont ensuite publiés automatiquement si les personnes ont explicitement accepté que nous les diffusions.
Formations liées
- Linux, temps réel sous LinuxRéf. ULTR2 joursIntermédiaire1 260 €
- Nutanix Enterprise Cloud Administration 6.10 (cours officiel)Réf. NTNX4 joursIntermédiaireProchaine session : 12 oct.3 600 €
- Red Hat Enterprise Linux System Administration I & II : cours accéléré RHCSA (cours officiel)Réf. RH1995 joursIntermédiaireProchaine session : 19 oct.4 500 €
- Red Hat Enterprise Linux System Administration I et II Cursus accéléré incluant la certification RHCSA (cours officiel)Réf. RH2005 joursFondamental4 779 €