Linux Programmation Noyau et Drivers
Formation
À Paris
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 intensive
-
Niveau
Niveau avancé
-
Lieu
Paris
-
Heures de classe
35h
-
Durée
5 Jours
-
Dates de début
Dates au choix
Cette formation permet de passer en revue l'ensemble des outils disponible dans le noyau Linux pour écrire un driver Linux et d'apprendre à connaître les différents outils utiles pour la mise en oeuvre et le deboggage du noyau et des pilotes de périphériques.
Destinataires: Cette formation est adaptée aux techniciens et ingénieurs, désirant perfectionner leurs connaissances de Linux en vue de développer des pilotes de périphérique.
Précisions importantes
Documents
- LDI.pdf
DIF: Formation éligible au DIF (Droit individiuel à la Formation)
Pôle Emploi: Formation éligible au financement Pôle Emploi
Les sites et dates disponibles
Lieu
Date de début
Date de début
À propos de cette formation
Cette formation permet de passer en revue l'ensemble des outils disponible dans le noyau Linux pour écrire un driver Linux et d'apprendre à connaître les différents outils utiles pour la mise en œuvre et le debug du noyau et des pilotes de périphériques.
Cette formation est adaptée aux techniciens et ingénieurs, désirant perfectionner leurs connaissances de Linux en vue de développer des pilotes de périphérique.
Bonnes connaissance des systèmes d'exploitation et de la programmation en C.
Nos formateurs sont issus du terrain et ont tous plus de 10 ans d'expérience sur le noyau Linux et l'écriture de drivers.
Vous recevrez par email, un complément d'information, les prochaines dates de formation ainsi que les explications sur les démarches nécessaires à l'inscription.
Les Avis
Les matières
- Programmation drivers linux
- Noyau Linux
Professeurs
Pierre Morel
Directeur technique
Pierre Morel effectue des formations UNIX, Linux et Linux embarqué depuis 1992 et travail régulièrement pour le portage de linux sur de nouvelles architectures.
Le programme
- Rappels sur le fonctionnement du système d'exploitation Linux
- Cycles de développement du noyau, les patchs, GIT.
- Organisation des sources (Include/linux, Arch, Kernel, Documentation, ...).
- Principe de compilation du noyau et des modules, les dépendances et symboles.
- Outils de développement (Gcc, Kbuild, Kconfig et Makefile, ...) et de debug KGDB, ftrace, LTT
- Le chargement du noyau (support, argument,...).
- Travaux pratiques : Compilation et installation d'un noyau 3.x. , développement d'un module simple
- Représentation des threads (structure task_struct, thread_info, ...).
- Les threads, contexte d'exécution.
- Les ordonnanceurs de Linux et la préemption.
- Création d'un thread noyau (kthread_create, wakeup_process, ...).
- Travaux pratiques : Ecrire un module qui créé un thread noyau et un autre qui fourni des informations sur les structures internes des processus.
- L'organisation mémoire pour les architectures UMA et NUMA.
- L'espace d'adressage utilisateur et noyau.
- Allocations mémoire, buddy allocator, kmalloc, slabs et pools mémoire.
- La gestion des accès à la mémoire (les caches et la MMU).
- La gestion de pages à la demande (demand paging), copy-on-write, allocations lazy, hugepages
- Les problèmes liés à la sur-réservation de la mémoire (OOM killer).
- Synchronisations et attentes dans le noyau, spinlocks, waitqueues, mutex et les completions.
- Travaux pratiques : Ecriture d'un driver en mode " loopback " pour la mise en œuvre des synchronisations
- L'horloge temps réel, RTC (real Time Clock), implémentation des timers, les jiffies.
- Interface timers haute résolution, estampilles.
- Les outils spécifiques au noyau, listes chaînées, kfifo et container_of.
- Travaux pratiques : Utilisation des timers et des estampilles. Implémentation d'un accès au procfs. Mise en oeuvre de l'allocation mémoire dans le noyau et optimisation à l'aide des slabs.
- 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, du DMA et des accès au matériel.
- Enregistrement des pilotes de périphériques de type caractère et optimisations.
- Travaux pratiques : Ecriture progressive d'un pilote périphérique en mode caractère. Implémentation des synchronisations d'entrée-sortie entre threads et avec la routine d'interruption. Implémentation de l'allocation mémoire. Enregistrement d'une interuption partagée.
- L'interface noyau avec /proc par le procfs. Gestion mémoire par le procfs.
- Présentation du framework, kobject, kset et kref. Interaction avec le sysfs (/sys).
- 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.
- Travaux pratiques : Implémentation d'un bus, d'un driver et d'un device driver. Adaptation du pilote de périphériques caractère. Exemple d'utilisation de l'interface.
- Principe des périphériques en mode bloc. Enregistrement du driver.
- Callback de lecture et écriture. Support du formatage et opérations avancées.
- Ordonnanceur des entrées-sorties par bloc du noyau.
- Conception des systèmes de fichiers.
- Enregistrement d'un nouveau système de fichiers.
- Travaux pratiques Exemple de pilote complet de périphérique block virtuel. Exemple d'un système de fichiers personnalisé.
- Gestion des interfaces réseau sous Linux.
- Utilisation des skbuff.
- Les hooks netfilter.
- Intégration d'un protocole.
- Travaux pratiques : Exemple de driver réseau pour périphérique virtuel. Implémentation de protocole réseau.
- Principe des périphériques USB. Interface avec le module USB-core.
- Construction d'un URB (USB Request Block).
- Les gadgets USB.
- Les drivers audio
- Les drivers vidéo, Linux Frame Buffer
- les drivers d'entrée, drivers input.
- Travaux pratiques : Driver pour périphérique d'entrée (input)
Informations complémentaires
Vous recevrez un support du la formation au format PDF.
Avez-vous besoin d'un coach de formation?
Il vous aidera à comparer différents cours et à trouver la solution la plus abordable.
Linux Programmation Noyau et Drivers