Découverte du noyau
GNU/Linux
Premiers pas dans la compilation d'un
noyau optimisé pour son matériel
Stéphane Téletchéa
stephane.teletchea@univ-nantes.fr
http://steletch.free.fr
Les composants matériels sont inutiles sans un système capable de les faire interagir entre eux pour
transférer des données et effectuer des opérations complexes.
Lors du démarrage de l'ordinateur le BIOS initialise électriquement chaque matériel, vérifie ses
capacités et règle les divers composants du système (priorité des bus, fréquence d'horloge des ports
PCI, fréquence du processeur, etc).
Après cette phase d'initialisation, il faut qu'un second système prenne le relais pour gérer les accès
aux ressources matérielles afin de répondre aux besoins des utilisateurs.
Le rôle du noyau va être de compléter l'initialisation du matériel par exemple via le chargement de
pilotes et/ou de firmwares spécifiques, puis de gérer l'accès concurrentiel aux ressources de
l'ordinateur.
Présenté ainsi, un noyau est donc premièrement un gestionnaire de ressources très efficace qui va
autoriser l'utilisation d'un périphérique, charger en mémoire un fichier stocké sur le disque dur, lancer
les commandes matérielles liées à l'impression de ce fichier.
http://fr.wikipedia.org/wiki/Système_d'exploitation
Organisation générale d'un ordinateur et d'un processeur
L'accès à la mémoire de l'ordinateur et aux ressources du processeur se font généralement selon
deux modes : le mode « superviseur » / « noyau » ou en « espace utilisateur ». L'architecture
x86 permet d'utiliser 4 niveaux d'accès au matériel, mais en pratique deux sont utilisés :
- ring 0, pour le noyau
- ring 1, non utilisé
- ring 2, non utilisé
- ring 3, pour l'espace utilisateur
En mode superviseur, dédié au fonctionnement du noyau, il y a un accès direct à la mémoire et au
matériel, il faut donc un fonctionnement sans failles. L'espace utilisateur est contrôlé : les
ressources mémoires sont bornées et si un dépassement mémoire apparaît, le noyau va prévenir
celui-ci, en terminant le processus fautif.
Les différents types de noyaux
Philosophie de fonctionnement du noyau
En fonction de l'approche envisagée pour le fonctionnement du noyau, il est possible d'insérer tout le code du
noyau dans l'espace « réservé » ou d'en répartir une partie dans l'espace utilisateur.
Approche micro-noyau : comme le noyau a comme rôle premier d'ordonnancer les priorités matérielles
et les requêtes logicielles, cette partie de gestion de priorités est indépendante du matériel. Il est ainsi
possible que le code de l'ordonnanceur soit en mode protégé, et que le reste des pilotes de périphériques
soit dans l'espace utilisateur. Ex : Mach (Mac OS X).
Approche monolithique : tout le code réside dans l'espace réservé, ce qui évite des changements de
contexte mais le noyau en perd en portabilité. Ex : linux (avant 1.2), BSD4.4.
Approche monolithique avec chargement de modules : tout le code est dans l'espace noyau, mais
certaines parties du matériel sont prises en charge par des modules qui sont chargés dynamiquement. Ex :
Linux >1.2, BSD, IRIX, ...
Approche micro-noyau enrichi / hybride : une partie des fonctionnalités en mode utilisateur sont
réintégrées dans l'espace noyau pour des raisons de performances. Ex : Windows NT.
Approche « temp réel » : l'exécution d'une tâche est réalisée dans une durée garantie. Ex : Rtlinux.
http://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27exploitation#Le_noyau, image de Wooptoo
Philosophie de fonctionnement du noyau
1 / 29 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !