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.
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!
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.)
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!
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 :)
> 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.
>"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."
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).
> 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.)
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...
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.”
> 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.
* until you get caching layers more complicated than the more complicated implementations :) Imo strong implementations can be much simpler and more predictable than caching.
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.
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?
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.
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.
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.
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.
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).
> 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.
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)
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.
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 idle task, a very small part of the kernel.
I also did 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.
> This is actually based on "The Kernel in The Mind" by Moon Hee Lee.
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?
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?
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
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.
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.
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
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.
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!
reply