Objectifs

Le but de cette formation est de ddévelopper des pilotes de périphérique sous GNU/Linux.

Programme

– Historique du noyau Linux, licences

– Développement du noyau

– Les appels systèmes

– Modules
Travaux pratiques
Compilation et installation d’un noyau 3.x.

– Organisation des sources

– Paramétrage et compilation du noyau

– Programmation des modules du noyau

– Compilation des modules indépendants

– Messages du noyau

– Dépendances entre modules
Travaux pratiques
Installer l’ensemble des outils et des sources pour générer un module
pour le noyau. Configurer le système pour effectuer le chargement
automatique de module au boot. Ecriture et test de modules simples.

– Chaînes de caractères, blocs mémoire, fonctions numériques et conversions

– Pilotes de périphérique

– Eléments temporels et actions différées

– Préemptibilité du noyau
Travaux pratiques
Créer un module qui crée un thread noyau lors de l’insertion et le
décharge lors du rmmod. Ecriture d’un module d’horodatage
d’événements à haute précision. Ecriture d’un module d’information
sur les structures internes des processus.

-Tâches et processus « current »
-Espaces d’adressage
-Dialogue avec /proc

-Principe des pilotes de périphériques
-Réservation de numéros majeurs et mineurs
-Enregistrement du pilote de périphérique
-Fonctions de lecture et écriture
-Fonctions de paramétrage
-Synchronisation des appels système

-Accès simple au matériel
-Appel système et interruption
-Différer un traitement en interruption
-Protection des variables globales

-Attentes d’événements
-Multiplexage d’entrées et de sorties
-Gestion de la mémoire

-Principe des périphériques de bloc
-Ecriture d’un driver
-Enregistrement du pilote
-Déclaration d’un disque générique
-Initialisation de la file de requêtes
-Requêtes sur un driver bloc

-Traitement différé
-Partitionnement du disque
-Sous-système
-Block du noyau
-Ordonnanceur des entrées/sorties

Référence :  SE007

Type de Stage : Pratique

Durée : 4 jours

Public concerné:

Administrateurs et développeurs

Prérequis:

Bonnes connaissances en
programmation système en C.
Maîtrise de Linux