Linux est le noyau du système d'exploitation : le logiciel privilégié qui gère les processeurs, la mémoire, les périphériques, les processus et les abstractions communes de ressources. Un système Linux complet comprend aussi des bibliothèques, utilitaires, services, shells et logiciels graphiques dans l'espace utilisateur, ainsi que les règles de la distribution.
Kernel · Leçon 1
Présentation du noyau
Découvrez comment le noyau Linux sert d'intermédiaire pour le matériel, les ressources, l'isolation et les demandes de l'espace utilisateur.
Ressources matérielles
Les processeurs exécutent les instructions, la mémoire conserve l'état actif et les contrôleurs relient le stockage, les réseaux, les écrans, les périphériques d'entrée et les autres appareils. Le matériel expose des mécanismes propres à l'architecture et aux périphériques plutôt qu'une interface unique et sûre pour chaque application.
Le noyau initialise et contrôle ces ressources au moyen du code d'architecture et des pilotes. Il traite les interruptions, la coordination DMA, les minuteurs et les événements de gestion de l'alimentation tout en imposant des limites d'accès entre les charges.
Quelle couche coordonne normalement les pilotes de périphériques et les interruptions matérielles sous Linux ?
Responsabilités du noyau
Ses principales responsabilités comprennent :
- planifier les threads exécutables sur les processeurs ;
- créer et isoler les espaces d'adressage virtuels ;
- appliquer les identifiants, permissions et règles de sécurité des processus ;
- fournir les systèmes de fichiers, le réseau, l'IPC et les interfaces de périphériques ;
- traiter les signaux, minuteurs et le cycle de vie des processus ;
- allouer, comptabiliser et récupérer les ressources.
Linux est couramment décrit comme un noyau monolithique, car les services centraux et de nombreux pilotes s'exécutent dans un même espace d'adressage privilégié. Il est aussi modulaire : les composants pris en charge peuvent être chargés et déchargés comme modules du noyau. Un bogue dans du code privilégié peut compromettre tout le système ; les mises à jour du noyau et l'origine des modules sont donc essentielles à la sécurité.
Que gère l'ordonnanceur du noyau ?
Espace utilisateur
L'espace utilisateur contient les processus ordinaires : init et les services, outils en ligne de commande, environnements d'exécution des langages, bases de données, shells et applications de bureau. Les privilèges matériels empêchent ces programmes d'exécuter directement de nombreuses instructions sensibles ou d'accéder arbitrairement à la mémoire du noyau.
Les processus demandent du travail au noyau au moyen des appels système et interagissent avec les interfaces exposées, comme les descripteurs de fichiers, sockets, nœuds de périphériques, procfs, sysfs, netlink et mappages mémoire. Des bibliothèques enveloppent souvent ces interfaces dans des API de plus haut niveau.
L'utilisateur root de l'espace utilisateur possède de vastes autorisations selon les règles, mais s'exécute normalement toujours dans le mode utilisateur du processeur. L'identité de l'utilisateur et le mode de privilège du processeur sont des notions distinctes.
Une application ordinaire appartenant à root exécute-t-elle toutes ses instructions en mode noyau ?
Limites et abstractions
Le noyau présente des processus, fichiers, sockets et espaces d'adressage virtuels au lieu d'exposer directement les mécanismes physiques bruts. Ces abstractions favorisent l'isolation et la portabilité, mais ne constituent pas à elles seules des frontières de sécurité parfaites. Les espaces de noms, cgroups, capacités, modules de sécurité, seccomp et la virtualisation ajoutent des contrôles spécialisés.
Pendant un dépannage, demandez-vous quelle couche possède le comportement : application, bibliothèque, interface d'appel système, système de fichiers, pilote, sous-système du noyau, micrologiciel ou matériel. Des preuves recueillies dans la mauvaise couche peuvent conduire à des corrections erronées.
Qu'est-ce qu'un appel système ?
Utilisez Gérer les modules du noyau sous Linux pour observer une partie modulaire du noyau dans un environnement contrôlé.
Leçon terminée
Vous avez terminé Présentation du noyau
Vous savez maintenant placer le noyau entre les ressources physiques et les processus isolés de l'espace utilisateur.
Relier les pilotes et le code d'architecture au contrôle du matériel.
Identifier les responsabilités liées à l'ordonnancement, la mémoire, la sécurité, les systèmes de fichiers et le réseau.
Distinguer les identifiants root du mode noyau du processeur.
Situer l'interaction utilisateur-noyau dans les interfaces contrôlées à l'exécution.
Conservez votre progression
Créez un compte gratuit pour enregistrer cette leçon et continuer sur n'importe quel appareil.
Créer un compte gratuit