M2i Formation

Linux - Conception de drivers

Par M2i Formation

Objectifs

  • 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

Pédagogie

L'évaluation des acquis se fait :

  • 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)

Partager cette formationTélécharger au format pdf Ajouter à mes favoris

Formations de la même catégories (5)

Dawan
Linux Administration + Préparation LPI 102Par Dawan

Comprendre les principes de l'OpenSource et Linux - Savoir installer une distribution Linux - Connaître les bases de l'utilisation de Linux - Passer l'examen LPI 102

Orsys
Linux industriel, temps réel et embarquéPar Orsys

Vous découvrirez dans cette formation l'architecture générale d'un système embarqué et mettrez en œuvre les outils de développement industriel disponibles librement sous Linux. Vous implémenterez les mécanismes d'ordonnancement temps partagé et réel souple, vous accéderez au développement temps réel strict avec l'extension LinuxRT ou Xenomai. Vous verrez enfin comment personnaliser le boot d'un système Linux.

Tanit Formation
Administrer un système linux - niveau 1Par Tanit Formation

La formation est basée sur la distribution Linux RedHat. Elle vous garantira l’assurance de gérer avec succès toutes les tâches liées àl’adminitsration d’un système d’exploitation.

Dawan
Linux Avancé : Serveur d'entreprises avec Samba/LDAP/Netfilter/SquidPar Dawan

Savoir installer, configurer et maintenir un serveur de fichier/d'authentification/routeur/firewall pour une entreprise

Openska
C avancé : programmation système sous LinuxPar Openska

Conçu pour la programmation système, le langage de programmation impératif C est l’un des langages les plus utilisés. Le langage C est dit compilé, c’est-à-dire décrit par un fichier source. Quant à Linux, système d’exploitation libre, c’est une implémentation libre du système UNIX très sollicitée par les professionnels.

Openska vous propose la formation C avancé : programmation système sous Linux sur 5 jours afin de vous permettre de maîtriser les concepts de programmations les plus complexes à l’aide du langage C. À terme, vous serez capable de développer des applications à l’aide du langage C. Du rappel des bases à la gestion des threads Linux en passant par la gestion du réseau et de la mémoire, vous acquerrez l’ensemble des connaissances et compétences nécessaires à la maîtrise des concepts avancés du langage de programmation C. Vous obtiendrez également une vue d’ensemble des principales bibliothèques existantes et de leurs modes d’utilisation, et ce, pour optimiser votre gestion du temps.

Nous utilisons les cookies afin de fournir les services et fonctionnalités proposés sur notre site et afin d’améliorer l’expérience de nos utilisateurs. En cliquant sur ”J’ai compris”, vous acceptez l’utilisation de ces cookies.