Public:
Tout développeur souhaitant gérer les modules du noyau, ou en programmer de nouveaux.
Objectifs:
Comprendre le fonctionnement des modules dans le noyau, et savoir concevoir des drivers.
Connaissances préalables nécessaires:
Connaissance du système d'exploitation Linux, maîtrise de la programmation en langage C.
Programme détaillé de la formation
(
Téléchargez le programme) :
|
Architecture |
Architecture d'un système Unix. Mode user, mode kernel. Logs. Notion de pilotes/drivers. Architecture d'un système Linux. Notion de modules. Les distributions : desktop, embarquées (openWRT). Gestion des modules: ajout, suppression, paramétrage.Atelier : ajout d'un module simple sur une distribution standard.
Présentation de la busybox pour les distributions embarquées.
|
|
Compilation noyau |
Compilation d'un noyau pur officiel. Description de la chaîne de compilation. Options de compilations. Mise en place du nouveau noyau.Atelier : modification d'un module pilote. Ajout au noyau précédent. Création d'un module de base.
|
|
Programmation de modules |
Principes fondamentaux : timers et alarmes, journalisation, échanges de données kernel-mode/user-mode, interactions dynamiques avec un module, passage de paramètres, gestion des tâches task_struct, allocation mémoire kmalloc, verrouillage du noyau en cas d'accès concurrents (lock_kernel).
|