Qu'est-ce que le noyau Linux et que fait-il?

Table des matières:

Qu'est-ce que le noyau Linux et que fait-il?
Qu'est-ce que le noyau Linux et que fait-il?

Vidéo: Qu'est-ce que le noyau Linux et que fait-il?

Vidéo: Qu'est-ce que le noyau Linux et que fait-il?
Vidéo: Comment protéger ses données sur Internet ? - L'Esprit Sorcier - YouTube 2024, Avril
Anonim
 Avec plus de 13 millions de lignes de code, le noyau Linux est l'un des plus grands projets open source au monde, mais qu'est-ce qu'un noyau et à quoi sert-il?
Avec plus de 13 millions de lignes de code, le noyau Linux est l'un des plus grands projets open source au monde, mais qu'est-ce qu'un noyau et à quoi sert-il?

Alors, quel est le noyau?

Un noyau est le plus bas niveau de logiciel facilement remplaçable qui s'interface avec le matériel de votre ordinateur. Il est responsable de l'interfaçage de toutes vos applications qui s'exécutent en «mode utilisateur» avec le matériel physique et de permettre aux processus, appelés serveurs, de s'échanger des informations via la communication inter-processus (IPC).

Différents types de cerneaux

Il y a bien sûr différentes manières de construire un noyau et des considérations architecturales lors de la construction d'un noyau. En général, la plupart des noyaux appartiennent à l’un des trois types suivants: monolithique, micro-noyau et hybride. Linux est un noyau monolithique tandis que OS X (XNU) et Windows 7 utilisent des noyaux hybrides. Passons rapidement en revue les trois catégories afin de pouvoir entrer dans les détails plus tard.

Image
Image

Image par pop-corn des quartiers chics

Micro-noyau Un micro-noyau a pour principe de ne gérer que ce qu'il doit: CPU, mémoire et IPC. Presque tout le reste d'un ordinateur peut être considéré comme un accessoire et peut être manipulé en mode utilisateur. Les micro-noyaux présentent un avantage en termes de portabilité car ils ne doivent pas s’inquiéter si vous changez de carte vidéo ou même de système d’exploitation tant que le système d’exploitation tente toujours d’accéder au matériel de la même manière. Les micro-noyaux ont également un encombrement très réduit, à la fois en mémoire et en espace d'installation, et ils ont tendance à être plus sécurisés, car seuls des processus spécifiques s'exécutent en mode utilisateur, qui ne dispose pas des autorisations élevées en mode superviseur.

Avantages

  • Portabilité
  • Petite empreinte d'installation
  • Petite empreinte mémoire
  • Sécurité

Les inconvénients

  • Le matériel est plus abstrait grâce aux pilotes
  • Le matériel peut réagir plus lentement car les pilotes sont en mode utilisateur
  • Les processus doivent attendre dans une file d'attente pour obtenir des informations
  • Les processus ne peuvent pas accéder à d'autres processus sans attendre

Noyau Monolithique Les noyaux monolithiques sont le contraire des micro-noyaux car ils englobent non seulement le processeur, la mémoire et l'IPC, mais ils incluent également des éléments tels que les pilotes de périphérique, la gestion du système de fichiers et les appels au serveur système. Les noyaux monolithiques ont tendance à être plus efficaces pour accéder au matériel et au multitâche, car si un programme a besoin d’obtenir des informations de la mémoire ou d’un autre processus en cours d’exécution, il dispose d’une ligne plus directe pour y accéder et n’a pas à attendre dans une file d’attente. Cela peut toutefois poser problème car plus il y a de choses qui fonctionnent en mode superviseur, plus cela peut faire tomber votre système si on ne se comporte pas correctement.

Avantages

  • Accès plus direct au matériel pour les programmes
  • Plus facile pour les processus de communiquer entre eux
  • Si votre appareil est pris en charge, il devrait fonctionner sans installation supplémentaire.
  • Les processus réagissent plus rapidement car il n'y a pas de file d'attente pour le temps processeur

Les inconvénients

  • Grand empreinte d'installation
  • Large empreinte mémoire
  • Moins sécurisé car tout fonctionne en mode superviseur
 Image via schoschie sur Flickr
Image via schoschie sur Flickr

Noyau hybride Les noyaux hybrides ont la possibilité de choisir ce qu'ils veulent exécuter en mode utilisateur et ce qu'ils veulent exécuter en mode superviseur. Souvent, des éléments tels que les pilotes de périphérique et les E / S de système de fichiers sont exécutés en mode utilisateur, tandis que les appels IPC et de serveur sont conservés en mode superviseur. Cela donne le meilleur des deux mondes, mais nécessite souvent plus de travail de la part du fabricant de matériel, car toute la responsabilité du conducteur lui appartient. Certains problèmes de latence inhérents aux micro-noyaux peuvent également en résulter.

Avantages

  • Le développeur peut choisir ce qui fonctionne en mode utilisateur et ce qui fonctionne en mode superviseur
  • Empreinte d'installation plus réduite que le noyau monolithique
  • Plus flexible que d'autres modèles

Les inconvénients

  • Peut souffrir du même retard de traitement qu'un micro-noyau
  • Les pilotes de périphérique doivent être gérés par l'utilisateur (généralement)

Où sont les fichiers du noyau Linux?

Image
Image

