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