Accueil > Windows, Linux, Unix, Mac, IBM > Ecriture de Drivers et Programmation Noyau Linux
Formation #OS110

Formation Ecriture de Drivers et Programmation Noyau Linux

Formation avec Restauration incluse
(Déjeuner, Petit Déjeuner et Pauses Cafés)

Durée : 5 jours

Code : OS110


Sessions programmées :

Du 18 au 22 Jan. 2021

Du 22 au 26 Mars 2021

Du 17 au 21 Mai 2021

Du 12 au 16 Juil. 2021

Du 11 au 15 Oct. 2021

Du 27 au 31 Déc. 2021

Fin d'Inscription :
Le Bulletin d'Inscription doit être rempli, cacheté, signé et envoyé par email :
  • Pour les entreprises AU MAROC :
    Au minimum 10 JOURS OUVRÉS avant la date de formation
  • Pour les entreprises HORS MAROC :
    Au minimum 15 JOURS OUVRÉS avant la date de formation

Formation dans votre entreprise.

Durée : 5 jours

Code : OS110


Vous souhaitez réaliser cette formation en vos locaux avec le même programme ?

Vous souhaitez personnaliser le programme de cette formation pour qu'elle réponde aux spécificités de votre entreprise ?

Objectifs

  • Maîtriser le développement de pilotes de périphériques robustes et adaptés aux différentes distributions de Linux
Programme
1/ Noyau Linux et modules
  • Vue d'ensemble du système et rôle du noyau
  • Les sites de référence
  • Cycles de développement du noyau, les patchs
  • Mode de fonctionnement (superviseur et utilisateur)
  • Les appels systèmes
  • Modules
  • Principe de compilation du noyau et des modules
  • Les dépendances et symboles
  • Les exportations de symboles
  • Le chargement du noyau (support, argument...)
2/ Les outils utilisables
  • Outils de développement (Gcc, Kbuild, Kconfig et Makefile...)
  • Outils de débogage (GDB, KGDB, ftrace...)
  • Environnement de débogage (Linux Trace Toolkit...)
  • Outil de gestion de version (Git...)
  • Tracer les appels système (ptrace...)
3/ API 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
4/ Environnement du noyau
  • Tâches et processus "current"
  • L'espace d'adressage utilisateur et noyau
  • L'interface noyau avec /proc par le procfs
5/ 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
  • Optimisation des appels systèmes (IAPX32, VDSO)
  • Synchronisations et attentes dans le noyau, waitqueues, mutex et les completions
6/ 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
7/ Fonctions avancés d'un driver
  • Attentes d'événements
  • Multiplexage d'entrées et de sorties
  • Gestion de la mémoire
8/ Modèle de périphérique du noyau
  • Création d'une classe de périphérique
  • Transferts de données par DMA
9/ Périphérique en mode caractère
  • Ecriture de pilotes de périphériques caractère
  • Le VFS (Virtual File System)
  • Les méthodes associées aux périphériques caractères
  • Gestion des interruptions DMA et accès au matériel
  • Enregistrement des pilotes de périphériques de type caractère et optimisations
10/ Linux Driver Framework - sysfs
  • Présentation du framework, kobject, kset et kref
  • Les objets drivers, device driver, bus et class
  • Utilisation et génération des attributs présentés dans le sysfs
  • Interface avec le hotplug, méthodes match, probe et release
  • Gestion du firmware
  • Gestion de l'énergie, méthodes de gestion de l'énergie
11/ Périphérique en mode 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
12/ Driver bloc avancé
  • Traitement différé
  • Partitionnement du disque
  • Sous-système
  • Block du noyau
  • Ordonnanceur des entrées / sorties
13/ 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
14/ Interfaces et protocoles réseau
  • Gestion des interfaces réseau sous Linux
  • Utilisation des skbuff
  • Les hooks netfilter
  • Intégration d'un protocole
15/ 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
Approche Pédagogique

Approche Pédagogique

  • Pédagogie très opérationnelle fondée sur l'alternance entre théorie et pratique
  • Cas pratiques
  • Remise d’outils
  • Echanges d’expériences
Public Cible

Personnes Visées

  • Développeurs Linux/Unix
Dates

Dates

  • Du 18 au 22 Jan. 2021
  • Du 22 au 26 Mars 2021
  • Du 17 au 21 Mai 2021
  • Du 12 au 16 Juil. 2021
  • Du 11 au 15 Oct. 2021
  • Du 27 au 31 Déc. 2021
  • Fin d'Inscription :
    Le Bulletin d'Inscription doit être rempli, cacheté, signé et envoyé par email :
    • Pour les entreprises AU MAROC : Au minimum 10 JOURS OUVRÉS avant la date de formation
    • Pour les entreprises HORS MAROC : Au minimum 15 JOURS OUVRÉS avant la date de formation