Formation Linux

drivers et programmation noyau :

Cette formation vous permettra de maîtriser le développement de pilotes de périphériques (drivers) robustes et adaptés aux différentes distributions de Linux. Vous verrez les différents types de périphériques, la gestion de la mémoire, l'implémentation de protocole réseau ainsi que les périphériques USB.

Objectifs pédagogiques :

  • Maîtriser le développement de pilotes de périphériques
  • Comprendre en détail les mécanismes internes du noyau
  • Savoir développer et intégrer de nouveaux éléments dans le noyau Linux
  • Ecrire un pilote périphérique en mode caractère ou bloc
<

Tarification et déroulement

Formation continue

400 DH/Mois ≈

  • Type de formation : En groupe
  • Volume horaire : 32 heures
  • Durée de la formation : 4 mois
  • Début de la formation : Le
  • Dernier délais d'inscription : Le
  • Déroulement : Une séance de 2h par semaine
  • Horaire : À déterminer après la fin de votre inscription pour s'adapter aux emplois de temps des inscrits

Formation continue Accélérée

1000 DH/Mois ≈

  • Type de formation : En groupe
  • Volume horaire : 48 heures
  • Durée de la formation : 2 mois
  • Début de la formation : Le
  • Dernier délais d'inscription : Le
  • Déroulement : 3 séances de 2h par semaine
  • Horaire : À déterminer après la fin de votre inscription pour s'adapter aux emplois de temps des inscrits

Formation Accélérée

4000 DH ≈

  • Type de formation : Individuel
  • Volume horaire : 32 heures
  • Début de la formation : Dans un délais de 24 h aprés la validation de votre inscription
  • Horaire : Flexible selon votre disponibilité et la disponibilité de l'enseignant
  • Répartition des heures de la formation : vous pouvez terminer dans un délais de 4 jours ou bien répartir votre heures selon votre rythme, votre engagement

Formation continue

1000 DH/Mois ≈

  • Type de formation : Individuel
  • Volume horaire : 32 heures
  • Durée de la formation : 4 mois
  • Début de la formation : Dans un délais de 24 h aprés la validation de votre inscription
  • Déroulement : Une séance de 2h par semaine
  • Horaire : À déterminer après la fin de votre inscription
×

Formulaire d'inscription à l'Ecole Polytechnique des Génies

Virement Bancaire

Comment dois-je faire pour payer les frais d'inscription

Competence Center met à votre disposition des méthodes de paiement flexibles et en toute sécurité

Paiement par virement bancaire (RIB : 127270212119022082000414).

Paiement en cash chez notre centre (À côté de la pharmacie Bahja sur l'avenue Mhd 5, au-dessus du café El Mamouniya).

Programme de formation

1 Présentation du noyau :

  • Vue d'ensemble du système et rôle du noyau.
  • Les sites de référence.
  • Spécificités des noyaux 3.x et 4.x.
  • Cycles de développement du noyau, les patchs.
  • Mode de fonctionnement (superviseur et utilisateur). Appels système.
  • Organisation des sources (Include/linux, Arch, Kernel, Documentation...).
  • Principe de compilation du noyau et des modules.
  • Les dépendances et symboles.
  • Les exportations de symboles.
  • Le chargement du noyau (support, argument...).
  • Tp : Compilation et installation d'un noyau 3.x.

2 Les outils utilisables :

  • Outils de développement (Gcc, Kbuild, Kconfig et Makefile...).
  • Outils de débogage (GDB, KGDB, ftrace...).
  • Outil de gestion de version (Git...).
  • Tracer les appels système (ptrace...).
  • Tp : Installer l'ensemble des outils et des sources pour générer un module pour le noyau. Configurer le système pour effectuer le chargement automatique de module au boot. Ecriture et test de modules simples.

3 Gestion des threads, scheduling :

  • Les différents types de périphériques.
  • Contextes de fonctionnement du noyau. Protection des variables globales.
  • Représentation des threads (état, structure task_stru, thread_info...).
  • Les threads, contexte d'exécution.
  • Le scheduler de Linux et la préemption.
  • Création d'un thread noyau (kthread_create, wakeup_process...).
  • Tp : Créer un module qui crée un thread noyau lors de l'insertion et le décharge lors du rmmod. Ecriture d'un module d'horodatage d'événements à haute précision. Ecriture d'un module d'information sur les structures internes des processus.

4 Drivers pour périphériques USB :

  • Principe des périphériques USB. Interface avec le module USB-core.
  • Interaction du périphérique avec le noyau Linux.
  • Construction d'un URB (USB Request Block).
  • Les gadgets USB.
  • Tp : Enregistrement d'un driver USB. Ecriture d'un driver en mode isochrone.

5 Interfaces et protocoles réseau :

  • Gestion des interfaces réseau sous Linux.
  • Utilisation des skbuff.
  • Les hooks netfilter.
  • Intégration d'un protocole.
  • Tp : Exemple de driver réseau pour périphérique virtuel. Implémentation de protocole réseau.

6 Gestion de la mémoire, du temps et de proc :

  • L'organisation mémoire pour les architectures UMA et NUMA.
  • L'espace d'adressage utilisateur et noyau.
  • La gestion de pages à la demande (demand paging).
  • Allocations mémoire, buddy allocator, kmalloc, slabs et pools mémoire.
  • La gestion des accès à la mémoire (les caches et la MMU).
  • Les problèmes liés à la sur-réservation de la mémoire.
  • Gestion de la mémoire sur x86 et ARM, utilisation des Hugepages.
  • Optimisation des appels systèmes (IAPX32, VDSO).
  • Synchronisations et attentes dans le noyau, waitqueues, mutex et les completions.
  • Les ticks et les jiffies dans Linux.
  • L'horloge temps réel, RTC (real Time Clock), implémentation des timers.
  • Interface timers haute résolution, estampilles.
  • Les outils spécifiques au noyau, listes chaînées, kfifo et container_of.
  • L'interface noyau avec /proc par le procfs.
  • Tp : Utilisation des timers et des estampilles. Implémentation d'un accès au procfs. Mise en œuvre de l'allocation mémoire dans le noyau et optimisation à l'aide des slabs.

7 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.
  • Tp :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.

8 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.
  • Tp : 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.

9 Périphérique en mode bloc et systèmes de fichiers :

  • 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.
  • Tp : Exemple de pilote complet de périphérique virtuel. Exemple d'un système de fichiers personnalisé.

Notre priorité

Formation flexible

Vous souhaitez actualiser vos connaissances ou acquérir un diplôme ? Choisissez parmi les différentes formations en informatique le cours qui vous convient, à vos rythme, tout au long de vos formation.

Qualités requises

L’informatique est un outil majeur de stratégie et de compétitivité. Il est devenu indispensable aux entreprises et au grand public... Profitez des conseils avec nous pour bien maîtriser l’informatique.

Formation à distance

Il est possible de devenir webmaster, webdesigner ou référenceur... Profitez avec notre centre des formations diplômantes et certifiantes à distance pour s’orienter aux métiers du web.

prix compétitifs

Depuis la création de notre centre, nous ne cessons de développer nos connaissances pour assurer de formation performante avec un prix abordable, raisonnable et particulièrement avantageux.