3. Le kernel 15 Arches Informatique/Système d'exploitation/Bignotti/04.09.2002
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, interrompt 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.