Tout développeur souhaitant gérer les modules du noyau, ou en programmer de nouveaux.
Comprendre le fonctionnement des modules dans le noyau, et savoir concevoir des drivers.
Connaissance du système d'exploitation Linux, maîtrise de la programmation en langage C.
|
| Architecture |
Durée : 8h30 Méthodes pédagogiques : alternance de théorie et de travaux pratiques Matériels et moyens : vidéo-projecteur en présentiel, tableau partagé en classe virtuelle, infrastructure distribuée serveurs Linux | 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 |
Durée : 8h30 Méthodes pédagogiques : alternance de théorie et de travaux pratiques Matériels et moyens : vidéo-projecteur en présentiel, tableau partagé en classe virtuelle, infrastructure distribuée serveurs Linux | 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 |
Durée : 4h30 Méthodes pédagogiques : exposé/échanges Matériels et moyens : video-projecteur en présentiel, tableau partagé en classe virtuelle | 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).
|