Kernel - L`informatique, c`est mon domaine

Transcription

Kernel - L`informatique, c`est mon domaine
Objectifs : dans ce chapitre vous apprendrez ce qui suit :
1. Ce qu'est le kernel et où il réside
2. Quelle sont les tâches du kernel
3. Ce qu'est un microkernel
4. Ce qu'on entend par protection du kernel
1.
Ce qu'est le kernel
1.1. Le kernel d'un système d'exploitation est la partie la plus intime du système d'exploitation, celle qui contient les
composants et les commandes les plus fondamentaux et plus importants. Le kernel réside en permanence dans la
mémoire centrale et sa taille peut varier de quelques dizaine de Kilobytes (le MS -DOS) jusqu'à plusieurs
Megabytes (MVS). Il est très important de comprendre que le kernel n'est rien d'autre qu'un programme qui,
comme tout programme, est exécuté par le processeur. La particularité du kernel est celle d'être en mesure de
gérer l'activité du processeur; le kernel atteint cet objectif de la manière suivante :
l Il s'installe dans le processeur et il désigne l'adresse (dans la mémoire) du prochain programme qui devra être
exécuté par le processeur.
l Il quitte le processeur, en obligeant ce dernier à s'occuper du programme désigné par le kernel dans l'étape
précédente.
l Il initialise à zéro un compteur.
l Dès que le compteur arrive à une valeur limite, le kernel regagne l'accès au processeur, inte rrompt l'exécution du
programme qui s'y trouve et désigne le prochain programme à exécuter; le cycle recommence.
1.2. Les tâches du kernel peuvent être ainsi résumées :
l Gestion de la mémoire, réelle et virtuelle et des périphériques d'entrée/sortie.
l Gestion des fichiers.
l Gestion des processus, c'est-à-dire planification (scheduling) de l'exécution des différentes tâches dans un
environnement multitâches.
l Synchronisation du travail des processeurs dans un environnement multi-processeurs.
l Gestion des interruptions.
l Gestion de la sécurité du système.
1.3. Le microkernel : il s'agit d'un kernel qui a été simplifié; en effet, de nombreuses fonctions, qui sont
normalement incluses dans le kernel, sont implémentées via des modules externes qui se greffent sur le
microkernel. Le microkernel peut ainsi se concentrer sur les tâches suivantes :
l Gestion des interruptions.
l Planification de l'exécution des tâches et des threads.
l Gestion de la mémoire virtuelle.
l Gestion de la communication entre les modules auxiliaires.
Le microkernel peut être comparé à un chef d'entreprise qui, surchargé, engage des directeurs pour leur déléguer une
partie de son travail, afin de pouvoir se concentrer sur les activités importantes de l'entreprise comme, par
exemple, la recherche de nouveaux clients ou le développement de nouvelles stratégies de production.
Le microkernel, comme le chef d'entreprise, se concentre sur l'exécution de quelques tâches critiques, en s'appuyant
sur des modules externes pour l'exécution des autres fonctions; l'activité de ces modules est coordonnée par le
microkernel. On réalise ainsi un système d'exploitation modulaire, évolutif et facilement portable.
3. Le kernel
15
Arches Informatique/Système d'exploitation/Bignotti/04.09.2002
Le concept de microkernel a été introduit avec le système d'exploitation Mach, essentiellement une version
évolutive de Unix, développé à l'université de Carnegie-Mellon. Mach constitue la base pour le système
d'exploitation OSF/1 (Open Software Foundation / 1) et les stations Next.
2.
La protection du kernel
2.1. Le kernel (ou le microkernel) contient les fonctions fondamentales d'un système d'exploitation. Comme tout
autre programme, le kernel se trouve dans la mémoire. La mémoire où le kernel réside ne doit en aucun cas être
accessible aux autres programmes, sous peine de voir le système d'exploitation s'endommager, ce qui se traduit
par un arrêt du système. Afin de protéger le kernel, les microprocesseurs Intel 80386 et supérieurs permettent
aux programmes de fonctionner à plusieurs niveaux de privilège, aussi appelés ring. Les niveaux de privilèges
sont au nombre de quatre, numérotés de 0 à 3, avec 0 qui est le niveau le plus restrictif et 3 le niveau le moins
restrictif. Le kernel se trouve toujours au niveau 0, le plus privilégié, c'est -à-dire celui qui donne libre accès à
toutes les ressources du système. Toute autre application doit fonctionner à un niveau différent de 0, soit le 1, le
2 ou le 3. Cette restriction offre un avantage très important : si une application qui se trouve au niveau 1, 2 ou 3
"plante", elle n'affectera pas le bon fonctionnement du kernel.
3. Le kernel
16
Arches Informatique/Système d'exploitation/Bignotti/04.09.2002