Le noyau Linux est comme un pont qui permet la communication informatique entre les applications et le matériel et gère les ressources du système. Linus Torvalds a développé le noyau Linux avec C et Assembly et ainsi, il a réussi à créer un noyau léger et portable qui a été rendu public en open source.
Vous pouvez voir le noyau Linux dans de nombreux secteurs différents tels que l'espace, les ordinateurs, les montres intelligentes, les téléphones mobiles, la robotique et la santé. Mais vous êtes-vous déjà demandé comment le noyau Linux fonctionne sous le capot ?
Utilisation du matériel sous Linux
Le noyau Linux, tout d'abord, contrôle quel matériel fonctionnera et de quelle manière lorsque vous allumerez votre ordinateur. De plus, le contrôle de logiciels haut de gamme est possible grâce à l'interface de programmation. Pour donner un exemple de ces contrôles, il vous est possible de voir des informations sur le matériel installé dans les slots de votre carte mère et de bénéficier de ces informations détaillées.
De plus, cette interface de programmation fournit une couche d'abstraction. Par exemple, si vous souhaitez avoir une conversation vidéo avec vos amis, vous aurez besoin d'une webcam. La couche d'abstraction permet au logiciel que vous utilisez d'utiliser cette webcam indépendamment de sa marque et de son modèle. Le logiciel ici ne peut utiliser que l'interface qui existe pour Linux. Le noyau Linux traduit les appels de fonction de cette interface en commandes matérielles réelles dont la webcam a besoin.
En utilisant le /proc et /sys systèmes de fichiers virtuels, le noyau Linux peut exporter des informations détaillées sur le matériel il détecte. Ci-dessous, vous pouvez voir quelques outils utilisés pour cela et quels appareils et cartes ils exportent :
- lspci: Pour les périphériques PCI
- lsusb: Pour les périphériques USB
- lspcmcia: Pour les cartes PCMCIA
Comme vous pouvez le voir, la distribution Linux dans la capture d'écran ci-dessus s'exécute sur VirtualBox. Cependant, vous avez la possibilité de voir de nombreuses informations telles que VGA, contrôleur USB, ponts et contrôleur SATA.
Vous pouvez également utiliser le -v paramètre pour obtenir des informations beaucoup plus détaillées.
Dans le noyau Linux, les applications accèdent généralement aux périphériques via des fichiers spéciaux qui existent dans le /dev annuaire. Ces fichiers spéciaux représentent des lecteurs de disque et d'autres périphériques physiques. Des fichiers tels que /dev/hda, /dev/sdc, /dev/sdc3, /dev/input/mouse0 et dev/snd/* sont des exemples de ces fichiers spéciaux.
Gestion du système de fichiers Linux
Les systèmes de fichiers sont l'un des composants les plus remarquables du noyau Linux. Le système de fichiers de Linux est l'un de ses plus grands avantages. Tous les fichiers d'un système Linux sont rassemblés dans une seule branche. Les utilisateurs peuvent ainsi utiliser cette hiérarchie pour atteindre leurs endroits souhaités.
Le point de départ de cette hiérarchie est le répertoire racine (/). Les autres sous-répertoires se trouvent sous le répertoire racine. Le sous-répertoire le plus utilisé sous / est le /home annuaire. Ce sous-répertoire contient d'autres sous-répertoires et chaque répertoire contient des fichiers qui stockent les données réelles.
Par exemple, vous pouvez penser à un fichier texte sur votre bureau. Si vous créez un fichier texte appelé helloworld.txt sur votre bureau, vous pouvez vous y référer comme /home/muo/Desktop/helloworld.txt. L'exemple de /muo ici variera bien sûr. Parce que ce nom de sous-répertoire dépend du nom de votre utilisateur actuel. Avec ce système de nommage, le noyau Linux traduit entre le stockage réel et physique qui existe sur un disque.
De plus, le noyau Linux peut intégrer des données de plusieurs disques. C'est là que le système de fixation entre en jeu. Il utilise l'un des disques du système racine et monte les autres dans les répertoires existants de la hiérarchie. Les autres disques sont ensuite placés sous les points de montage. Cela permet aux utilisateurs de stocker les /home répertoire sur un deuxième disque dur qui contient également d'autres sous-répertoires.
Lorsque vous montez un disque sur le /home répertoire, vous pouvez accéder à ces répertoires à partir d'emplacements normaux. Ainsi, des chemins tels que /home/muo/Desktop/helloworld.txt continue de travailler.
Vous pouvez voir les points de montage entre les fichiers sur votre système avec le trouvaille -A commande.
Avec de nombreux formats de système de fichiers, vous pouvez physiquement stocker des données sur des disques. Les plus connus sous Linux sont les poste2, poste3, et ext4 formats de système de fichiers. Cependant, il existe de nombreux autres formats de système de fichiers. Dans tous les cas, vous devez formater le système de fichiers avant de le monter. Vous pouvez utiliser des commandes comme mkfs.ext3 (mkfs signifie make file system et ext3 est le système de fichiers) pour cela.
Ces commandes acceptent le chemin du fichier de périphérique que vous souhaitez formater en tant que paramètre. Il s'agit d'une opération destructrice et vous devez l'utiliser avec prudence si vous ne souhaitez pas effacer ou réinitialiser un système de fichiers.
En dehors de ceux-ci, il y a aussi systèmes de fichiers réseau tels que NFS que le noyau Linux utilise. NFS est un système de fichiers réseau dans lequel les données ne sont pas stockées sur un disque local. Avec NFS, les données passent sur le réseau vers un serveur qui stocke les données. Étant donné que les données seront sur un serveur, les utilisateurs n'auront pas à s'en occuper constamment. Ils peuvent également utiliser le système de fichiers hiérarchique traditionnel de Linux comme d'habitude.
Opérations de fonction partagée
Tous les logiciels du système Linux ont des fonctions communes. C'est pourquoi ces fonctions sont centrales dans le noyau Linux. Par exemple, lors de l'ouverture d'un fichier, vous pouvez l'ouvrir uniquement avec le nom du fichier, sans savoir où le fichier est physiquement stocké, ni quelles fonctions et opérations il utilisera. Toutes ces fonctions sont déjà présentes dans le noyau.
Vous pouvez stocker votre fichier sur le disque dur, le répartir sur plusieurs disques durs, voire le conserver sur un serveur distant. Les fonctions de communication de fichiers partagés sont importantes dans de tels cas. Les applications échangent des données quelle que soit la façon dont les données sont déplacées. Des fonctions de communication partagées sont là pour faire ces échanges de données. Ce déplacement peut se faire sur des réseaux sans fil ou même sur une ligne téléphonique fixe.
Gestion des processus sous Linux
Une instance active d'un programme fonctionnant sur des données ou des informations en mémoire est appelée processus. La tâche du noyau Linux est de générer et de garder une trace de ces régions de mémoire. Le noyau alloue de la mémoire pour un programme en cours d'exécution et charge le code exécutable en mémoire à partir du système de fichiers. Immédiatement après, le noyau exécute le code.
Le noyau Linux prend en charge le multitâche. Il est capable d'exécuter de nombreux processus en même temps. Cependant, il n'y a qu'une seule transaction dans un laps de temps donné. Cependant, le noyau Linux divise le temps en petits morceaux et, par conséquent, chaque procédure se déroule de manière séquentielle.
Parce que ces petits segments de temps sont en incréments de millisecondes, ils ne sont actifs qu'à des moments précis et restent inactifs le reste du temps. Le travail du noyau Linux ici est de maximiser les performances en exécutant plusieurs processus à la fois.
Si les plages horaires sont trop longues, l'application en cours d'exécution peut ne pas être aussi réactive que vous le souhaiteriez. Si les délais sont trop courts, il peut y avoir des problèmes avec les changements de tâches. Selon la priorité du processus, l'intervalle de temps requis ici variera. Vous avez peut-être déjà entendu parler de processus à haute priorité et de processus à faible priorité. C'est l'une des fonctions contrôlées par le noyau Linux.
Cette explication n'est pas toujours correcte. La véritable limitation est qu'il ne peut y avoir qu'un seul processus de travail par cœur de processeur à la fois. Les systèmes multiprocesseurs permettent à plusieurs processus de s'exécuter en parallèle. Un système de base a presque toujours des dizaines de processus en cours d'exécution.
Droits d'accès sous Linux
Comme avec d'autres systèmes d'exploitation, vous pouvez créer de nombreux utilisateurs sur un système Linux. Dans de tels cas, il existe un système de gestion des droits qui prend en charge les utilisateurs individuels et les groupes. C'est ici que autorisations de fichiers et d'utilisateurs entrer en jeu.
Le noyau Linux gère les données et vérifie les autorisations nécessaires pour chaque processus. Par exemple, si vous essayez d'ouvrir un fichier, le noyau doit vérifier l'ID du processus par rapport aux autorisations d'accès. Si le noyau vérifie et voit que vous avez des autorisations, il ouvrira le fichier.
Le noyau Linux contrôle tout
Comme vous pouvez le voir, le noyau Linux supervise tout, de la sécurité de vos fichiers à la création d'utilisateurs et au téléchargement de fichiers depuis Internet. Tout est dans un certain ordre. Chaque utilisateur a des droits. Le noyau Linux gère les processus et les plages horaires pour des performances optimales.
De plus, le système de fichiers, qui est l'une des principales caractéristiques qui distinguent le noyau Linux des autres systèmes d'exploitation, est très important. Linux n'est pas une boîte cachée. Au contraire, tous les fichiers et codes sources sont accessibles. Pour mieux comprendre la nature pratique et puissante du noyau Linux, vous pouvez examiner la hiérarchie du système de répertoire Linux.