v2.11.0 (5491)

Enseignement scientifique & technique - SE758 : Développement de Pilotes de Périphériques pour Noyau Linux

Domaine > Informatique.

Descriptif

De nombreux systèmes embarqués se basent sur le noyau Linux. Dans certains cas, il est nécessaire de développer un nouveau pilote de périphérique (par exemple lors du développement d’une nouvelle IP) ou d’être capable de maintenir un pilote existant et de le faire évoluer en fonction des besoins. Cette UE vise à apprendre aux étudiants à développer un tel pilote de périphérique, à l’interfacer avec le matériel et les applications et à l’intégrer dans les sources du noyau.
Tout au long de l’UE, les étudiants ont à développer des petits pilotes pour différents types de périphérique (accéléromètre I2C, IP dédiée, etc.) afin de mettre en pratique les connaissances théoriques abordées.
L’UE est centrée sur le noyau Linux mais de nombreux concepts abordés sont applicables à d’autres systèmes d’exploitation.
Note : Cette UE fait l’objet d’un MOOC en cours de conception et a vocation à être dispensée principalement sous ce format lorsqu’il sera disponible. En attendant, un format plus classique (cours + TP en présentiel) est prévu.

Objectifs pédagogiques

Être capable d’écrire un pilote de périphérique pour le noyau Linux
Être capable d’intégrer ce pilote dans les sources du noyau
Connaître les spécificités du développement pour le noyau (espace noyau vs. espace utilisateur, outils disponibles, débogage…)
Connaître les abstractions utilisées dans le noyau pour les pilotes (modèle de périphérique, frameworks pour la communication avec les applications…)
Connaître les différents mécanismes d’interaction avec le matériel (utilisation des bus de communication, interruptions, DMA…) et savoir les utiliser
Connaître comment un pilote interagit avec le noyau (gestion mémoire, ordonnancement, attente…)
Connaître les mécanismes de communication avec les applications (appels systèmes, transfert de données…)
Connaître le processus de développement du noyau et la communauté

28 heures en présentiel

effectifs minimal / maximal:

10/25

Diplôme(s) concerné(s)

Format des notes

Numérique sur 20

Pour les étudiants du diplôme Systèmes embarqués

Vos modalités d'acquisition :

L’évaluation se base sur le rendu des pilotes de périphériques que les étudiants ont à développer durant l’UE pour mettre en pratique les concepts théoriques.

Le rattrapage est autorisé (Max entre les deux notes)
    L'UE est acquise si Note finale >= 10
    • Crédits ECTS acquis : 2.5 ECTS

    Programme détaillé

    Découverte du noyau (Introduction, Installation et promenade dans le noyau, écriture et compilation d’un premier module, particularités du développement noyau, mise en place de l’environnement de développement et test du premier module)
    Communiquer avec le matériel (modèle générique de périphérique, gestion de la mémoire, pratique : écrire un pilote pour un périphérique I2C)
    Communiquer avec les applications (interface avec les applications : bas-niveau et frameworks, ordonnancement des tâches et attente, pratique : interfacer le pilote avec une application)
    Passage à l’échelle (interruption, concurrence, DMA, pratique : amélioration du pilote)
    Pour aller plus loin (aspects temps-réel, autres types de périphériques : par bloc, interfaces réseau…, cycle de développement du noyau, lien avec la communauté)
    Contrôle de connaissance

    Mots clés

    Linux, Device driver, Pilote de périphérique, Noyau, Interruptions
    Veuillez patienter