Dans la plupart
des systèmes d'exploitation informatiques, le noyau est l'élément central. Il
est le pont entre l'utilisateur et les applications et le matériel
informatique. Il est également le mécanisme qui permet à l'ordinateur de
manipuler plusieurs utilisateurs et plusieurs tâches simultanément. Les types
de grains sont le noyau monolithique, le micro-noyau, le noyau hybride, la
nanokernel et l’exokernel.
Le noyau gère
l'ensemble de l'ordinateur de ressources système. Ceci inclut le stockage à
long terme, l'unité centrale de traitement (CPU), la mémoire à court terme et
les dispositifs d'entrée et de sortie. Lorsqu'une application a besoin de ces
ressources, le noyau rend la ressource disponible et complète la demande.
Cette gestion
des ressources permet aux systèmes d'exploitation soient à la fois
multi-utilisateur et multitâche. Le système d'exploitation ne fonctionne pas en
fait plus d'une tâche à la fois. Au lieu de cela, le noyau passe tâches à une
telle grande vitesse que l'ordinateur semble être l'exécution de tâches
multiples. Le noyau est également responsable de s'assurer que les ressources
utilisées par un utilisateur ou un processus ne sont pas contraires à la
demande d'un autre utilisateur ou processus.
Là deux
principaux types de grains sont le noyau monolithique et le micro-noyau. Noyaux
monolithiques emploient une méthode de contrôle de la gestion des ressources
dans lequel tous les services du système d'exploitation sont exploités dans le
même espace d'adressage, appelé l'espace du noyau. Certains noyaux
monolithiques peuvent charger et décharger les modules exécutables. Cette étend
les capacités du système d'exploitation, tout en conservant un minimum de code
s'exécutant dans l'espace du noyau à un moment donné.
Les micro-noyaux
ne fonctionnent que la quantité minimale de services de système d'exploitation,
telles que la gestion de la mémoire, la gestion des threads et de la
communication inter-processus dans l'espace du noyau. Tous les autres services,
tels que les pilotes de périphériques, les interfaces utilisateurs et la
gestion des fichiers, sont exécutés dans l’espace utilisateur. Le micro-noyau
réduit considérablement la quantité de code qui s'exécute en mode noyau.
Un noyau hybride
est une combinaison de la monolithique et micro-noyaux. La plupart des services
du système du système d'exploitation sont exploités dans l'espace du noyau,
comme un noyau monolithique. Il y a d'autres services, tels que le système de
fichiers et le système de fenêtrage, qui sont exécutés dans l'espace
utilisateur.
Les autres types
de noyau sont les nanokernel et la exokernel. Le nanokernel utilise les pilotes
de périphériques pour répondre à presque tous les services. Le exokernel
utilise des programmes d'allouer des ressources physiques.