Ecriture de drivers et programmation noyau Linux

Formation

À Paris

2 720 € 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

  • Lieu

    Paris

  • Dates de début

    Dates au choix

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.

Les sites et dates disponibles

Lieu

Date de début

Paris ((92) Hauts-de-Seine)
Tour Atlantique, 92400

Date de début

Dates au choixInscriptions ouvertes

À propos de cette formation

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

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

  • Développement Linux
  • Programmation pour le noyau Linux

Le programme

Programmer pour le noyau LinuxNoyau Linux et modulesmodèle, version, licence GPL, développement du kernel, appels-système, modules.Travaux pratiquesObservation des appels-système invoqués par des applications et commandes utilisateur. Manipulation des modules précompilés.Outils de développement noyausources, compilation noyau et modules,écriture et compilation de modules, cross-compilation, messages, dépendances.Travaux pratiquesCompilation et installation d'un noyau. Écriture de module simple. Intégration dans le noyau. Paramètres de boot. Cross-compilation sur Raspberry PiAPI du noyauchaî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 noyautâ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ériqueprincipes, numéros majeurs et mineurs, classes de périphériques, enregistrement du driver, fonctions de lecture et écriture.Travaux pratiquesManipulation 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/OParamétrage par ioctl. Synchronisation d'appels-système par mutex. Accès matériel. Ports d'entrée-sorties. GPIO sur carte embarquéTravaux pratiquesMise en évidence de la nécessité des mutex. Écriture d'un driver d'entrée-sorties sur GPIO du Raspberry Pi.Gestion d'interruptionscontextes 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 interruptionsprotection 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éesmultiplexage d'entrée-sorties (select et poll), principes des transferts de données par DMA.Travaux pratiquesCré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émoireallocation et libération de mémoire (kmalloc, vmalloc, get_free_pages, kmem_cache), projections (mmap).Travaux pratiquesExpériences sur la projection mémoire en espace utilisateur. Allocations mémoire maximales.Périphériques blocs et VFSprincipes, 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 Expressprincipe, 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éseauinterfaces bas-niveau et protocoles réseau, périphérique net_device, enregistrement, activation, émission et réception de paquets.Travaux pratiquesEcriture progressive d'un driver pour périphérique virtuel permettant l'utilisation du protocole IPv4.Communications réseauStatistiques d'utilisation d'interface, principes de la pile IP, communications entre protocoles et interface bas-niveau.Travaux pratiquesExamen 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.

Informations complémentaires

expert

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.

Ecriture de drivers et programmation noyau Linux

2 720 € HT