| |
| Formation - LINUX : Programmation
noyau - Device Drivers - BSP
(PowerPC/ARM) (reference 003154A) |
|
| |
| |
|
 |
|
Formations connexes
|
|
|
 |
|
|
|
|
|
|
| |
|
 |
|
Pré-requis
- Experience en
programmation C
- Connaissance de
base des systèmes d'exploitation et des
techniques de debug
- Connaissance des
mécanismes des processeurs ou des
micro-contrôleurs
|
|
|
| |
|
|
|
|
|
|
 |
|
 |
|
Objectifs de la formation
- Comprendre les
mécanismes utilisés dans le noyau Linux
- Comprendre comment
ces mécanismes sont implémentés sur
les plateformes PowerPC
- Comprendre la
séquence de boot de Linux et son
implementation sur les PowerPC
- Programmer des
drivers et les intégrer dans le noyau
Linux.
- Le cours est
divisé en présentations et travaux
pratiques. Les travaux pratiques
permettent de mieux comprendre le contenu
des présentations
- Configurer et
construire une image noyau Linux
- Comprendre les
differents types d'images noyau et de
root filesystems
- Comprendre la
séquence de boot du noyau Linux et le
code de bootstrap
- Démarrer une
application après le boot du noyau
- Comprendre
l'implementation et l'initialization
Linux sur les processeurs PowerPC
- Créer et charger
des modules dans le noyau
- Utiliser les outils
de debug pour debugger le noyau
- Comprendre les
differents mécanismes de synchronisation
et d'exclusion mutuelle du noyau et leur
implémentation sur les PowerPC
- Comprendre les
exceptions et les interruptions et leur
implémentation sur les PowerPC
- Connecter les
gestionnaires d'interruption et
d'exception et utiliser les mécanismes
"bottom half " pour planifier
les fonctions
- Utiliser les
mécanismes "timer" pour
attendre un délai, planifier les tâches
périodiques, les événements datés
- Comprendre la
gestion de la mémoire par Linux
- Comprendre comment
les device drivers sont connectés au
noyau Linux et programmer ces device
drivers en utilisant les mécanismes vus
précédemment
|
|
|
 |
|
|
|
|
|
|
| |
|
 |
|
Durée
|
|
|
 |
|
|
|
|
|
|
| |
|
 |
|
Programme [Jour 1]
Introduction
- Espace Utilisateur, Espace Noyau
- BSP et Device Drivers
- Licences
- Sources Noyau
Installation, Compilation et Boot du noyau
Linux
- Configuration noyau
- Construction noyau
- Images noyau
- La Bootline
- Le Root Filesystem
- Demarrage d'une application après le
boot du noyau Linux
Travaux pratiques
- Configuration et compilation du noyau
Linux
- Boot du noyau sur la plateforme cible
- Lancement d'una application au boot
- Utilisation d'un root filesystem en RAM
et d'un root filesystem monté NFS
[Jour 2]
Gestion des Modules
- Introduction
- Ecriture de Modules
- Construction des Modules
- Chargement et Déchargement de Modules
Debug
- printk
- /proc
- gdb, remote gdb, kgdb
- Outils de traçage
Programmation dans l'espace noyau
- Généralités
- Planification
- Files d'attente
- "Atomic Operations" en C
- Spinlocks
- Sémaphores
Travaux pratiques
- Ecriture d'un module noyau
- Chargement manuel et chargement
automatique d'un module
- Ecriture d'une procédure noyau
réentrante
- Debug de code noyau
[Jour 3]
Gestion des interruptions et des exceptions
- Gestion Processeur des interruptions et
des exceptions
- Gestion des interruptions
- Mécanisme "Bottom-Half" : BH
et Tasklet
- Gestion des exceptions
Gestion des Timings
- Timers Linux
- Attente pendant un délai
- Timestamping
Travaux pratiques
- Ecriture d'un gestionnaire
d'interruption, connexion et activation
du handler
- Ecriture d'un BH et activation de
celui-ci depuis un handler d'interruption
- Attente pendant un délai court et un
délai long
- Execution de code périodique
- Tiimestamping haute resolution pour
mesure de performances
[Jour 4]
Gestion de la mémoire
- Généralités
- Allocation mémoire de l'espace noyau
- Gestion des E/S
- Gestion du cache
- Gestion du DMA
- Sujets divers
Ecriture de Device Drivers
- Généralités
- Enregistrement d'un driver
- Gestion des "device nodes"
- Character Drivers
- Structures de données et architecture
générale
- Méthodes d'implémentation des drivers
- Block Drivers
- Gestion "Request queue"
- Gestion du cache buffer
Travaux pratiques
- Accès à l'espace utilisateur depuis un
appel noyau
- Récupération mémoire depuis le code
d'initialisation
- Ecriture d'un "character
driver"
- Ecriture d'un driver "block
ramdisk" et installation d'un
système de fichiers sur celui-ci
|
|
|
 |
|
|
|
|
|
|
| |
|
 |
|
Documentation
Les supports de cours sont donnés aux
participants. Précis et faciles à utiliser, ils
peuvent servir de référence par la suite.
Le listing des exercices est également fourni
aux participants. |
|
|
 |
|
|
|
|
|
|