Formation indisponible à l'heure actuelle
Ecriture de Drivers pour Linux
Formation
À Evry ()
Avez-vous besoin d'un coach de formation?
Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.
Description
-
Typologie
Formation
-
Durée
4 Jours
Objectifs: 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. Ce cours 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. Destinataires: Développeurs et administrateurs désirant comprendre le fonctionnement total du système. Intégrateurs devant regrouper des modules provenant de différents fournisseurs. Développeurs voulant écrire des drivers personnalisés.
À propos de cette formation
Connaissance de Linux (utilisateur) et bonne familiarité avec le langage C.
Les Avis
Le programme
Plan détaillé
Première journée - Programmer pour le noyau Linux
1ère séquence 9h00-10h30
Noyau Linux et modules :
Historique du noyau Linux, licence GPL, développement du noyau
Appels-système, modules.
Travaux pratiques
Observation des appels-système invoqués par des applications et commandes utilisateur.
Manipulation des modules précompilés.
2ème séquence 10h45-12h15
Outils de développement noyau :
Organisation des sources, compilation du noyau et des modules.
Programmation de modules du noyau, compilation de modules indépendants.
Messages du noyau, dépendances entre modules.
Travaux pratiques
Compilation et installation d'un noyau 2.6.
Application de patches pour débogage noyau.
Écriture de modules simples du noyau.
Intégration dans la chaîne de compilation du noyau.
Passage de paramètres au boot.
3ème séquence 13h30-15h15
Interface de programmation du noyau :
Chaînes de caractères, blocs mémoire, fonctions numériques et conversions.
Pilotes de périphériques.
Éléments temporels et actions différées.
Préemptibilité du noyau 2.6.
Travaux pratiques
Ecriture d'un module d'horodatage.
Chronométrer les phases de boot.
4ème séquence 15h30-17h30
Environnement du noyau :
Tâches et processus current.
Espaces d'adressage.
Dialogue avec /proc.
Travaux pratiques
Ecriture d'un module d'information sur les structures internes des processus.
Ecriture d'un module d'horodatage via /proc.
Deuxième journée - Ecriture d'un driver
1ère séquence 9h00-10h30
Ecriture d'un pilote de périphérique :
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.
Travaux pratiques
Manipulation des fichiers spéciaux.
Réservation de numéro majeur.
Enregistrement de périphérique.
Ecriture d'un driver simple.
Implémentation des routines de lecture et écriture.
2ème séquence 10h45-12h15
Accès au matériel et interruptions :
Accès simple au matériel.
Contextes d'exécution : appel-système et interruption.
Gestion des interruptions.
Différer un traitement en interruption : tasklet & workqueue.
Protection des variables globales.
Travaux pratiques
Ecriture d'un gestionnaire d'interruption.
3ème séquence 13h30-15h15
Fonctions avancées d'un pilote de périphérique :
Attentes d'événements.
Multiplexage d'entrées-sorties.
Gestion de la mémoire.
Travaux pratiques
Création d'un périphérique "file de messages" virtuel.
4ème séquence 15h30-17h30
Modèle de périphérique du noyau 2.6 :
Création d'une classe de périphérique.
DMA :
Transferts de données par DMA.
Troisième journée - Périphériques bloc et systèmes de fichiers
1ère séquence 9h00-10h30
Périphériques en mode bloc :
Principe des périphériques 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.
2ème séquence 10h45-12h15
Driver bloc avancé :
Traitement différé.
Partitionnement du disque.
Sous-système Block du noyau.
Ordonnanceur des entrées-sorties
Travaux pratiques
Ecriture progressive d'un pilote de disque virtuel, en s'appuyant sur les exemples fournis dans le cours
3ème séquence 13h30-15h15
Virtual File System :
Organisation du VFS
Structures File, Dentry, Inode, et Super-bloc.
4ème séquence 15h30-17h30
Nouveau système de fichiers :
Enregistrement.
Initialisation du super-bloc.
Implémentation des appels-système de lecture et écriture.
Utilisation du cache en lecture et en écriture.
Communication avec le sous-sytème Block.
Travaux pratiques
Ecriture d'un système de fichiers virtuel, simple en analysant les étapes de transfert des données.
Quatrième journée - Autres types de périphériques
1ère séquence 9h00-10h30
Périphériques réseau :
Dépendance des interfaces bas-niveau et des protocoles réseau.
Périphérique net_device
Enregistrement d'une interface, activation, emission et réception de paquets.
Statistiques d'utilisation d'interface
Travaux pratiques
Ecriture progressive d'un driver pour périphérique virtuel permettant l'utilisation du protocole IPv4.
2ème séquence 10h45-12h15
Protocoles réseau :
Principes de la pile IP.
Emission et réception de données.
Communications avec l'interface bas-niveau.
Travaux pratiques
Examen du trajet des données au sein de la pile IPv4 lors de réception et d'émission de données avec le protocole TCP/IP.
3ème séquence 13h30-15h15
Périphériques USB :
Organisation du sous-système USB de Linux.
Implémentation d'un driver de classe Interrupt :
Enregistrement d'un driver.
Endpoints et types de dialogues.
Communication avec les URB.
Traitements des écritures successives rapides.
Déconnexions intempestives et accès concurrents.
Gestion simultanée de plusieurs périphériques.
Travaux pratiques
Ecriture d'un driver pour carte d'entrée-sortie Velleman K8055.
4ème séquence 15h30-16h30
Autres classes USB :
Exemples de drivers pour les modes Bulk, Control et Isochrones.
Conclusion
Discussions libres sur l'ensemble des thèmes abordés.
Travaux pratiques
Expérimentations libres suivant les demandes des participants.
Informations complémentaires
Vous pouvez calculer vous-même votre tarif en intra-entreprise sur notre site web.
Avez-vous besoin d'un coach de formation?
Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.
Ecriture de Drivers pour Linux