PB Consultant

Contactez-nous au :
01 43 34 90 94
  • image description1
    20 ANS D'EXPÉRIENCE
    EN FORMATION PROFESSIONNELLE
  • image description2
    PLUS DE 650 FORMATIONS
    S'ADRESSANT À TOUS
    DU DEBUTANT A L'EXPERT
  • image description3
    DES CONSULTANTS FORMATEURS
    ISSUS DU TERRAIN QUI TRANSMETTENT
    LEUR EXPERTISE
  • image description3
    DIF... OPCA... FINANCEMENT
    NOUS VOUS CONSEILLONS
    POUR REDUIRE VOS COUTS
  • image description3
    DES FORMATIONS ADAPTEES
    POUR VOUS FAIRE
    GAGNER DU TEMPS
  • image description3
    DES PROGRAMMES DE COURS
    REVISES 2 FOIS / AN

    POUR SUIVRE LES
    NOUVELLES TECHNOLOGIES
Accueil > Open Source > LINUX Développement > Ecriture de drivers et programmation noyau Linux
 

FORMATION Ecriture de drivers et programmation noyau Linux

Objectifs de la formation linux drivers

Le support pour les périphériques est assuré sous Linux par des pilotes (drivers) dont le code se déroule dans le noyau du système d'exploitation. Il est donc nécessaire pour le développeur amené à écrire ou à tester des pilotes de périphériques de maîtriser les concepts propres à la programmation noyau.

Cette formation Linux Drivers propose une approche originale, s'appuyant sur l'écriture progressive de pilotes de différents types, pour appréhender les mécanismes parfois complexes (préemptibilité, multiprocesseur, support d'architectures différentes, etc.) inhérents au code exécuté en mode noyau.
Cette formation Linux drivers vous permettra de maîtriser le développement de pilotes de périphériques (drivers) robustes et adaptés aux différentes déclinaisons de Linux.
Outre les périphériques classiques (caractère, bloc, réseau), son étudié les sous-systèmes du noyau tels que les systèmes de fichiers ou l'ensemble USB.

Pré-requis :

Connaissance de Linux (utilisateur) et bonne familiarité avec le langage C.

Travaux pratiques :

les exercices et démonstrations ont lieu, suivant les sujets, sur plate-forme PC ou sur carte ARM Raspberry Pi.

Contenu de la formation linux drivers

Programmer pour le noyau Linux Noyau Linux et modules

modèle, version, licence GPL, développement du kernel, appels-système, modules. Travaux pratiques Observation des appels-système invoqués par des applications et commandes utilisateur. Manipulation des modules précompilés.
Outils de développement noyau

sources, compilation noyau et modules,écriture et compilation de modules, cross-compilation, messages, dépendances. Travaux pratiques Compilation et installation d'un noyau. Écriture de module simple. Intégration dans le noyau. Paramètres de boot. Cross-compilation sur Raspberry Pi.

 

API du noyau

chaînes, blocs mémoire, fonctions numériques et conversions, éléments temporels et actions différées, préemptibilité du noyau.Travaux pratiques Écriture d'un module d'horodatage. Chronométrage des phases de boot. Mesure de précision d'horloge. Mesure de durée d'appel-système.
Environnement du noyau

tâches et processus current, espaces d'adressage, dialogue avec /proc. Travaux pratiques Écriture d'un module d'information sur les structures internes des processus. Écriture d'un module d'horodatage via /proc. Test sur Raspberry Pi.Écriture d'un driver LinuxÉcriture d'un pilote de périphérique

principes, numéros majeurs et mineurs, classes de périphériques, enregistrement du driver, fonctions de lecture et écriture. Travaux pratiques Manipulation des fichiers spéciaux. Réservation de numéro majeur. Enregistrement de périphérique. Écriture d'un driver simple.
Appels-systèmes et I/O

Paramétrage par ioctl. Synchronisation d'appels-système par mutex. Accès matériel. Ports d'entrée-sorties. GPIO sur carte embarquéTravaux pratiques Mise en évidence de la nécessité des mutex. Écriture d'un driver d'entrée-sorties sur GPIO du Raspberry Pi.
Gestion d'interruptions

contextes d'exécution, installation d'un handler, traitement différé (tasklet, workqueue et threaded interrupts).Travaux pratiques Écriture d'un gestionnaire d'interruption sur interruption clavier PC et sur GPIO du Raspberry Pi. Visualisation des threadeds interrupts.

 

Interactions entre appels-système et interruptions protection des variables globales (spinlock), attentes d'événements (waitqueue), appels-système bloquants.Travaux pratiquesInfluence des priorités temps-réel sur les threads d'interruption. Mesure de temps de latence des interruptions du Raspberry Pi.

 

Aspects avancés d'un driver de périphériqueEntrées-sorties avancées

multiplexage d'entrée-sorties (select et poll), principes des transferts de données par DMA.Travaux pratiques Création d'un périphérique "file de messages" virtuel implémentant plusieurs appels-système. Implémentation de select sur des entrées GPIO.

 

Gestion de la mémoire

allocation et libération de mémoire (kmalloc, vmalloc, get_free_pages, kmem_cache), projections (mmap).Travaux pratiques Expériences sur la projection mémoire en espace utilisateur. Allocations mémoire maximales.


Périphériques blocs et VFS

principes, enregistrement, disque générique, file de requêtes,partitionnement, sous-système Block, i/o scheduler, Virtual File System. Travaux pratiques Écriture d'un driver de disque virtuel. Partitionnement, formatage et montage de disque virtuel. Observation des effets des caches-disques du VFS.

 

Périphériques PCI Express

principe, détection et enregistrement de driver, Base Address Registers, interruptions classiques et MSI.Travaux pratiques Étude d'un driver PCIe de pilotage d'une carte à FPGA.Périphériques réseau et USBPériphériques réseau

interfaces bas-niveau et protocoles réseau, périphérique net_device, enregistrement, activation, émission et réception de paquets. Travaux pratiques Ecriture progressive d'un driver pour périphérique virtuel permettant l'utilisation du protocole IPv4.
Communications réseau

Statistiques d'utilisation d'interface, principes de la pile IP, communications entre protocoles et interface bas-niveau. Travaux pratiques Examen du trajet des données au sein de la pile IPv4 lors de réception et d'émission de données avec le protocole TCP/IP.

 

Périphériques USB  Organisation du sous-système USB de Linux, implémentation d'un driver Interrupt, type de endpoints, Communication avec les URB. Travaux pratiques Écriture d'un driver pour carte d'entrée-sortie Velleman K8055.

 

Aspects avancés  écritures successives rapides, déconnexions intempestives, accès concurrents, Exemples de drivers Bulk, Control et Isochrones.


Formation Noyau Linux

-

Formation drivers Linux

-

Formation programmation driver noyau Linux

-

Formation USB Linux

Cette formation « linux drivers » est éligible au DIF. Ce cours peut être financé par l'OPCA de votre entreprise.
Durée de la formation linux drivers : 4 jours
Tarif de la formation linux drivers : 2165€ HT
Cours disponible en intra également
Référence : ULED
Dates / Inscription en ligne :
du 04/06/2013 au 07/06/2013du 23/09/2013 au 26/09/2013du 25/11/2013 au 28/11/2013

Des sessions supplémentaires sont créées régulièrement, n’hésitez pas à nous contacter pour en prendre connaissance.

Lieu de la formation
Paris - La Défense
Nos coordonnées
Tél : 33 (0)1 43 34 90 94
E-mail : nous contacter