logo

Qu’est-ce que le noyau ?

En informatique, Le noyau est un programme informatique qui constitue le cœur d'un système d'exploitation. Avant de discuter du noyau en détail, comprenons d'abord ses bases, c'est-à-dire le système d'exploitation d'un ordinateur.

Système opérateur

Un système d'exploitation ou OS est un logiciel système qui fonctionne comme une interface entre les composants matériels et l'utilisateur final. Il permet à d'autres programmes de s'exécuter. Chaque système informatique, qu'il s'agisse d'un ordinateur de bureau, d'un ordinateur portable, d'une tablette ou d'un smartphone, doit tous disposer d'un système d'exploitation pour fournir les fonctionnalités de base de l'appareil. Certains systèmes d'exploitation largement utilisés sont les fenêtres , Linux , MacOS, Android , iOS, etc.

Qu’est-ce que le noyau dans le système d’exploitation ?

Qu'est-ce que le noyau
  • Comme indiqué ci-dessus, le noyau est la partie centrale d'un système d'exploitation (système d'exploitation) ; il a donc un contrôle total sur tout ce qui se passe dans le système. Chaque opération matérielle et logicielle est gérée et administrée par le noyau.
  • Il agit comme un pont entre les applications et le traitement des données effectué au niveau matériel. C'est le composant central d'un système d'exploitation.
  • C'est la partie du système d'exploitation qui réside toujours dans la mémoire de l'ordinateur et permet la communication entre les composants logiciels et matériels.
  • C'est le programme informatique qui s'est chargé en premier au démarrage du système (après le chargeur de démarrage). Une fois chargé, il gère les démarrages restants. Il gère également les demandes de mémoire, de périphériques et d'E/S provenant du logiciel. De plus, il traduit toutes les requêtes d'E/S en instructions de traitement de données pour le CPU. Il gère également d'autres tâches telles que comme la gestion de la mémoire, la gestion des tâches et la gestion des disques .
  • Un noyau est conservé et généralement chargé dans un espace mémoire séparé, appelé Espace noyau protégé. Il est protégé contre l'accès par des programmes d'application ou des parties moins importantes du système d'exploitation.
  • D'autres programmes d'application tels qu'un navigateur, un traitement de texte, un lecteur audio et vidéo utilisent un espace mémoire séparé appelé espace utilisateur.
  • Grâce à ces deux espaces distincts, les données utilisateur et les données noyau n'interfèrent pas les unes avec les autres et ne provoquent aucune instabilité ni lenteur.

Fonctions d'un noyau

Un noyau d’un système d’exploitation est chargé d’exécuter diverses fonctions et contrôle le système. Certaines responsabilités principales de Kernel sont indiquées ci-dessous :

    Gestion d'appareils
    Pour effectuer diverses actions, les processus nécessitent un accès à des périphériques tels qu'une souris, un clavier, etc., connectés à l'ordinateur. Un noyau est chargé de contrôler ces périphériques à l'aide de pilotes de périphériques. Voici un pilote de périphérique est un programme informatique qui aide ou permet au système d'exploitation de communiquer avec n'importe quel périphérique matériel.
    Un noyau maintient une liste de tous les périphériques disponibles, et cette liste peut être déjà connue, configurée par l'utilisateur ou détectée par le système d'exploitation au moment de l'exécution.Gestion de la mémoire
    Le noyau a le contrôle total pour accéder à la mémoire de l'ordinateur. Chaque processus nécessite de la mémoire pour fonctionner et le noyau permet aux processus d'accéder à la mémoire en toute sécurité. Pour allouer la mémoire, la première étape est appelée adressage virtuel, qui se fait par pagination ou segmentation. Adressage virtuel est un processus consistant à fournir des espaces d'adressage virtuels aux processus. Cela empêche les applications de s'écraser les unes sur les autres.La gestion des ressources
    L'une des fonctionnalités importantes de Kernel est de partager les ressources entre différents processus. Il doit partager les ressources de manière à ce que chaque processus accède uniformément à la ressource.
    Le noyau fournit également un moyen de synchronisation et communication inter-processus (IPC). Il est responsable du changement de contexte entre les processus.Accéder aux ressources informatiques
    Un noyau est responsable de l'accès aux ressources informatiques telles que la RAM et les périphériques d'E/S. RAM ou mémoire vive est utilisé pour contenir à la fois des données et des instructions. Chaque programme a besoin d'accéder à la mémoire pour s'exécuter et veut généralement plus de mémoire que celle disponible. Dans un tel cas, le noyau joue son rôle et décide quelle mémoire chaque processus utilisera et que faire si la mémoire requise n'est pas disponible.
    Le noyau alloue également la demande des applications pour utiliser des périphériques d'E/S tels que des claviers, des microphones, des imprimantes, etc.

Types de noyau

Il existe principalement cinq types de noyau, indiqués ci-dessous :

Qu'est-ce que le noyau

1. Noyaux monolithiques

Dans un noyau monolithique, le le même espace mémoire est utilisé pour implémenter les services utilisateur et les services du noyau.

Qu'est-ce que le noyau

Cela signifie que dans ce type de noyau, aucune mémoire différente n'est utilisée pour les services utilisateur et les services du noyau.

Comme il utilise le même espace mémoire, la taille du noyau augmente, augmentant ainsi la taille globale du système d'exploitation.

L'exécution des processus est également plus rapide que les autres types de noyau car elle n'utilise pas d'espace utilisateur et noyau séparé.

Exemples des noyaux monolithiques sont Unix, Linux, Open VMS, XTS-400, etc.

Avantages :

  • L'exécution des processus est également plus rapide car il n'y a pas d'espace utilisateur et d'espace noyau séparés et moins de logiciels impliqués.
  • Comme il s'agit d'un seul logiciel, ses sources et ses formulaires compilés sont plus petits.

Désavantages:

  • Si un service génère une erreur, il peut faire planter tout le système.
  • Ces noyaux ne sont pas portables, ce qui signifie qu'à chaque nouvelle architecture, ils doivent être réécrits.
  • De grande taille et devient donc difficile à gérer.
  • Pour ajouter un nouveau service, le système d'exploitation complet doit être modifié.

2. Micro-noyau

Qu'est-ce que le noyau

Un micro-noyau est également appelé MK , et il est différent d'un noyau traditionnel ou d'un noyau monolithique. Dans ce, les services utilisateur et les services du noyau sont implémentés dans deux espaces d'adressage différents : l'espace utilisateur et l'espace noyau . Puisqu'il utilise des espaces différents pour les deux services, la taille du micro-noyau est réduite, ce qui réduit également la taille du système d'exploitation.

mon livecricket.

Les micro-noyaux sont plus faciles à gérer et à entretenir que les noyaux monolithiques. Néanmoins, s'il y a un plus grand nombre d'appels système et de changements de contexte, cela pourrait réduire les performances du système en le ralentissant.

Ces noyaux utilisent un système de transmission de messages pour gérer la requête d'un serveur à un autre serveur.

Seuls certains services essentiels sont fournis par les micro-noyaux, tels que la définition des espaces d'adressage mémoire, l'IPC (Interprocess Communication) et la gestion des processus. D'autres services tels que la mise en réseau ne sont pas fournis par le noyau et gérés par un programme en espace utilisateur appelé les serveurs .

L'un des principaux inconvénients des noyaux monolithiques, à savoir qu'une erreur dans le noyau peut faire planter l'ensemble du système, peut être supprimé dans le micro-noyau. Comme dans un micro-noyau, si un processus du noyau tombe en panne, le crash de l'ensemble du système peut toujours être évité en redémarrant les services provoqués par l'erreur.

Exemples de Microkernel sont L4, AmigaOS, Minix, K42 , etc.

Avantages

  • Les micro-noyaux peuvent être gérés facilement.
  • Un nouveau service peut être facilement ajouté sans modifier l'ensemble du système d'exploitation.
  • Dans un micro-noyau, si un processus du noyau plante, il est toujours possible d'empêcher le système tout entier de planter.

Désavantages

  • Il y a davantage de besoins en logiciels pour l'interfaçage, ce qui réduit les performances du système.
  • La gestion des processus est très compliquée.
  • Les bugs de messagerie sont difficiles à corriger.

3. Noyau hybride

Qu'est-ce que le noyau

Les noyaux hybrides sont également appelés noyaux modulaires , et c'est la combinaison du monolithique et du micro-noyau. Il profite de la vitesse des noyaux monolithiques et de la modularité des micro-noyaux.

Un noyau hybride peut être compris comme la version étendue d'un micro-noyau avec des propriétés supplémentaires d'un noyau monolithique. Ces noyaux sont largement utilisés dans les systèmes d'exploitation commerciaux, tels que différentes versions de MS Windows.

quelque chose de rapide

Il ressemble beaucoup à un micro-noyau, mais il inclut également du code supplémentaire dans l'espace du noyau pour améliorer les performances du système.

Les noyaux hybrides permettent d'exécuter certains services tels que pile réseau dans l'espace du noyau pour réduire les performances par rapport à un micro-noyau traditionnel, mais il permet toujours d'exécuter le code du noyau (tel que les pilotes de périphériques) en tant que serveurs dans l'espace utilisateur.

Des exemples de noyau hybride sont Windows NT, Netware, BeOS, etc.

Avantages :

  • Il n'est pas nécessaire de redémarrer pour les tests.
  • Les technologies tierces peuvent être intégrées rapidement.

Désavantages:

algorithme de tri rapide
  • Il est possible qu'il y ait plus de bugs avec plus d'interfaces à traverser.
  • La maintenance des modules peut être une tâche déroutante pour certains administrateurs, en particulier lorsqu'il s'agit de problèmes tels que les différences de symboles.

4. Nanonoyau

Comme le nom le suggère, dans Nanokernel, le code complet du noyau est très petit, ce qui signifie que le code s'exécutant en mode privilégié du matériel est très petit . Ici, le terme nano définit un noyau qui prend en charge une résolution d'horloge nanoseconde.

Exemples de nanonoyau sont EROS etc.

Avantages

  • Il fournit des abstractions matérielles même avec une très petite taille.

Désavantages

  • Nanokernel manque de services système.

5. Exokernel

Exokernel est encore en développement et constitue l'approche expérimentale pour la conception d'un système d'exploitation.

Ce type de noyau est différent des autres noyaux comme celui-ci ; la protection des ressources est séparée de la gestion, ce qui nous permet d'effectuer une personnalisation spécifique à l'application.

Avantages :

  • Le système basé sur l'exokernel peut intégrer plusieurs systèmes d'exploitation de bibliothèque. Chaque bibliothèque exporte une API différente, l'une pouvant être utilisée pour le développement d'une interface utilisateur de haut niveau et l'autre pouvant être utilisée pour le contrôle en temps réel. .

Désavantages:

  • La conception de l’exokernel est très complexe.

Qu’est-ce que les paniques du noyau ?

Comme nous l'avons déjà évoqué, ce noyau contrôle l'ensemble du système informatique ; par conséquent, s’il plante, il peut détruire tout le système. Sous MacOS et Linux, un tel événement indésirable est appelé « Panique du noyau. Pour récupérer de la panique du noyau, nous devons redémarrer le système.

Habituellement, ces paniques du noyau sont causées par des problèmes de communication matérielle. Par conséquent, si des paniques répétées du noyau se produisent, essayez de débrancher les périphériques les moins requis ou inutiles et vérifiez si le problème est résolu ou non.