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.<p><a href="https://www.reddit.com/r/interestingasfuck/comments/1acgks3/a_layout_of_a_page_in_the_talmud_why_jews_insist/" rel="nofollow">https://www.reddit.com/r/interestingasfuck/comments/1acgks3/...</a><p><a href="https://triberuth.wordpress.com/2016/09/23/my-talmud-layout-notes/" rel="nofollow">https://triberuth.wordpress.com/2016/09/23/my-talmud-layout-...</a><p>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!
I must be missing something, we had kernel source browsing online for years, e.g. <a href="https://elixir.bootlin.com/linux/v6.17.9/source/fs" rel="nofollow">https://elixir.bootlin.com/linux/v6.17.9/source/fs</a>, 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...
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…”<p>The AI Era: “Meh, best I could do is AI rehashes of the same old functionality in a different web framework.”
> 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.)<p>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>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.
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.
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.<p>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?
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.
It reminds me of LXR:<p><a href="https://lxr.linux.no/" rel="nofollow">https://lxr.linux.no/</a><p><a href="https://en.wikipedia.org/wiki/LXR_Cross_Referencer" rel="nofollow">https://en.wikipedia.org/wiki/LXR_Cross_Referencer</a><p>which when I started working with Linux was a great asset. At some point it seems it inspired a reimplementation in Python:<p><a href="https://elixir.bootlin.com/" rel="nofollow">https://elixir.bootlin.com/</a><p><a href="https://github.com/bootlin/elixir" rel="nofollow">https://github.com/bootlin/elixir</a>
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.<p>What's the use?
Also: <a href="https://elixir.bootlin.com/linux/v6.17.9/source" rel="nofollow">https://elixir.bootlin.com/linux/v6.17.9/source</a><p>Elixir works better on mobile despite being around for years.
Thanks for the observation about mobile responsiveness, I will improve it!
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.
Asking a silly question… what piece of kernel code do you find the most awe-inspiring or impressive?
This looks amazing. Took me some time to find the author (<a href="https://fabiomaia.eu" rel="nofollow">https://fabiomaia.eu</a>). 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).
> Will drop a message to ask if it'd be possible to have a similar tool for Python.<p>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.
This file from chapter 1 cannot be opened: arch/x86/kernel/entry_64.S ("Failed to load file").<p>It's also not visible in the directory tree on the left.<p>(Oddly enough another comment mentioned this already and is voted dead. Why?)
This is super cool. Love the little icons in the left and would be nice if they were clickable.
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?
Were the quiz questions generated by a human or AI?
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.
> The kernel represents itself as a process (process zero)<p>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.<p>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.
This article (and comment you’re replying to) is about Linux, which does represent its own threads as pid 0. Yes, there are concepts that aren’t threads. Nevertheless, in a very real sense the kernel is a special process zero.
Again, no it's not. Most kernel code doesn't run as PID 0. What you're talking about is the <i>idle task</i>, a very small part of the kernel.<p>I also <i>did</i> have Linux in mind when writing my comment, but this is basic to how any major general purpose operating system works. Besides, I can't possibly exclude Linux when I say "any modern operating system."
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.
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.
Can you please elaborate what exactly is the problem with the first sentence?<p>"The kernel isn't a process—it's the system. It serves user processes, reacts to context, and enforces separation and control."<p>This is actually based on "The Kernel in The Mind" by Moon Hee Lee. You are welcome to provide feedback.
> This is actually based on "The Kernel in The Mind" by Moon Hee Lee.<p>This looks like a really interesting resource. Can anybody here vouch for its accuracy or usefulness? I can't find a ton about it online. The fact that it's only published as a series of LinkedIn posts, or a PDF attached to a LinkedIn post, does not fill me with confidence - but I guess we can't expect kernel devs to know how to create websites?
Is it or is it not AI generated? That's all I said, and you didn't deny it.
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<p>[1]: <a href="https://github.com/rust-lang/mdBook" rel="nofollow">https://github.com/rust-lang/mdBook</a>
How is this different from <a href="https://elixir.bootlin.com/linux" rel="nofollow">https://elixir.bootlin.com/linux</a>
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.
The Elixir cross referencer does not have any special features to help you learn
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.
Look at the content in the right sidebar, this is like an interactive guide to the kernel.
Even if it was the same, how problematic would it be ?
I don't see all those versions, and for some reasons my fans turned on with the elixir link lol
It's a better navigation and overall quicker way to read code
Love this! Small bug but when changing files, it doesn't reset to position 0 in the file (at least on Firefox on Win11).
Thanks for sharing OP! It seems quite some people liked it, so I'll be listening to feedback and see what to do next. :)
This is very nice. It would be interesting to see the same for other code bases like emacs and vim.
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?<p>1) find the command it uses with describe-keybinding, you find the command "save-buffer"<p>2) "describe-command save-buffer" brings you onto the lisp world where it is defined => "files.el"<p>3) want to know how a variable is define within files.el? "describe-variable buffer-file-name" and now you are in C territory<p>4) rinse and repeat with some describe-function when needed<p>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
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
No language server in this explorer, so it is less useful.
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<p>maybe its a bug?
Can I somehow deploy it locally?
I appreciate the learning guidance.
What kind of guide says "next topic is scheduler" and just points you to sched.h?
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.
I love this.
Am I the only one that can't access the website due to certificate problems with the .dev?
[dead]
[dead]