Travailler dans un environnement Open Source : contacter les développeurs, rechercher des informations, utiliser des outils spécifiques, etc. Réaliser des développements autour du noyau Linux, en particulier des pilotes de matériel Analyser et corriger les problèmes de fonctionnement du système, en remontant jusqu'au noyau du système d'exploitation Mieux comprendre les aspects de licences dans le cadre des développements
À l'issue de la formation, les ingénieurs de développement auront acquis une compétence sur le noyau Linux utilisable en environnement embarqué et/ou industriel qui leur permettra de développer ou d'assurer la maintenance d'extensions noyau.
Cette formation est destinée à une population d'ingénieurs de développement
Programme :
Introduction à Linux
Présentation de Linux
Historique
Présentation de l'Open Source
Licences Open Source (GPL, LGPL)
Méthodes de travail et outils
Présentation du noyau Linux
Caractéristiques du noyau Linux
Mode noyau et utilisateur, appels système
Fonctionnement des sous-systèmes noyau (gestion de la mémoire, ordonnancement, interruptions, systèmes de fichiers, réseau)
Modules noyau
Versions du noyau
Téléchargement et contenu des sources
Solutions de mise au point (débogage, profiling)
Gestion des patches
Documentation, pointeurs électroniques, livres
Licence du noyau Linux
Compilation croisée
Développement du noyau Linux
Règles & conventions de développement
Développement d'un module noyau
Description
Paramètres
Initialisation
Libération
Optimisation
Compteur d'usage
Symboles
Intégration dans les sources du noyau
Interface entre les applications et les pilotes de périphériques
Fichiers spéciaux
Numéros majeur et mineur
Présentation des pilotes de périphériques
Caractéristiques
Fonctionnement
Implémentation
Fonctions usuelles : open/close/read/write/ioctl
API principale du noyau
Gestion de la mémoire (allocation, copie vers les processus)
Files d'attente
Synchronisation
Mesure du temps
Délais
Timers
Queues de travail
Threads noyau
Listes chaînées
Accès au matériel
Interruptions
Entrées/sorties
API des bus PCI et USB
Mise au point
Présentation et mise en oeuvre de KGDB (débogueur noyau)
Présentation et mise en oeuvre de LTT (Linux Trace Toolkit)
Travaux pratiques
Configuration, compilation et installation d'un noyau Linux sur le poste de travail
Développement d'un module noyau
Développement d'un pilote en mode caractère mettant en oeuvre les différentes API du noyau
Développement d'un pilote interceptant les interruptions du clavier
Développement d'un pilote PCI permettant l'accès à la mémoire d'entrée/sortie d'une carte vidéo
Développement d'un pilote USB s'interfaçant avec une souris
Mise en oeuvre et utilisation de KGDB et LTT