Analyse et explore test_kconfig_linux
Architecture

Introduction à l'architecture du noyau Linux

En première introduction, le code du noyau Linux est constitué des couches logicielles suivantes :

Il contient également (non exhaustif):

Code spécifique à l'architecture du processeur (CPU)

Le code spécifique à l'architecture du processeur se trouve dans le dossier \arch. Il contient un sous-dossier par architecture CPU, comme \arm ou \x86. Ce code comprend la gestion de la mémoire de bas niveau, la gestion des interruptions, des routines en assembleur, le code du format exécutable et de liaison, etc.

Pilotes de périphériques

Le code des pilotes de périphériques se trouve dans plusieurs dossiers.

Pile réseau

Le code de la pile réseau se trouve dans le dossier \net. Il contient le code des différents protocoles réseau.

Gestion de la mémoire

Le code de gestion de la mémoire se trouve dans le dossier \mm. Il comprend la gestion de la mémoire au démarrage, l'allocation de mémoire, le mappage de fichiers en mémoire, l'échange de mémoire sur le disque dur, etc.

Gestion des processus et autre code du noyau

Le code de gestion des processus se trouve dans le dossier \kernel. Il comprend la gestion des processus, des threads, de l'ordonnancement, des piles, de la signalisation, du Berkeley Packet Filter (BPF)...

Systèmes de fichiers

Le code des systèmes de fichiers se trouve dans le dossier \fs.

Il comprend:

Interface d'appel système

L'interface d'appel système est l'ensemble des fonctions exposées par le noyau Linux à l'espace utilisateur.

Les fonctions sont définies dans le dossier relatif au domaine fonctionnel. Elles reposent sur du code commun (avec la possibilité d'utiliser du code spécifique à l'architecture).

Code d'initialisation

Le dossier \init contient le code utilisé pour le démarrage du noyau. En particulier, le fichier \init\main.c est le point d'entrée.

Cryptographie et sécurité

Le code relatif à la sécurité se trouve dans les dossiers suivants

Support à la virtualisation

Le dossier \virt implémente KVM (Kernel Base Virtual Machine).

Generated by PFA software prototype