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 > Formation LINUX Développement
 

FORMATION Ecriture de drivers et programmation noyau Linux

Objectifs de la formation linux driver

Cette formation Linux driver 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.
ce cours vous permettra aussi de comprendre en détail les mécanismes internes du noyau sollicités par les applications (mémoire, ordonnanceur, entrées-sorties).
Savoir développer et intégrer de nouveaux éléments dans le noyau Linux comme des protocoles réseau ou des systèmes de fichiers.

Pré-requis :

Les participants doivent disposer d’une bonne connaissance de Linux et d’une bonne maîtrise de la programmation en C.

Travaux pratiques :

Lors de cette formation Linux driver de nombreux exercices et études de cas progressifs seront réalisés sur un réseau de serveurs Linux,
Tous les programmes réalisés en TP existent sous forme de squelettes que les participants complètent eux mêmes.

Contenu de la formation linux driver

Programmation Linux en mode noyau
Le noyau Linux : concepts et licences. Implication de la GPL sur les développements noyau statiques et modulaires. Cycles de développement du noyau, versions et diffusion des sources.
Mode superviseur et utilisateur, fonctionnement des appels-système. Principes des modules, et organisation des sources du noyau.
Outils de développement (Gcc, Kconfig et Makefile), et de débogage (Kgdb, Ltt).
Principe de compilation du noyau et des modules.
Dépendances et contrôle de versions des modules. Exportation de symboles.
 Travaux Pratiques :Compilation et installation d'un noyau 2.6. Observation des appels-système invoqués. Application de patches pour débogage noyau. Ecriture et test de modules simples. Utilisation du système de fichier sysfs. Intégration de modules dans la chaîne de compilation du noyau. Chargement automatique au boot.
Eléments essentiels de programmation noyau

Périphériques : bloc, caractère, réseau et méthodes de développement.
Contextes de fonctionnement du noyau : appel-système, interruption et threads.
Synchronisation des appels-système par sémaphores et mutex. Protection des variables globales par spinlocks. 
Eléments temporels : ticks et jiffies, mesures horaires, attentes actives et sommeils. Programmation d'actions différées et timers.
Représentation des processus et threads, tâche « current ».
Accès aux informations concernant le processus en cours d'exécution. Préemptibilité du noyau 2.6. 
Mémoires virtuelle et physique, espace d'adressage utilisateur et noyau. 
Communication avec les processus par le système /proc.
 Travaux pratiques : 
Ecriture d'un module d'horodatage d'événements à haute précision. Utilisation de notre module pour chronométrer les phases de boot. Ecriture d'un module d'information sur les structures internes des processus.
Ecriture de driver, périphérique en mode caractère

Ecriture de pilotes de périphériques : fichiers spéciaux (/dev), numéros majeur et mineur, fonctions de rappel (callback).
Fonctions essentielles de gestion de périphérique.
Fonctions avancées : paramétrage du périphérique (Ioctl), attentes d'événements, waitqueue.
Accès au matériel : ports d'entrées-sorties, mapping de ports ou de plages de mémoire physique, allocation de mémoire.
Les interruptions : activation/désactivations,handler, partages et imbrication
Bottom half : Tasklet et workqueue, softirq.
 Travaux Pratiques :Ecriture progressive d'un pilote périphérique en mode caractère complet, incluant l'implémentation des appels-système, la gestion des interruptions, l'utilisation d'entrées-sorties physiques, la protection des variables globales, l'appel de routines différées, et le paramétrage du driver avec les différentes méthodes étudiées.
Périphérique en mode bloc et système 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 2.6, choix d'une stratégie.
Conception/Implémentation/Enregistrement des systèmes de fichiers.
 Travaux Pratiques :
Ecriture d'un pilote complet de périphérique virtuel (disque ram). Formatage et montage du disque ram. Implémentation d'un système de fichiers personnalisé. Ecriture d'un outil de formatage. Tests du système de fichier.
Eléments avancés de programmation noyau
Allocations de mémoire : par zones physiques, virtuelles ou par pages.
Modèle des drivers du noyau 2.6 : Kset et Kobject. Gestion des événements Hotplug.
Accès au bus PCI : adressage, drivers, auto-détection et interruptions.
Transferts DMA : organisation des adresses, allocation des buffers et transfert de données.
Interfaces et protocoles réseau

Gestion des interfaces réseau sous Linux.
Enregistrement d'une interface net_device. Callback d'émission et réception. Implémentation et options de la pile IPv4 sous Linux. Transfert des paquets sk_buff. Résolution d'adresse et détail du routage.
Travaux Pratiques :Ecriture d'un driver réseau pour périphérique virtuel. Initialisation et affectation d'adresse IP. Ecriture et intégration d'un protocole réseau personnalisé. Ecriture d'un module d'analyse statistique de la pile IP.
Drivers pour périphériques USB
Principe des périphériques USB. 
Sous Système USB-core. 
Exploration de sysfs
Accès aux « endpoints » de dialogue. 
Types de périphériques. 
Construction d'un URB. 
Dialogue en modes « Contrôle » et « Interruption ». 
Inscription d'un gestionnaire de communication en modes « Bulk » et « Isochrone ».
Travaux Pratiques :Enregistrement d'un driver USB. Etudes des endpoints disponibles. Ecriture d'un driver pour carte d'acquisition Velleman K8055. Etude d'un driver en mode bulk. Ecriture d'un driver de webcam en mode isochrone.

Formation Noyau Linux

-

Formation drivers Linux

-

Formation programmation driver noyau Linux

-

Formation USB Linux

Cette formation « linux driver » est éligible au DIF. Ce cours peut être financé par l'OPCA de votre entreprise.
Durée de la formation linux driver : 4 jours
Tarif 2012 de la formation linux driver : 2100€ HT
Cours disponible en intra également
Référence : ULED
Dates / Inscription en ligne :
du 18/06/2012 au 21/06/2012du 10/09/2012 au 13/09/2012du 17/12/2012 au 20/12/2012

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