Le répertoire source contient les sous-répertoires suivants appelés arbre à noyau, apprendre la structure de l'arbre du noyau et la fonction de chaque chemin est la première étape pour commencer à parcourir le noyau.
Répertoire racine de l'arborescence du noyau :
Documentation/: documentation des sources du noyau.
LICENCES/ : Il contient les licences à appliquer à la source du noyau et aux fichiers sources individuels qui peuvent avoir des licences différentes. A l'intérieur de ce répertoire, vous trouverez 3 sous-répertoires : préféré (GNU GPL), exceptions répertorié dans le fichier COPIE et autre.
cambre/: codes sources pour des architectures spécifiques (e.g powerpc, x86, etc.). À l'intérieur de ce répertoire, vous trouverez des sous-répertoires appartenant à chaque architecture prise en charge : i386, sparc, arm, etc.
bloquer/: couche bloc I/O, contient du code pour la gestion des périphériques bloc (tels que disques durs, dvd, disquettes, etc.) et leurs demandes.
Certificats/ : certificats et fichiers de signature pour activer la signature de module pour que le noyau charge les modules signés, cela peut être utile pour empêcher l'exécution de code malveillant avec les modules du noyau comme les rootkits.
Crypto/ : API de chiffrement. Contient des chiffrements cryptographiques qui gèrent les tâches de chiffrement et de compression.
Conducteurs/: Pilotes de périphérique matériel. Contient le code des 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 tels que vidéo, bluetooth, etc (tout matériel pris en charge).
fs/ : code pour le système de fichiers virtuel et les systèmes de fichiers supplémentaires. Ce répertoire contient le code pour prendre en charge, lire et écrire les systèmes de fichiers.
inclure/: en-têtes du noyau. Ce répertoire contient des en-têtes C pour les fichiers du noyau tels que des fonctions pour compiler du code.
init/ : démarrage du noyau. Contient le code source lié à l'initialisation du noyau. Le code source est stocké dans un fichier appelé principal c.c dans l'annuaire /init. Le code initialise le noyau et certains processus initiaux.
ipc/ : Communication inter-processus telle que les signaux et les tuyaux.
noyau/: Sous-systèmes de base, tels que le code de gestion du signal du planificateur, etc.
lib/ : routines de bibliothèque opérations de chaîne communes, opérations dépendantes du matériel, routines de débogage et code d'analyse de ligne de commande.
mm/ : Gestion de la mémoire et mémoire virtuelle. Le noyau gère à la fois le matériel et la mémoire virtuelle (swap). Ce répertoire stocke le code pour la gestion de la mémoire.
rapporter/: Pile réseau. Contient du code lié aux protocoles de communication tels que IP, TCP, UP, etc.
échantillons/ : exemple de code et fichiers de configuration.
scripts/ : scripts pour construire le noyau.
Sécurité/: Le module de sécurité Linux (LSM) est un cadre permettant aux politiques de sécurité d'accéder au contrôle des modules.
sonner/: Le sous-système audio, vous trouverez ici les pilotes audio et le code liés au son comme ALSA,
outils/: outils pour le développement de noyau compressé tels que ACPI, cgroup, outils de test USB, module de test vhost, outils GPIO, IIO et spi, outil de politique énergétique inter parmi plus.
usr/ : initramfs qui enracine le système de fichiers et init dans le cache mémoire du noyau.
virt/ : Virtualisation, ce répertoire contient le module KVM (Kernel Virtual Machine) pour hyperviseur.
Ce sont les principaux sous-répertoires de l'arborescence du noyau et leur fonction, j'espère que cela vous sera utile.