Formation sur l'écriture de drivers et la programmation noyau Linux à Marseille

Durée

4 jours

Objectifs

Maîtrise des concepts fondamentaux liés à la programmation pour le noyau Linux

Participants

Toute personne amenée à intervenir sur le développement système en temps réel sur Linux

Résumé du programme

Noyau Linux et modules
Les modèles et versions
Licence GPL
Développement du noyau
Détecter des appels-système invoqués par des applications et commandes utilisateur
Utilisation de modules précompilés

Outils de développement noyau
Ecriture de code source
Compilation et installation d'un noyau
Écriture de modules simples
Intégration dans le noyau
Paramètres au boot
Cross-compilation sur Raspberry Pi

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

L'environnement du noyau
Les tâches et processus courants
Les espaces d'adressage
Le dialogue avec /proc
Écriture d'un module d'information sur les structures internes des processus
Écriture d'un module d'horodatage via /proc
Tests sur Raspberry Pi

Écriture d'un pilote de périphérique
Le principe
Les numéros majeurs et mineurs
Les classes de périphériques
La manipulation des fichiers spéciaux
La réservation de numéro majeur
L'enregistrement du driver
Les fonctions de lecture et écriture
Écriture d'un driver simple

La gestion des appels-système et des entrées/sorties (I/O)
Le paramétrage par ioctl
La synchronisation d'appels-système par mutex
L'accès matériel
Les ports d'entrées-sorties
GPIO sur carte embarquée
Écriture d'un driver d'entrées-sorties sur GPIO du Raspberry Pi

La gestion d'interruptions
Les contextes d'exécution
L'installation d'un handler
Le traitement différé (tasklet, workqueue et thread interrupt)
Ecriture d'un gestionnaire sur interruption clavier PC et sur GPIO du Raspberry Pi
Visualisation des threadeds interrupts

Les interactions entre appels-système et interruptions
La protection des variables globales (spinlock)
L'attente d'événements (waitqueue)
Les appels-système bloquants
L'influence des priorités temps-réel sur les threads d'interruption
La mesure de temps de latence des interruptions du Raspberry Pi

Entrées-sorties avancées
Le multiplexage d'entrée-sorties (select et poll)
Les principes des transferts de données par DMA
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.

La gestion de la mémoire
Allocation et libération de mémoire (kmalloc, vmalloc, get_free_pages, kmem_cache)
Les projections (mmap)
Expériences sur la projection mémoire en espace utilisateur, allocations mémoire maximales

Les périphériques blocs et VFS
Les principes
L'enregistrement
Le disque générique
La file de requêtes
Le partitionnement
Le sous-système Block
i/o scheduler
Virtual File System
Ecriture 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
Le principe
La détection et l'enregistrement de driver
Base Address Registers
Les interruptions classiques et MSI
Etude d'un driver PCIe de pilotage d'une carte à FPGA.

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

Les communications réseau
Les statistiques d'utilisation d'interface
Les principes de la pile IP
Les communications entre protocoles et interface bas-niveau
Le 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

Les périphériques USB
L'organisation du sous-système USB de Linux
Implémentation d'un driver Interrupt
La communication avec les URB

Les aspects avancés
les écritures successives rapides
Les déconnexions intempestives
Les accès concurrents
Des exemples de drivers Bulk, Control et Isochrones

Conclusion
Discussions libres sur l'ensemble des thèmes abordés
Expérimentations libres suivant les demandes des participants

Demander un devis maintenant !

Mon devis

Toutes nos formations Nos offres

Pour toute demande d'informations : 04 91 32 02 40 ou contact@formationsmarseille.com

Adresse

219 bd Rabatau Daniel Matalon
13010 MARSEILLE

Contacts

Tel. : 04 91 32 02 40
Fax : 04 91 74 03 37
contact@formationsmarseille.com

Formations Marseille

Depuis 2005, Formations Marseille accompagne les entreprises et les salariés dans leurs parcours de formation. Des consultants formateurs qui allient de solides expériences terrains couplées à une pédagogie de proximité.

© 2016. Formations Marseille. Tous droits réservés. Mentions légales