Le développement de drivers Linux est une compétence rare et recherchée dans l’industrie. Cette formation vous apprend à concevoir des modules noyau en C, gérer les interruptions matérielles, implémenter des drivers character et block, et intégrer des périphériques USB ou réseau. Vous aborderez également la sécurité kernel et la maintenance des drivers en production, pour un cycle de développement complet du prototype au déploiement.
Public visé
Administrateurs systèmes avec des compétences en développement, développeurs.
Prérequis
Avoir suivi les formations suivantes, ou en maîtriser les thèmes abordés :
Objectifs pédagogiques
À l’issue de cette formation, vous serez capable de :
- Développer des programmes de type driver/pilote
- Identifier les étapes du cycle de vie complet de développement
- Appliquer les meilleures pratiques de l’industrie
- Sélectionner les références et outils adaptés
- Implémenter la sécurité pour la gestion des accès et des ressources
Programme
Jour 1
Noyau Linux et Modules
- Introduction aux drivers
- Environnement de développement
- Structure d’un driver
- Les différents types
- Historique du noyau
- Introduction à la gestion des entrées / sorties et appels systèmes
- Mettre en oeuvre un Hello-World Driver
Outils de développement
- Organisation des sources et références
- Gestion des outils pour le développement
- Paramétrage et compilation du noyau
- Programmation des modules du noyau
- Compilation des modules indépendants
- Messages du noyau
- Dépendances entre modules
- Les drivers en couche
Travaux pratiques
- Configuration et compilation du noyau
- Conception d’un module de noyau
Gestion des ressources matériels et périphériques
- Gestion de l’accès au matériel et E/S
- Méthodes de communication
- Gestion des modèles de périphériques
- Développement intégrant les spécificités
Travaux pratiques
- Développer un driver de stockage simple
Gestion des threads et du scheduling
- Architecture et fonctionnement du noyau
- Les threads, le scheduler, les contextes d’exécutions
- Drivers en mode noyau
- Intégration des évènements
- Multiplexage des entrées et sorties
- Gestion des interruptions et de la concurrence
- Synchronisation
- Gestion de l’ordonnanceur
- La gestion du temps
Jour 2
Allocation des ressources
- Gestion de l’allocation mémoire
- Gestion des mappages
- Utilisation de la pile noyau
- Accès à la mémoire
- Mécanisme des pools
Les bibliothèques et frameworks
- Vue d’ensemble des bibliothèques disponibles
- Intégration des différentes bibliothèques dans le développement
- Mettre en oeuvre des frameworks
Les modèles de périphériques
- Vue d’ensemble des modèles de périphériques
- Intégration des périphériques en mode caractère
- Mettre en oeuvre le VFS et les accès au matériel
- Intégration des périphériques en mode bloc et systèmes de fichier
- Intégration des blocs avancés
- Gestion du traitement différés
- Intégration du DMA
Gestion des systèmes de fichiers
- Enregistrement
- Initialisation du super bloc
- Intégration des appels systèmes lectures / écritures
- Utilisation du cache
- Communication avec le sous-système
Travaux pratiques
- Gestion du système de fichiers
Jour 3
Gestion du réseau
- Introduction à la gestion réseau au sein d’un driver
- Périphériques et dépendances des interfaces
- Gestion et choix des protocoles réseaux
- Création d’une interface, activation
- Emission et réception de paquets
- Mise en oeuvre des statistiques
Intégration des périphériques amovibles
- Introduction aux périphériques USB
- Contraintes et intégration
- Organisation du sous-système
- Communication avec les USB
- Gestion des déconnexions
- Gestion simultanés multi-périphériques
- Intégrer les périphériques PnP
Fonctionnalités avancées
- Intégrer la sécurité dans la gestion du driver
- Gestion des appels de procédures différées
- Intégration des routines de services d’interruption
- Mise en oeuvre des objets de contrôleurs
- Les différentes techniques de développements
Mise à jour et Monitoring
- Intégration des logs et du troubleshooting
- Mettre à jour les drivers
- Gestion du Firmware et de l’énergie
Travaux pratiques
- Développer des drivers dans le cadre de cas d’usages spécifiques
Modalités d’évaluation des acquis
En cours de formation, par 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 :
Formation DEV-C-300 — Conception de drivers en C. Domaine : Développement. Niveau : Avancé. Durée : 3 jours (21 heures). Mots-clés : c, drivers, linux, kernel, système. Cylian Formation, Dijon.