Cet article explique brièvement le noyau Linux est et comment parcourir son code source.
Ce tutoriel est optimisé pour les utilisateurs et les programmeurs de Linux inexpérimentés qui souhaitent lire le code source du noyau ou devenir des développeurs de noyau Linux. Le noyau Linux est universel; Par conséquent, le présent document est utile pour toutes les distributions Linux.
En lisant cet article, vous comprendrez ce qu'est le noyau, comment il est structuré et comment parcourir ses composants. Cet article a été initialement écrit en 2019 et mis à jour en 2022.
Quel est le noyau Linux et comment le parcourir
Le noyau Linux est le composant principal permettant une interaction entre le logiciel et le matériel à l'aide des pilotes de périphérique. Vous pouvez penser au noyau Linux en tant que traducteur permettant une communication entre les programmes, le matériel et l'interface utilisateur.
Apprendre à parcourir le noyau Linux est la première étape pour tout programmeur qui veut devenir un développeur de noyau. Il est également utile pour les programmeurs ou les utilisateurs qui souhaitent lire son code source ou le modifier.
La structure du noyau Linux
Le noyau Linux est structuré avec des répertoires et des sous-répertoires appelés «arbre de noyau», les utilisateurs peuvent parcourir les sections spécifiques de l'ensemble du code. Cela permet aux utilisateurs et aux développeurs de se concentrer sur des parties spécifiques du code.
À l'exception de la distribution Linux Slackware, dont le noyau est maintenu par une seule personne, le reste des tâches de division de la communauté des énormes développeurs de Linux Distributions basées sur la base de l'arbre du noyau. En revanche, plusieurs développeurs se concentrent sur les conducteurs, d'autres se concentrent sur la sécurité et d'autres sur la virtualisation.
L'arbre source du noyau est la structure suivante décrite par laquelle les utilisateurs peuvent parcourir le code source:
Affichage et navigation sur le code source du noyau Linux
Habituellement, lorsque nous installons Linux, nous n'incluons pas le code source. Nous pouvons installer Linux et conserver le code source de notre système. Mais la plupart des utilisateurs le jettent pour télécharger une image ISO plus petite. Après tout, vous pouvez télécharger le code source plus tard si vous en avez besoin.
Si le code source du noyau est présent dans votre système, vous pouvez le trouver sous le répertoire / usr / src / linux-, où doit être remplacé par la version du noyau de code source avec laquelle vous traitez.
Vous pouvez également trouver le dernier code source du noyau sur https: // github.com / torvalds / linux.
Comme vous pouvez le voir dans la capture d'écran précédente ou sur l'URL fournie, dans l'arborescence du code source, nous pouvons trouver les principaux répertoires et fichiers suivants:
- cambre: Ce répertoire contient des codes source pour différentes architectures de système prise en charge par le noyau Linux.
- bloc: Le répertoire de couche d'E / S Block contient du code pour la gestion des dispositifs de bloc (tels que des disques durs, des DVD, des disquettes, etc.) et leurs demandes.
- certificat: Le répertoire des certificats contient des certificats et des fichiers de signes pour autoriser les signatures de module pour que le noyau charge les modules signés. Cela peut être utile pour empêcher le code malveillant de s'exécuter dans des modules de noyau comme Rootkits.
- COPIER: Ce fichier contient des informations sur les licences pour le code source
- CRÉDITS: Une liste partielle des personnes qui ont contribué au code source du noyau Linux
- Crypto: Ce répertoire contient des chiffres cryptographiques, qui gèrent les tâches cryptographiques et de compression.
- Documentation: Comme son nom l'indique, ce répertoire comprend toute la documentation sur tous les composants du noyau.
- Conducteurs: Le répertoire des pilotes contient un code source pour les pilotes de périphérique pour prendre en charge le matériel. À l'intérieur de ce répertoire, vous trouverez des sous-répertoires pour chaque matériel, comme la vidéo, le Bluetooth, etc. (tout matériel pris en charge).
- FS: Ce répertoire contient des sources pour les systèmes de fichiers, y compris les systèmes de fichiers virtuels, plus les systèmes de fichiers de lecture et d'écriture.
- inclure: Ce répertoire contient des en-têtes C pour les fichiers du noyau, tels que des fonctions pour compiler le code.
- init: Le répertoire init contient le code source lié au processus de démarrage et à l'initialisation du noyau Linux. Le code source est stocké dans un fichier nommé Mainc.C dans le répertoire / init. Le code initialise le noyau et certains processus initiaux.
- IPC: Communication inter-processus, comme les signaux et les tuyaux.
- Kbuild: Le fichier KBuild indique des fichiers d'objet pour VMLinUz.
- Kconfig: Le fichier Kconfig est utilisé pour désactiver ou activer les fonctionnalités du noyau. Les utilisateurs s'occupent de l'exécution de la commande «Making Menuconfig».
- noyau: Le répertoire du noyau comprend des sous-systèmes de base, tels que le code de gestion du signal du planificateur.
- lib: Ce répertoire comprend des routines de bibliothèque, des opérations de chaîne communes, des opérations dépendantes du matériel, des routines de débogage et un code d'analyse de ligne de commande.
- Licence: Il contient les licences à appliquer à la source du noyau et aux fichiers source individuels, qui peuvent avoir des licences différentes. À l'intérieur de ce répertoire, vous trouverez quatre sous-répertoires principaux contenant des licences prises en charge comme LGPL-X, Licence Apache, etc.
- Mancheurs: Le fichier des maintenants affiche la liste des maintenseurs du noyau et les instructions pour soumettre des modifications du noyau.
- Makefile: Ce fichier lit le .Fichier de configuration et construire des modules et VMLinux.
- MM: Le noyau Linux gère le matériel et la mémoire virtuelle (swap). Ceci est le répertoire où le code source de la gestion de la mémoire est stocké.
- filet: Le répertoire net contient la pile réseau. Ici, vous pouvez trouver du code lié aux protocoles de communication, tels que IP, TCP et UP.
- Réadmettre: Le fichier ReadMe fait référence aux guides pour les développeurs de noyau dans le répertoire de documentation décrit précédemment.
- Échantillons: Le répertoire des échantillons comprend un exemple de code.
- scripts: Voici les scripts nécessaires pour construire le noyau Linux.
- sécurité: Le sous-répertoire de sécurité contient le cadre de sécurité Linux (Selinux) amélioré la sécurité.
- son: Ici, vous pouvez trouver le sous-système son.
- outils: Voici des outils pour le développement comprimé du noyau, tels que l'ACPI, le CGROUP, les outils de test USB, le module de test VHOST, les outils GPIO, IIO et SPI et l'outil de politique internergicale.
- usr: Ici, USR stocke les initramfs, qui racontent le système de fichiers et l'initiale dans le cache de mémoire du noyau. Le code inclus vous permet d'exécuter du code dans l'espace utilisateur dans le processus de démarrage lorsque le noyau n'est pas entièrement chargé.
- verrouillage: Le répertoire de virtualisation contient le module KVM (machine virtuelle du noyau) pour les hyperviseurs, y compris les architectures.
Ce sont tous les meilleurs fichiers et répertoires inclus dans le répertoire source du noyau principal. Vous pouvez parcourir chaque section en fonction de vos besoins. Une fois que vous avez compris le but de tous les fichiers et répertoires énumérés ci-dessus, les sous-répertoires sont assez intuitifs.
Conclusion
Comme vous pouvez le voir, cet article a été écrit pour les utilisateurs nouveaux et moyens pour comprendre les bases du noyau Linux. Pourtant, certaines connaissances sur le développement sous Linux, matériel et caractéristiques du système d'exploitation sont nécessaires pour une utilisation pratique. La conférence précédente est excellente comme introduction à la structure du noyau Linux et à la distribution Linux. Gardez à l'esprit que le noyau Linux évolue périodiquement. C'est pourquoi nous gardons le contenu décrit précédemment à jour.
Nous espérons que vous avez trouvé cet article utile. Continuez à lire Linuxhint pour plus d'articles professionnels Linux.