Objectifs pédagogiques
- Développer des pilotes de périphérique sous GNU / Linux.
Modalités et moyens pédagogiques
Formation délivrée en présentiel ou distanciel* (e-learning, classe virtuelle, présentiel à distance).
Le formateur alterne entre méthode** démonstrative, interrogative et active (via des travaux pratiques et/ou des mises en situation).
Variables suivant les formations, les moyens pédagogiques mis en oeuvre sont :
- Ordinateurs Mac ou PC (sauf pour les cours de l'offre Management), connexion internet fibre, tableau blanc ou paperboard, vidéoprojecteur ou écran tactile interactif (pour le distanciel)
- Environnements de formation installés sur les postes de travail ou en ligne
- Supports de cours et exercices
En cas de formation intra sur site externe à M2i, le client s'assure et s'engage également à avoir toutes les ressources matérielles pédagogiques nécessaires (équipements informatique...) au bon déroulement de l'action de formation visée conformément aux prérequis indiqués dans le programme de formation communiqué.
* nous consulter pour la faisabilité en distanciel
** ratio variable selon le cours suivi
Niveau requis
Avoir suivi les cours LUX-ADM "Linux - Administration", LUX-ADMA "Linux - Administration avancée" et LUX-RES "Linux - Configuration des services réseaux" ou avoir les connaissances équivalentes. Connaître la programmation système en langage C.
Public concerné
Administrateurs et développeurs.
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
Le contenu de ce programme peut faire l'objet d'adaptation selon les niveaux, prérequis et besoins des apprenants.
Modalités d’évaluation des acquis
- En cours de formation, par des études de cas ou des travaux pratiques
- Et, en fin de formation, par un questionnaire d'auto-évaluation ou une certification (M2i ou éditeur)