Le développement de drivers Linux est une compétence rare et recherchée dans les secteurs de l’embarqué, de l’IoT et du hardware. Cette formation vous apprend à concevoir des pilotes de périphériques en mode noyau : drivers caractère, bloc, USB et réseau. Chaque concept est mis en pratique avec la conception progressive d’un driver fonctionnel complet.
Public visé
Administrateurs et développeurs.
Prérequis
Avoir suivi cette formation, ou en maîtriser les thèmes abordés :
Objectifs pédagogiques
Développer des pilotes de périphérique sous GNU / Linux.
Programme
Jour 1
Noyau Linux et modules
- Historique du noyau Linux, licences
- Développement du noyau
- Les appels systèmes
- Modules
Exemple de travaux pratiques (à titre indicatif)
- Quiz
Outils de développement
- Organisation des sources
- Paramétrage et compilation du noyau
- Programmation des modules du noyau
- Compilation des modules indépendants
- Messages du noyau
- Dépendances entre modules
Exemples de travaux pratiques (à titre indicatif)
- Configuration et compilation du noyau Linux
- Conception d’un module de noyau
Interface de programmation du noyau
- Chaînes de caractères, blocs mémoire, fonctions numériques et conversions
- Pilotes de périphérique
- Eléments temporels et actions différées
- Préemptibilité du noyau
Exemples de travaux pratiques (à titre indicatif)
- Gestion des chaînes de caractère, des blocs mémoire, des fonctions numériques…
- Noyau préemptif
Jour 2
Environnement du noyau
- Tâches et processus “current”
- Espaces d’adressage
- Dialogue avec /proc
Exemple de travaux pratiques (à titre indicatif)
- Gestion de l’environnement du noyau
Ecriture d’un driver
- Principe des pilotes de périphérique
- Réservation de numéros majeurs et mineurs
- Enregistrement du pilote de périphérique
- Fonctions de lecture et écriture
- Fonctions de paramétrage
- Synchronisation des appels système
Exemple de travaux pratiques (à titre indicatif)
- Réalisation d’un driver
Accès au matériel et interruptions
- Accès simple au matériel
- Appel système et interruption
- Différer un traitement en interruption
- Protection des variables globales
Exemple de travaux pratiques (à titre indicatif)
- Gestion des interruptions
Fonctions avancés d’un driver
- Attentes d’événements
- Multiplexage d’entrées et de sorties
- Gestion de la mémoire
Exemple de travaux pratiques (à titre indicatif)
- Conception d’un driver plus élaboré
Jour 3
Modèle de périphérique du noyau
- Création d’une classe de périphérique
- Transferts de données par DMA
Exemple de travaux pratiques (à titre indicatif)
- Conception d’une classe périphérique
Périphériques de bloc et systèmes de fichiers
- Principe des périphériques de bloc
- Ecriture d’un driver
- Enregistrement du pilote
- Déclaration d’un disque générique
- Initialisation de la file de requêtes
- Requêtes sur un driver bloc
Exemple de travaux pratiques (à titre indicatif)
- Gestion des périphériques de bloc (1ère partie)
Driver bloc avancé
- Traitement différé
- Partitionnement du disque
- Sous-système
- Block du noyau
- Ordonnanceur des entrées / sorties
Exemple de travaux pratiques (à titre indicatif)
- Gestion des périphériques de bloc (2ème partie)
Jour 4
Virtual File System (VFS)
- Organisation du VFS
- Structures du file system, dentry, inode et superbloc
Exemple de travaux pratiques (à titre indicatif)
- Gestion du file system
Nouveau système de fichiers
- Enregistrement
- Initialisation du superbloc
- Implémentation des appels systèmes de lecture et écriture
- Utilisation du cache en lecture et en écriture
- Communication avec le sous-système Block
Exemple de travaux pratiques (à titre indicatif)
- Gestion du système de fichiers
Périphérique réseau
- Dépendance des interfaces et des protocoles réseaux
- Périphérique NetDevice
- Enregistrement d’une interface
- Activation, émission et réception de paquets
- Statistiques d’utilisation d’interface
Exemple de travaux pratiques (à titre indicatif)
- Gestion des périphériques réseaux
Périphérique USB
- Organisation du sous-système USB
- Enregistrement d’un driver de classe Interrupt
- Endpoints et types de dialogue
- Communication avec les USB
- Traitements des écritures successives rapides
- Déconnexions intempestives et accès concurrents
- Gestion simultanée de plusieurs périphériques
- Etude de drivers Bulk et Control
Exemple de travaux pratiques (à titre indicatif)
- Gestion des périphériques USB
Modalités d’évaluation des acquis
En cours de formation, par des études de cas ou des travaux pratiques. En fin de formation, par un questionnaire d’auto-évaluation.
Voir aussi
Vous serez peut-être intéressés par les formations suivantes :
- Perl - Avancé
- Linux - les fondamentaux
- Linux - Administration N1 - Installation
- Linux - Administration N2 - Maintenance
- Linux - Administration N3 - Optimisation
Formation SYS-LINUX-500 — Linux - Conception de drivers. Domaine : Systèmes. Durée : 3 jours (21 heures). Mots-clés : linux, systèmes, noyau, drivers, développement, avancé. Cylian Formation, Dijon.