Formation Linux - Drivers & Programmation noyau
Description
Objectif de formation : L'apprenant saura maîtriser le développement de drivers robustes et adaptés aux différentes distributions de Linux
- Gérer le développement de pilotes de périphériques
- Appréhender en détail les mécanismes internes du noyau
- Développer et incorporer de nouveaux éléments dans le noyau Linux
- Ecrire un pilote périphérique en mode caractère ou bloc
- Développeurs Linux/Unix
- Bases solides sur Linux/Unix
- Compétences en programmation C
- 1
Introduction au noyau
- Tour d'horizon du système et du rôle du noyau
- Présentation des sites de référence
- Spécificités des noyaux 3.x et 4.x
- Cycles de développement du noyau, les patchs
- Mode de fonctionnement & appels système
- Organisation des sources
- Présentation du principe de compilation du noyau et des modules
- Dépendances & symboles
- Exportations de symboles
- Chargement du noyau
- Travaux pratiques : Compilation et installation d'un noyau 3.x.
- 2
Présentation des outils utilisables
- Outils de développement
- Outils de débogage
- Environnement de débogage
- Outil de gestion de version
- Traçage des appels système
- Travaux pratiques : installation de l'ensemble des outils et des sources pour la conception d'un module. Paramétrage vers le chargement automatique de module au boot. Déploiement et test de modules simples
- 3
Gestion des threads & scheduling
- Tour d'horizon des types de périphériques
- Fonctionnement du noyau & protection des variables globales
- Représentation des threads
- Contexte d'exécution
- Scheduler de Linux et la préemption
- Création d'un thread noyau
- Travaux pratiques : conception d'un module de création de thread noyau lors de l'insertion et déchargement lors du rmmod. Ecriture d'un module d'horodatage d'événements à haute précision. Ecriture d'un module d'information sur les structures internes des processus.
- 4
Gestion de la mémoire & du temps et de proc
- Gestion et organisation mémoire pour les architectures UMA et NUMA
- Espace d'adressage utilisateur et noyau
- Gestion de pages à la demande
- Allocations mémoire, buddy allocator, kmalloc, slabs et pools mémoire
- Gestion des accès à la mémoire
- Problèmes liés à la sur-réservation de la mémoire
- Gestion de la mémoire sur x86 et ARM, utilisation des Hugepages
- Optimisation des appels systèmes
- Synchronisations & attentes dans le noyau
- Ticks & Jiffies dans Linux
- Horloge temps réel, RTC (real Time Clock), implémentation des timers
- Interface timers haute résolution & estampilles
- Outils spécifiques au noyau, listes chaînées, kfifo et container_of
- Interface noyau avec /proc par le procfs
- Travaux pratiques : Usage des timers et des estampilles & implémentation d'un accès au procfs. Mise en œuvre de l'allocation mémoire dans le noyau et optimisation à l'aide des slabs.
- 5
Périphérique en mode caractère
- Conception de pilotes de périphériques caractère
- Virtual File System
- Méthodes associées aux périphériques caractères
- Gestion des interruptions DMA & accès au matériel
- Enregistrement des pilotes de périphériques de type caractère et optimisations
- Travaux pratiques : rédaction progressive d'un pilote périphérique en mode caractère. Implémentation des synchronisations d'entrée-sortie entre threads et avec la routine d'interruption. Implémentation de l'allocation mémoire.
- 6
Linux Driver Framework - sysfs
- Introduction au framework
- Les objets drivers, device driver, bus et class
- Utilisation et génération des attributs présentés dans le sysfs
- Interface avec le hotplug, méthodes match, probe et release
- Gestion du firmware
- Gestion de l'énergie, méthodes de gestion de l'énergie
- Travaux pratiques : implémentation d'un bus, d'un driver et d'un device driver. Adaptation du pilote de périphériques caractère. Exemple d'utilisation de l'interface.
- 7
Périphérique en mode bloc et systèmes de fichiers
- Principe des périphériques en mode bloc & enregistrement du driver
- Callback de lecture et écriture & support du formatage et opérations avancées
- Présentation de l'ordonnanceur des entrées-sorties par bloc du noyau
- Conception des systèmes de fichiers
- Enregistrement d'un nouveau système de fichiers
- Travaux pratiques : exemple de pilote complet de périphérique virtuel. Exemple d'un système de fichiers personnalisé.
- 8
Interfaces et protocoles réseau
- Gestion des interfaces réseau sous Linux
- Utilisation des skbuff
- Les hooks netfilter
- Intégration d'un protocole
- Travaux pratiques : exemple de driver réseau pour périphérique virtuel & implémentation de protocole réseau
- 9
Drivers pour périphériques USB
- Principe des périphériques USB & interface avec le module USB-core
- Interaction du périphérique avec le noyau Linux
- Construction d'un URB (USB Request Block)
- Les gadgets USB
- Travaux pratiques : enregistrement d'un driver USB & écriture d'un driver en mode isochrone
Ils nous font Confiance
Nos partenaires de confiance








































Questions fréquentes
FAQ : Formation Linux - Drivers & Programmation noyau
Oui, mais la prise en charge d'une formation professionnelle par un OPCO dépend de votre opérateur de compétences, de votre branche d'activité et des critères de financement applicables. Ascent Formation vous accompagne dans l'identification des possibilités de financement adaptées à votre entreprise.
Une formation inter-entreprises réunit des participants issus de différentes organisations, tandis qu'une formation intra-entreprise est organisée pour les collaborateurs d'une même entreprise. Le format intra permet notamment d'adapter le contenu et les modalités aux besoins spécifiques de vos équipes.
Selon la formation proposée, il est possible de suivre une formation professionnelle à distance, en présentiel ou selon d'autres modalités disponibles. Consultez les informations de la session concernée ou contactez-nous pour connaître les formats possibles.
Oui, une formation professionnelle peut être adaptée aux objectifs, au niveau des participants et aux besoins opérationnels de votre entreprise. Ascent Formation vous propose des parcours personnalisés pour accompagner le développement des compétences de vos équipes.