40 comments

[ 3.2 ms ] story [ 58.2 ms ] thread
> 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.

This is super cool. Love the little icons in the left and would be nice if they were clickable.
How is this different from https://elixir.bootlin.com/linux
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.
Thanks for sharing OP! It seems quite some people liked it, so I'll be listening to feedback and see what to do next. :)
Am I the only one that can't access the website due to certificate problems with the .dev?
I appreciate the learning guidance.
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?

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!

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?

Asking a silly question… what piece of kernel code do you find the most awe-inspiring or impressive?
This is very nice. It would be interesting to see the same for other code bases like emacs and vim.
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.
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.
Not that I care much if things are written by AI or not, but there has been a large stream of new accounts posting "<generic positive statement about project> <short description of a reason one could use the tool> <yeah x, but y> <token if thanks>" template posts with em dashes and other generically "AI styled" writing hints. My only thought is it's an easy way to get bot accounts past karma thresholds.

Whatever the reason, and I'm not writing this to say that you are one such account or not, adopting a near identical commenting approach is probably why a lot of your comments have been struggling.

Not that I care much if things are written by AI or not, but there has been a large stream of new accounts posting "<generic positive statement about project> <short description of a reason one could use the tool> <yeah x, but y> <token if thanks>" template posts with em dashes and other generically "AI styled" writing hints. My only thought is it's an easy way to get bot accounts past karma thresholds.

Whatever the reasons for these new accounts, and I'm not writing this to say that you are one such account or not, adopting a near identical style and template in certain responses is probably why some of your comments have been struggling.

Can I somehow deploy it locally?
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

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.
Love this! Small bug but when changing files, it doesn't reset to position 0 in the file (at least on Firefox on Win11).
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).
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 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?

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?)

What kind of guide says "next topic is scheduler" and just points you to sched.h?