Explorateur du noyau Linux
(reverser.dev)- Le noyau Linux n’est pas un processus unique, mais la couche centrale qui constitue l’ensemble du système, une structure permanente qui relie le matériel et le logiciel
- Il maintient l’exécution en orchestrant les appels système, les interruptions et l’ordonnancement pour les processus utilisateur
- Le noyau fonctionne comme une structure multicouche virtualisée, mappée, isolée et contrôlée
- Comme support d’apprentissage, il présente des fichiers source clés tels que
init/main.c,kernel/fork.c,include/linux/sched.hetarch/x86/kernel/entry_64.S - Il constitue une ressource d’apprentissage fondamentale pour comprendre la structure et le rôle du noyau
La nature du noyau
- Le noyau est le système lui-même, et non un processus, une couche d’autorité toujours présente qui relie le matériel et le logiciel
- Il joue un rôle central en prenant en charge l’exécution des processus utilisateur et en gérant les ressources système
- Le noyau est l’entité qui fournit des services aux processus et maintient les tâches utilisateur en coordonnant les appels système (
syscall), les interruptions et l’ordonnancement
Structure en couches du système
- Le noyau est composé d’une structure de contrôle virtualisée, mappée et isolée
- À l’exécution, plusieurs couches interagissent pour préserver la stabilité et le contrôle du système
Fichiers d’apprentissage
- Les quatre fichiers suivants sont présentés comme fichiers majeurs pour comprendre la structure du noyau
init/main.ckernel/fork.cinclude/linux/sched.harch/x86/kernel/entry_64.S
Questions de vérification des concepts
- Différence fondamentale entre le noyau et un processus : B. Le noyau n’est pas un processus, mais le système lui-même
- Manière dont le noyau prend en charge les processus utilisateur : B. En orchestrant les appels système, les interruptions et l’ordonnancement
- Caractéristique en couches du noyau : C. Une structure virtualisée et mappée, isolée et contrôlée
1 commentaires
Commentaires sur Hacker News
Projet vraiment génial. Ça m’a rappelé la mise en page d’une page du Talmud — cette structure où des siècles de commentaires s’empilent en couches sur une seule page m’a toujours fasciné
Le code n’est pas linéaire de cette façon, mais dans ce Linux Kernel Explorer, on ressent quelque chose de similaire, comme des « couches d’annotations »
J’aime particulièrement le format des notes sur le côté
Liens connexes : Mise en page d’une page du Talmud, Notes sur la mise en page du Talmud
J’ai l’impression de rater quelque chose. On pouvait déjà parcourir le code source du kernel sur le web depuis longtemps — par exemple avec des sites comme Elixir Bootlin
Mais je ne vois pas quelles fonctionnalités supplémentaires celui-ci apporte. Bootlin permet aussi la recherche, que je ne vois pas ici
À notre époque, je m’attendais plutôt à des explications de code basées sur des LLM ou à un graphe de dépendances
L’API GitHub est bloquée par la rate limit, donc la liste des fichiers ne s’affiche pas
Pour ceux qui ont le même problème, changer d’IP avec un VPN ou Cloudflare Wrap le résout
Si le développeur ajoutait une option de connexion GitHub ou une couche de cache, ce serait plus facile d’accès pour les nouveaux utilisateurs
J’adore ce genre d’outil. Je me souviens avoir analysé le code source des machines de vote électronique brésiliennes avec un outil similaire créé autrefois par Red Hat
À l’époque, je travaillais sur le tri des fichiers et fonctionnalités dupliqués, et c’était une application desktop basée sur une interface Motif
J’aime vraiment beaucoup cette idée. Quand on explore le code d’un projet complexe, il est souvent difficile de savoir par où commencer, et cet outil permet de comprendre rapidement la structure essentielle
En revanche, j’ai trouvé un bug — dans le chapitre 2, si on ouvre un répertoire comme « mm/ », on obtient l’erreur « Invalid file response ». On dirait qu’il essaie d’ouvrir un répertoire comme s’il s’agissait d’un fichier
Bravo aussi pour le travail de Florent Revest
Cet Explorer ressemble à l’outil dont beaucoup de développeurs avaient besoin
Le code source du kernel est immense et complexe, et on ne sait pas toujours par où commencer ; ici, sa structure est montrée comme une sorte de carte
On peut aussi voir d’un coup d’œil le VFS ou la façon dont les modules sont reliés ; malgré des problèmes comme les limitations d’API ou les erreurs sur les répertoires, c’est un excellent premier pas
Ça m’a beaucoup aidé quand j’ai commencé à travailler sur Linux, et il y a ensuite eu Elixir réimplémenté en Python, ainsi que son code source
Elixir Bootlin existe depuis longtemps, mais fonctionne mieux sur mobile
Ça a vraiment l’air très bien. L’auteur était fabiomaia.eu
Je pense lui demander de faire un outil similaire pour Python
Ça pourrait être utile pour apprendre aux nouveaux ingénieurs la structure du dépôt CPython
Je me pose soudain une question — quelle est la partie du code du kernel la plus impressionnante ?
Le fichier
arch/x86/kernel/entry_64.Sdu chapitre 1 ne s’ouvre pasIl n’apparaît pas non plus dans l’arborescence des répertoires
(Il semble qu’un autre commentaire mentionnant ce problème ait été supprimé)
arch/x86/entry/entry_64.S