[HN Gopher] Linux Kernel Explorer
       ___________________________________________________________________
        
       Linux Kernel Explorer
        
       Author : tanelpoder
       Score  : 508 points
       Date   : 2025-11-27 06:17 UTC (16 hours ago)
        
 (HTM) web link (reverser.dev)
 (TXT) w3m dump (reverser.dev)
        
       | stacktrace wrote:
       | > API rate limit exceeded for 106.51.68.199. (But here's the good
       | news: Authenticated requests get a higher rate limit. Check out
       | the documentation for more details.)
       | 
       | The GitHub APIs that you are using to list files are getting
       | rate-limited in my case. If somebody else is also facing this
       | issue, just use a VPN or something like Cloudflare Wrap to change
       | your ip - this should fix the issue.
       | 
       | P.S If you are the main dev, giving an option to the visitor to
       | sign in using Github or use a caching layer will be really
       | helpful to make this accessible for the new user.
        
         | reverserdev wrote:
         | Hey! Thank you for catching this issue and reminding me of the
         | super naive implementation I went with. I will improve this! :)
        
           | rbanffy wrote:
           | It's often better to overlay caching and other tricks on top
           | of naive implementations than making the implementation more
           | complicated.
        
             | foota wrote:
             | * until you get caching layers more complicated than the
             | more complicated implementations :) Imo strong
             | implementations can be much simpler and more predictable
             | than caching.
        
       | jtwaleson wrote:
       | This is super cool. Love the little icons in the left and would
       | be nice if they were clickable.
        
       | qweqwe14 wrote:
       | How is this different from https://elixir.bootlin.com/linux
        
         | reverserdev wrote:
         | The Elixir cross referencer does not have any special features
         | to help you learn
        
         | oskarkk wrote:
         | Look at the content in the right sidebar, this is like an
         | interactive guide to the kernel.
        
         | stacktrace wrote:
         | Elixir is a great tool for exploring and cross-referencing the
         | Linux codebase but for a new person, Linux can come across as
         | very intimidating and complicated. The above explorer makes it
         | very interesting to explore the codebase. This is kind of like
         | an interactive book on Linux internals, with every topic being
         | referenced through code.
        
         | proc0 wrote:
         | I don't see all those versions, and for some reasons my fans
         | turned on with the elixir link lol
        
         | w4yai wrote:
         | Even if it was the same, how problematic would it be ?
        
         | udev4096 wrote:
         | It's a better navigation and overall quicker way to read code
        
         | loeg wrote:
         | Well, they're completely different, but other than that they
         | have similar looking names. I think elixir is more useful for
         | the ways I interact with the Linux kernel. This is attempting
         | to be more of a teaching book. The links to function
         | definitions is what makes elixir useful, and this doesn't have
         | those.
        
       | reverserdev wrote:
       | Thanks for sharing OP! It seems quite some people liked it, so
       | I'll be listening to feedback and see what to do next. :)
        
       | fscaramuzza wrote:
       | Am I the only one that can't access the website due to
       | certificate problems with the .dev?
        
         | reverserdev wrote:
         | I cannot reproduce. Would you mind sharing a bit more? The
         | certificate is handled by Cloudflare Pages.
        
           | fscaramuzza wrote:
           | My bad, the network I was connected to didn't like the
           | certificate for some reason. Cool project!
        
       | nolist_policy wrote:
       | Also: https://elixir.bootlin.com/linux/v6.17.9/source
       | 
       | Elixir works better on mobile despite being around for years.
        
         | reverserdev wrote:
         | Thanks for the observation about mobile responsiveness, I will
         | improve it!
        
         | formerly_proven wrote:
         | Elixir also has working tags instead of just looking at a file
         | at a time, so it is much better at the actual exploring part.
        
       | __bjoernd wrote:
       | I appreciate the learning guidance.
        
       | reimuwu wrote:
       | when I try to open arch/x86/kernel/entry_64.S. it just says:
       | Failed to load file Failed to fetch file: File:
       | arch/x86/kernel/entry_64.S
       | 
       | maybe its a bug?
        
         | rumdz wrote:
         | The path should be arch/x86/entry/entry_64.S
        
       | knuckleheads wrote:
       | Very neat. It reminds me a bit of how pages in the Talmud are
       | laid out. From a gentile perspective, it was very interesting to
       | me to see how hundreds (thousands?) of years of commentary are
       | contained within the same page.
       | 
       | https://www.reddit.com/r/interestingasfuck/comments/1acgks3/...
       | 
       | https://triberuth.wordpress.com/2016/09/23/my-talmud-layout-...
       | 
       | Code isn't linear the same way, and pages don't make as much
       | sense, but that idea of layers of commentary rings out in this
       | Linux Kernel Explorer as well. I very much like the notes on the
       | side!
        
         | guy4261 wrote:
         | Talmud - the original hypertext (tm)
         | 
         | (*maybe, not 100% sure)
        
           | ofrzeta wrote:
           | see also Pi, the movie, although it's more about numbers and
           | the Kabbalah :) https://en.wikipedia.org/wiki/Pi_(film)
        
             | ezrabrand wrote:
             | Long-time HN lurker here! Was excited to see this
             | discussion around my major interests of Talmud, Kabbalah,
             | and tech.
             | 
             | There are a lot of misconceptions and mystique surrounding
             | the Talmud. I'd like to take the opportunity to clarify
             | some fundamental aspects, as relates to the discussion
             | here:
             | 
             | The famous "Talmud page" (discussed in the links in the
             | parent comment) was set by a Christian printer in the 16th
             | century.
             | 
             | It emulated a common layout in medieval Christian
             | manuscripts for Christian primary texts and commentaries
             | [0].
             | 
             | The analogy of the Talmud to a hypertext isn't especially
             | apt, IMO. The Talmud indeed extensively cites Bible and
             | Mishnah, and uses lots of technical terms. In this regard,
             | a better analogy is to legal literature (which is what the
             | Talmud in fact is). While being couched as a (fictional)
             | "conversation"/dialogue between rabbis who lived over the
             | course of ~400 years (100 CE to 500 CE).
             | 
             | In fact, Kabbalah (as another commenter mentioned) is a
             | better example of a "hypertext," since it's full of
             | recurring symbols that point to different Sefirot and other
             | core concepts.
             | 
             | (By way of credentials: I hold an MA in academic Talmud and
             | Kabbalah, write on these subjects in several venues, and
             | have presented at academic workshops. Over the past two
             | years, I've also been developing digital-humanities
             | projects related to this work.)
             | 
             | References:
             | 
             | [0] https://seforimblog.com/2023/06/from-print-to-pixel-
             | digital-...
             | 
             | [1] https://www.ezrabrand.com/p/beyond-the-mystique-
             | correcting-c...
        
               | knuckleheads wrote:
               | That's awesome!! Thank you very much! I would have next
               | asked you, what do you think of those apps for studying
               | the Talmud, https://www.sefaria.org/app et al, but in
               | those links you already mention it. Looking forward to
               | reading these, thanks!
        
               | ezrabrand wrote:
               | Definitely!
               | 
               | Sefaria is incredible, it's revolutionized access to
               | classical texts. And their API gives full and complete
               | access. My vibe-coded Talmud reader website fetches
               | Talmud, Bible, and translations from Sefaria, you might
               | be interested in checking it out :)
               | 
               | https://chavrutAI.com/
               | 
               | Source code here:
               | 
               | https://github.com/EzraBrand/replit-chavrutai-2
               | 
               | I've been vibe-coding it over the last few months using
               | Replit, it's been a really cool experience
        
               | kosolam wrote:
               | Oh wow, that's quite cool. Thanks.
        
               | knuckleheads wrote:
               | piling on to also say, very neat!!
        
               | bradrn wrote:
               | > The analogy of the Talmud to a hypertext isn't
               | especially apt, IMO.
               | 
               | Isn't it? Every page of the Talmud includes marginal
               | notes (Masoret HaShas, Ein Mishpat, Torah Or) giving
               | cross-references to relevant parts of the Torah, Talmud
               | and other legal codes. In a web-based version I think it
               | would be natural to represent those with hypertext.
        
               | ezrabrand wrote:
               | >"Isn't it? Every page of the Talmud includes marginal
               | notes (Masoret HaShas, Ein Mishpat, Torah Or) giving
               | cross-references to relevant parts of the Torah, Talmud
               | and other legal codes. In a web-based version I think it
               | would be natural to represent those with hypertext."
               | 
               | True, and the website "Al Hatorah" indeed does that, for
               | the marginal notes that you list. See, for example:
               | https://shas.alhatorah.org/Gemara/Berakhot/2a
               | 
               | But my point is that those marginal notes are an artifact
               | of the 16th century print edition. It's not anything
               | inherent in the Talmud text.
               | 
               | The famous 16th-century Mikraot Gedolot edition of the
               | Bible also features extensive marginal notes (the
               | Mesorah) which function much like a dense network of
               | cross-references.
               | 
               | In fact, the Mesorah is a medieval work (drawing on
               | ancient sources) and is arguably was one of the most
               | elaborate systems of cross-referencing found anywhere, at
               | the time it was promulgated.
               | 
               | This differs from the Talmud's cross-referencing, which
               | doesn't predate the printed edition (as I note in the
               | Seforim Blog article; the page citations are reliant on
               | the universal page numbers that started from the first
               | print edition).
        
               | bradrn wrote:
               | > But my point is that those marginal notes are an
               | artifact of the 16th century print edition. It's not
               | anything inherent in the Talmud text.
               | 
               | OK, fair enough, if 'the Talmud text' is taken to be only
               | the Mishna and the Gemara. (Though when I think of the
               | Talmud it's the printed edition that comes to mind, with
               | all its accompanying commentary.)
               | 
               | EDIT: I had a look at your blog and saw you actually
               | addressed this exact point already:
               | https://www.ezrabrand.com/i/162112983/myth-the-talmud-is-
               | div...
        
               | elygre wrote:
               | My message here is off-topic, probably a rule violation,
               | but...
               | 
               | I love this. I love how the users of Hacker News provide
               | deep, real insights on pretty much any topic. Thank you!
        
       | oskarkk wrote:
       | I love this idea. I like exploring code of interesting projects
       | even if I don't intend to ever work on them, but in complex
       | software I don't know much about it's hard to even find where are
       | the most important basic parts. This allows me to easily find and
       | see how some things in the kernel look like.
       | 
       | Found a bug: in the Chapter 2, when I click on "open" next to
       | "mm/" or other dirs, I get an error: " Failed to load file -
       | Invalid file response from GitHub API - File: mm/". I guess it's
       | cause it tries to open the dir as a file, instead of something
       | like pointing at the dir in the dir tree?
        
         | xxdd2ea wrote:
         | Yes it's good idea and nicely executed.
         | 
         | For the same reason I created a couple of projects with the
         | same goal of lowering the barrier to entry to the linux kernel:
         | 
         | - an app to follow the UDP packet flow in the linux kernel
         | source code: https://dmkskd.github.io/linux-kernel-network-
         | stack-visualiz...
         | 
         | - a (hopefully) simple way to play with the linux kernel source
         | code on a mac: https://github.com/dmkskd/linux-kernel-
         | debugging-on-mac
         | 
         | Kudos to https://github.com/FlorentRevest for all his work in
         | the space
        
           | glenneroo wrote:
           | I love your UDP packet flow tool, kudos for making that! I've
           | always wondered how packets move through an OS. Also
           | interesting how many gotos I see all over the place, even
           | though everyone says "goto is the devil". Then again maybe
           | this code was written long before that "proverb" came into
           | existence.
        
             | Fnoord wrote:
             | Since you mentioned you love that, I will mention this
             | netfilter packet flowchart by Jan Engelhardt [1]
             | 
             | [1] https://en.wikipedia.org/wiki/File%3ANetfilter-packet-
             | flow.s...
        
             | xxdd2ea wrote:
             | Thanks! I suggest to have a look at a 'live' debugger
             | session video here: https://github.com/dmkskd/linux-kernel-
             | debugging-on-mac?tab=... given your interest
             | 
             | if you have an ARM64 mac (sorry for only supporting this OS
             | at the moment) it should be easy to set this up on your end
        
       | joshlk wrote:
       | Asking a silly question... what piece of kernel code do you find
       | the most awe-inspiring or impressive?
        
         | throwaway29303 wrote:
         | Maybe _fs /select.c_ or the polling machinery.
        
           | suprjami wrote:
           | Agree. The VFS is a delight to read. It's a good intro to the
           | kernel pattern of using function pointers to provide a
           | generic API which other functionality can plug into, simply
           | by implementing the appropriate functions. In this case
           | you'll see all the filesystem drivers implement the VFS
           | operations.
        
       | bobowzki wrote:
       | This is very nice. It would be interesting to see the same for
       | other code bases like emacs and vim.
        
         | udev4096 wrote:
         | I don't know why you're getting downvoted. It would be
         | wonderful if there was same site for all the big open source
         | projects
        
         | mickael-kerjean wrote:
         | emacs is quite approachable because of its self documenting
         | nature. In practice, if you want to drill down on a particular
         | thing, you need to use some of the describe-* commands. For
         | example want to know how emacs save something?
         | 
         | 1) find the command it uses with describe-keybinding, you find
         | the command "save-buffer"
         | 
         | 2) "describe-command save-buffer" brings you onto the lisp
         | world where it is defined => "files.el"
         | 
         | 3) want to know how a variable is define within files.el?
         | "describe-variable buffer-file-name" and now you are in C
         | territory
         | 
         | 4) rinse and repeat with some describe-function when needed
         | 
         | 5) get lost onto the beauty of emacs which in my opinion is its
         | interactive / self documenting nature which unfortunatly is not
         | more common in all the software we use
        
       | thdhhghgbhy wrote:
       | I love this.
        
       | rbanffy wrote:
       | I love tools like this. I remember using a similar one (made by
       | Red Hat IIRC) that I used to look inside the sources for the
       | Brazilian voting machine (I was asked to map duplicate files and
       | functionality and simplify the codebase) in 2002. It was a
       | desktop app with a very Motif interface.
        
       | Gormanu wrote:
       | You know, I think this Explorer is exactly the tool many of us
       | lacked. Reading the Linux kernel source always felt daunting --
       | thousands of files, confusing paths, complex structure. This
       | feels like a "map" that helps you orient yourself, see how parts
       | interconnect, how VFS works, how modules tie together. Yeah,
       | sometimes a feature breaks (API limits, errors opening
       | directories), but even so -- this is a great way to peek "under
       | the hood," understand the architecture, and take the first step.
       | Big thanks to the folks behind it.
        
         | tosti wrote:
         | I don't get it. I can't pull master, I can't grep, I can't edit
         | and I certainly can't gmake there.
         | 
         | What's the use?
        
           | kinow wrote:
           | I believe it's a navigation tool, with pointers to important
           | parts of the code. Useful for those that want to learn about
           | the code base but do not know where to get started.
        
       | cepera wrote:
       | Can I somehow deploy it locally?
        
       | maartin0 wrote:
       | I really like this reactive guide style interface, which maybe
       | could be quite a good project idea like mdBook[1] but also you to
       | insert quizzes/examples alongside static notes
       | 
       | [1]: https://github.com/rust-lang/mdBook
        
       | notachatbot123 wrote:
       | Were the quiz questions generated by a human or AI?
        
         | bakugo wrote:
         | The very first sentence of the guide is "It's not X--it's Y. It
         | does Z". Safe to assume the entire thing is AI generated.
        
           | reverserdev wrote:
           | Can you please elaborate what exactly is the problem with the
           | first sentence?
           | 
           | "The kernel isn't a process--it's the system. It serves user
           | processes, reacts to context, and enforces separation and
           | control."
           | 
           | This is actually based on "The Kernel in The Mind" by Moon
           | Hee Lee. You are welcome to provide feedback.
        
             | bakugo wrote:
             | Is it or is it not AI generated? That's all I said, and you
             | didn't deny it.
        
               | soraminazuki wrote:
               | Calm down. You had the answer served on a platter.
               | 
               | From "The Kernel in the Mind":
               | 
               | > The Kernel Is Not a Process. It Is the System.
               | 
               | https://www.linkedin.com/pulse/kernel-mind-moon-hee-lee-
               | miwz...
               | 
               | It's X but Y came from elsewhere.
        
         | loeg wrote:
         | In particular, one of the first questions is "What is the
         | fundamental difference between the kernel and a process?" It
         | rejects "The kernel is a special process with elevated
         | privileges" (which is essentially correct) and prefers "The
         | kernel is not a process--it's the system itself that serves
         | processes," which is sort of wrong? The kernel represents
         | itself as a process (process zero), because kernel threads also
         | need scheduling. And it is privileged, obviously.
        
           | soraminazuki wrote:
           | > The kernel represents itself as a process (process zero)
           | 
           | This isn't true of any modern operating system. Kernel code
           | isn't confined to a single process or even a limited number
           | of processes. Transitioning to kernel mode doesn't
           | necessitate switching to a dedicated process. Prior to the
           | emergence of CPU speculative execution vulnerabilities, it
           | was common for kernel code to be mapped directly into the
           | virtual address spaces of userspace processes.
           | 
           | PID 0 is merely an implementation detail of the scheduler
           | shared among many Unices. It doesn't function like a normal
           | process, nor is it an accurate representation of how the
           | large part of the kernel operates.
        
           | stevenhuang wrote:
           | Also in Chapter 6 1. What is the relationship between CPU
           | state and kernel state?, it prefers "CPU is stateless; kernel
           | manages state" instead of "They share state equally". I also
           | wouldn't divide it down as "equally" as the kernel manages
           | much more state, but CPUs have registers and cache lines so I
           | wouldn't say they're stateless either.
        
       | glenneroo wrote:
       | Love this! Small bug but when changing files, it doesn't reset to
       | position 0 in the file (at least on Firefox on Win11).
        
       | kinow wrote:
       | This looks amazing. Took me some time to find the author
       | (https://fabiomaia.eu). Will drop a message to ask if it'd be
       | possible to have a similar tool for Python. I find it useful to
       | teach new engineers how to find the source code in the cpython
       | repository, check if the code is Python or C, and understand what
       | the code does (some times the docs are a bit lacking/confusing
       | for newcomers).
        
         | rapfaria wrote:
         | > Will drop a message to ask if it'd be possible to have a
         | similar tool for Python.
         | 
         | Why not create your own? This is as wild as open-source
         | expectations of a speedy implementation, addressing issues
         | quickly, etc. Folks always want more and more.
        
       | dmezzetti wrote:
       | Very interesting! I was kind of expecting that this was going to
       | use LLMs / coding agents to explain the kernel as you stepped
       | through it. But this is a nice app.
        
         | reverserdev wrote:
         | I am considering more dynamic "tutors", since this rudimentary
         | version got so much attention! :)
         | 
         | What do you have in mind when you say "step through" the code?
         | Like follow your scrolling of the source code?
        
           | dmezzetti wrote:
           | Something as simple as an LLM prompt that explains what the
           | file does would go a long way I think.
        
       | w23j wrote:
       | This file from chapter 1 cannot be opened:
       | arch/x86/kernel/entry_64.S ("Failed to load file").
       | 
       | It's also not visible in the directory tree on the left.
       | 
       | (Oddly enough another comment mentioned this already and is voted
       | dead. Why?)
        
         | rumdz wrote:
         | It must be a typo. The path should actually be
         | arch/x86/entry/entry_64.S
        
       | stackedinserter wrote:
       | What kind of guide says "next topic is scheduler" and just points
       | you to sched.h?
        
       | synergy20 wrote:
       | I must be missing something, we had kernel source browsing online
       | for years, e.g.
       | https://elixir.bootlin.com/linux/v6.17.9/source/fs, this is
       | another one, what extra features it provides. in fact the bootlin
       | one provides some search functions but I did not spot that here.
       | I was expecting some LLM explanation for the code, or dependency
       | graphs etc in the AI era for a new kernel navigator...
        
         | xeonmc wrote:
         | You: "Wow, we are surely in the golden age of AI! I can't wait
         | to see LLM-guided explanations for the code or a new kernel
         | dependency navigator powered by AI..."
         | 
         | The AI Era: "Meh, best I could do is AI rehashes of the same
         | old functionality in a different web framework."
        
       | wasteofelectron wrote:
       | Looks great, looking forward to digging in. I had a similar idea
       | a while back (B.A., before agents) but it seemed too big to take
       | on. Was this able to be realised due to agentic coding?
        
       | algorithm314 wrote:
       | No language server in this explorer, so it is less useful.
        
       ___________________________________________________________________
       (page generated 2025-11-27 23:00 UTC)