10 points par GN⁺ 2025-11-28 | 1 commentaires | Partager sur WhatsApp
  • 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.h et arch/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.c
    • kernel/fork.c
    • include/linux/sched.h
    • arch/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

 
GN⁺ 2025-11-28
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

    • Le Talmud, c’est un peu l’hypertexte originel, si on veut (enfin, c’est l’impression que ça donne)
  • 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

    • Je m’attendais à « l’âge d’or de l’IA ! », mais au final ça ressemble davantage à un remix IA qui reconditionne des fonctionnalités existantes dans un nouveau framework web, donc c’est un peu décevant
  • 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’ai reçu une réponse me remerciant d’avoir signalé le problème. Il a reconnu que l’implémentation était trop simple et a dit qu’il allait l’améliorer
  • 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

  • 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 me rappelle l’ancien LXR.
      Ç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
    • Mais on peut aussi se demander : « si on ne peut ni puller master, ni utiliser grep ou gmake, à quoi ça sert ? »
  • Elixir Bootlin existe depuis longtemps, mais fonctionne mieux sur mobile

    • J’ai reçu une réponse me remerciant pour le retour sur l’adaptation mobile, avec la promesse d’améliorer ça
    • Elixir permet de naviguer par tags, donc il est plus adapté à une exploration de l’ensemble du code qu’à une simple consultation fichier par fichier
  • Ç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

    • Certains ont aussi répondu : « pourquoi ne pas le faire toi-même ? ». Dans l’open source, il est courant d’attendre des implémentations rapides et une bonne réactivité sur les issues
  • Je me pose soudain une question — quelle est la partie du code du kernel la plus impressionnante ?

    • Probablement fs/select.c ou la partie du mécanisme de polling
  • Le fichier arch/x86/kernel/entry_64.S du chapitre 1 ne s’ouvre pas
    Il 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é)

    • C’est probablement une faute de frappe dans le chemin. En réalité, ça devrait être arch/x86/entry/entry_64.S