Master SIR et Image - Programmation Système
Notation
-
Examen (jeu 24/02 10h-11h30) : 70%
-
Contrôle continu : 30%
-
Séance de TP7.
-
Rapport d'étude d'une partie du noyau.
Rapport d'étude d'une partie du noyau
Le développement dans le noyau nécessitant une grande part de lecture et compréhension du code
existant, la note de contrôle continu sera pour moitié dédiée à l'étude d'une partie du noyau.
Ce travail est à effectuer en binôme et à rendre pour le 15 mars 2005 à minuit,
de préférence par mail dans un format de fichier ouvert (PDF, PS, OpenOffice, ...).
Il s'agira de choisir une partie quelconque des sources d'un noyau Linux
(pour les autres systèmes, demander l'accord au préalabre) et d'en étudier
le fonctionnement.
Les derniers noyaux 2.6 ont l'avantage de suivre l'interface de programmation
vue en cours et en TD, mais ne sont pas forcément les plus simples, on pourra
donc éventuellement prendre un vieux noyau.
Le rapport devra indiquer clairement quelle partie (notamment les fichiers
sources) de quelle version de quel système a été étudié.
L'étude devra être mise en forme dans un rapport de quelques pages détaillant
les parties importantes du code, leur rôle et d'éventuels bogues, limites, ...
Exemples de parties pouvant convenir
-
Les drivers réseau simples (dans drivers/net/), par exemple
8139too.c, e100.c, yellowfin.c, via-velocity.c,
8139cp.c, acenic.c, amd8111e.c, b44.c,
defxx.c, dgrs.c, dl2k.c, eepro100.c,
epic100.c, fealnx.c, forcedeth.c, hamachi.c,
hp100.c, ioc3-eth.c, natsemi.c, ne2k-pci.c,
...
-
Les cartes son simples (dans sound/, le code peut paraître long au premier abord mais une très grande partie est inutile).
Par exemple
pci/card-als4000.c, oss/maestro3.c, pci/azt3328.c, pci/es1938.c,
pci/intel8x0.c, pci/sonicvibes.c, oss/trident.c, oss/sonicvibes.c,
...
-
Les drivers de port série (dans drivers/serial/), par exemple 8250_pci.c ou icom.c.
-
Les drivers de port parallèle (dans drivers/parport/), par exemple parport_pc.c ou parport_serial.c.
-
N'importe quelle autre partie utilisant par exemple la mémoire, les accès PCI, les interruptions, ...
N'hésitez pas à demander ou à proposer.
Planning des cours
Ces polycopiés ne sont qu'un plan détaillé.
Les détails réels et schémas explicatifs ne seront donnés
qu'à l'oral ou au tableau pendant le cours magistral.
-
Introduction
PDF
puis Matériel
PDF
-
Concepts généraux des systèmes d'exploitation
PDF
-
Processus
PDF
(début)
-
Processus (fin)
- Mémoire
PDF (début)
-
Concurrence (par Jacques Bonneville)
PDF
-
Mémoire (milieu)
-
Mémoire (fin)
-
Entrées-sorties (début)
PDF
-
Entrées-sorties (fin)
- Ordonnancement (début)
PDF
-
Ordonnancement (fin)
- Rappels et conclusion
Sujets et corrigés des TP
Ces sujets et corrigés ont été écrits pour des vieux noyaux Linux, vers 2.6.10.
Ils ne s'appliquent probablement plus aux noyaux récents.
-
Création, compilation et chargement/déchargement de modules noyau.
kmalloc/kfree.
Sujet
-
Threads noyau. Sommeil et réveil. Interaction entre utilisateur et noyau par périphérique caractère.
Sujet
-
Communications avec échange de données entre utilisateur et noyau par périphérique caractère.
Sujet
-
Traduction d'adresse, mapping de périphérique caractère, utilisation de la mémoire vidéo.
Sujet
-
Entrées/sorties: périphériques PCI et IRQ.
Sujet
-
Entrées sorties: IRQ et commande du haut-parleur interne.
Sujet
-
Séance notée : Ordonnancement, préemption, priorités.
Quelques ressources documentaires
Updated on 2011/07/14.