Le noyau est le composant central d’un système d’exploitation qui gère les opérations de l’ordinateur et du matériel. Il gère essentiellement les opérations de la mémoire et du temps processeur. Il s’agit du composant central d’un système d’exploitation. Le noyau agit comme un pont entre les applications et le traitement des données effectué au niveau du matériel en utilisant la communication interprocessus et les appels système.
Le noyau se charge d’abord en mémoire lorsqu’un système d’exploitation est chargé et reste en mémoire jusqu’à ce que le système d’exploitation soit à nouveau arrêté. Il est responsable de diverses tâches telles que la gestion des disques, la gestion des tâches et la gestion de la mémoire.
Il décide quel processus doit être alloué au processeur pour être exécuté et quel processus doit être conservé en mémoire principale pour être exécuté. Il agit essentiellement comme une interface entre les applications utilisateur et le matériel. L’objectif majeur du noyau est de gérer la communication entre les logiciels c’est-à-dire les applications de niveau utilisateur et le matériel c’est-à-dire, CPU et mémoire du disque.
Objectifs du noyau :
- Établir la communication entre l’application de niveau utilisateur et le matériel.
- Décider de l’état des processus entrants.
- Commander la gestion des disques.
- Commander la gestion de la mémoire.
- Commander la gestion des tâches.
Types de noyau :
1. Noyau monolithique –
C’est l’un des types de noyau où tous les services du système d’exploitation fonctionnent dans l’espace du noyau. Il a des dépendances entre les composants des systèmes. Il a d’énormes lignes de code qui sont complexes.
Exemple :
Unix, Linux, Open VMS, XTS-400 etc.
- Avantage :
Il a de bonnes performances. - Inconvénient :
Il a des dépendances entre les composants du système et des lignes de code en millions.
2. Micro-noyau –
Il s’agit de types de noyaux qui ont une approche minimaliste. Il a la mémoire virtuelle et l’ordonnancement des threads. Il est plus stable avec moins de services dans l’espace du noyau. Il met le reste dans l’espace utilisateur.
Exemple :
Mach, L4, AmigaOS, Minix, K42 etc.
- Avantage :
Il est plus stable. - Inconvénient :
Il y a beaucoup d’appels système et de commutations de contexte.
3. noyau hybride –
Il est la combinaison du noyau monolithique et du mircrokernel. Il a la vitesse et la conception du noyau monolithique et la modularité et la stabilité du micro-noyau.
Exemple :
Windows NT, Netware, BeOS etc.
- Avantage :
Il combine à la fois le noyau monolithique et le micro-noyau. - Inconvénient :
Il reste similaire au noyau monolithique.
4. Exo-noyau –
C’est le type de noyau qui suit le principe de bout en bout. Il a le moins d’abstractions matérielles possible. Il alloue des ressources physiques aux applications.
Exemple :
Nemesis, ExOS etc.
- Avantage :
Il a le moins d’abstractions matérielles possible. - Inconvénient :
Il y a plus de travail pour les développeurs d’applications.
5. Nano Kernel –
C’est le type de noyau qui offre une abstraction matérielle mais sans services système. Le micro-noyau n’a pas non plus de services système donc le micro-noyau et le nano-noyau sont devenus analogues.
Exemple :
EROS etc.
- Avantage :
Il offre des abstractions matérielles sans services système. - Inconvénient :
Il est tout à fait identique au Micro noyau donc il est moins utilisé.