Le fichier du noyau, sous Ubuntu, est stocké dans votre dossier / boot et s’appelle vmlinuz-version. Le nom vmlinuz vient du monde Unix où ils appelaient leurs noyaux simplement «unix» dans les années 60. Linux a donc commencé à appeler leur noyau «linux» lorsqu’il a été développé pour la première fois dans les années 90.

Lorsque la mémoire virtuelle a été développée pour faciliter les tâches multitâches, «vm» a été placé au début du fichier pour indiquer que le noyau prend en charge la mémoire virtuelle. Pendant un certain temps, le noyau Linux s'appelait vmlinux, mais il devenait trop volumineux pour tenir dans la mémoire de démarrage disponible; l'image du noyau était donc compressée et la fin de x était remplacée par z pour indiquer qu'il était compressé avec la compression zlib. Cette même compression n’est pas toujours utilisée, elle est souvent remplacée par LZMA ou BZIP2, et certains noyaux sont simplement appelés zImage.

La numérotation des versions sera au format A.B.C.D, où A.B sera probablement 2.6, C sera votre version et D indique vos correctifs ou correctifs.

Dans le dossier / boot, il y aura également d'autres fichiers très importants appelés initrd.img-version, system.map-version et config-version. Le fichier initrd est utilisé comme un petit disque RAM qui extrait et exécute le fichier de noyau réel.Le fichier system.map est utilisé pour la gestion de la mémoire avant le chargement complet du noyau, et le fichier config indique au noyau les options et modules à charger dans l'image du noyau lors de sa compilation.
Dans le dossier / boot, il y aura également d'autres fichiers très importants appelés initrd.img-version, system.map-version et config-version. Le fichier initrd est utilisé comme un petit disque RAM qui extrait et exécute le fichier de noyau réel.Le fichier system.map est utilisé pour la gestion de la mémoire avant le chargement complet du noyau, et le fichier config indique au noyau les options et modules à charger dans l'image du noyau lors de sa compilation.

Architecture du noyau Linux

Le noyau Linux étant monolithique, il possède la plus grande empreinte et la plus grande complexité par rapport aux autres types de noyaux. C’était une fonctionnalité qui avait fait l’objet de nombreuses discussions au tout début de Linux et qui présentait encore certaines des lacunes de conception inhérentes aux noyaux monolithiques.

Les développeurs du noyau Linux ont notamment résolu ces problèmes en créant des modules pouvant être chargés et déchargés au moment de l’exécution, ce qui signifie que vous pouvez ajouter ou supprimer des fonctionnalités de votre noyau à la volée. Cela peut aller au-delà de l’ajout de fonctionnalités matérielles au noyau, en incluant des modules exécutant des processus serveur, tels que la virtualisation de bas niveau, mais il peut également permettre de remplacer l’ensemble du noyau sans avoir à redémarrer votre ordinateur dans certains cas.

Imaginez si vous pouviez passer à un service pack Windows sans jamais avoir besoin de redémarrer…

Modules de noyau

Et si Windows avait tous les pilotes disponibles déjà installés et que vous deviez simplement activer les pilotes dont vous aviez besoin? C’est essentiellement ce que font les modules du noyau pour Linux. Les modules de noyau, également appelés modules de noyau chargeables (LKM), sont essentiels pour que le noyau continue à fonctionner avec tout votre matériel sans utiliser toute votre mémoire disponible.
Et si Windows avait tous les pilotes disponibles déjà installés et que vous deviez simplement activer les pilotes dont vous aviez besoin? C’est essentiellement ce que font les modules du noyau pour Linux. Les modules de noyau, également appelés modules de noyau chargeables (LKM), sont essentiels pour que le noyau continue à fonctionner avec tout votre matériel sans utiliser toute votre mémoire disponible.

Un module ajoute généralement des fonctionnalités au noyau de base pour des éléments tels que les périphériques, les systèmes de fichiers et les appels système. Les LKM ont l'extension de fichier.ko et sont généralement stockés dans le répertoire / lib / modules. En raison de leur nature modulaire, vous pouvez facilement personnaliser votre noyau en configurant les modules pour qu'ils soient chargés, lors du démarrage à l'aide de la commande menuconfig ou en modifiant votre fichier / boot / config. Vous pouvez également charger et décharger des modules à la volée avec modprobe. commander.

Les modules sources tiers et fermés sont disponibles dans certaines distributions, comme Ubuntu, et peuvent ne pas être installés par défaut car le code source des modules n'est pas disponible. Le développeur du logiciel (par exemple, nVidia, ATI, entre autres) ne fournit pas le code source, mais crée plutôt ses propres modules et compile les fichiers.ko nécessaires à la distribution. Bien que ces modules soient gratuits comme dans Beer, ils ne le sont pas non plus comme dans la parole et ne sont donc pas inclus dans certaines distributions, car les mainteneurs ont le sentiment que cela «fausse» le noyau en fournissant des logiciels non libres.

Un noyau n’est pas magique, mais il est absolument essentiel à tout ordinateur fonctionnant correctement. Le noyau Linux est différent de OS X et Windows car il inclut des pilotes au niveau du noyau et permet la prise en charge de nombreuses choses «prêtes à l'emploi». J'espère que vous en saurez un peu plus sur la manière dont vos logiciels et votre matériel fonctionnent ensemble et sur les fichiers nécessaires au démarrage de votre ordinateur.

Kernel.org Image par Ingridtaylar

Conseillé: