Linux Programmation Noyau et Drivers

Formation

À Paris

Économisez 16%
1 450 € HT

Appeler le centre

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

Paris ((75) Paris)
Voir plan
4, Place Louis Armand, 75012

Date de début

Dates au choixInscriptions ouvertes

À 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.

Questions / Réponses

Ajoutez votre question

Nos conseillers et autres utilisateurs pourront vous répondre

À qui souhaitez-vous addresser votre question?

Saisissez vos coordonnées pour recevoir une réponse

Nous ne publierons que votre nom et votre question

Les Avis

Les matières

  • Programmation drivers linux
  • Noyau Linux

Professeurs

Pierre Morel

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

PRESENTATION DU NOYAU
  • 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
GESTION DES THREADS, SCHEDULING
  • 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.
GESTION DE LA MEMOIRE, SYNCHRONISATIONS
  • 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
GESTION DU TEMPS
  • 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.
LES INTERRUPTIONS, DRIVER CARACTERE
  • 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.
LINUX DRIVER FRAMEWORK – SYSFS ET PROCFS
  • 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.
PERIPHERIQUE EN MODE BLOC ET SYSTEMES DE FICHIER
  • 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é.
INTERFACES ET PROTOCOLES RESEAU
  • 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.
AUTRES DRIVERS
  • 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

Nombre d'élèves par classe : entre 3 et 8
Vous recevrez un support du la formation au format PDF.



Appeler le centre

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

1 450 € HT