This makes me want a 3D version in the vein as SGI's fsn file manager then we'd all have an excuse to mutter "This is Linux, I know this" to ourselves.
Can anyone speak to how this was generated or how accurate it is? If accurate it is very impressive how liitle these lines are crossed. Also seems to be from 2010?[0]
I work in Linux kernel related stuff, and from a brief inspection it doesn't seem like the items are terribly inaccurate, but they're not perfect. For example, kmem_cache_alloc() is listed under memory mapping, but it has nothing to do with mapping memory. It's just an API for the slab allocator which is very widespread, and also underpins kmalloc().
The bigger concern is that it doesn't seem like the map is even close to complete. For example, the VFS (virtual file system) is made up of files (open file descriptions), inodes (representing files on disk), and dentries (representing the file system tree/DAG). Probably others things I'm missing too. The area of this page describing vfs only seems to mention files and inodes, and it strangely mentions fsnotify, which is definitely an important subsystem, but not a fundamental data structure like a dentry.
I would imagine people wrote articles about topics, and they got categorized into this very cool visualization. But it's not as if it represents everything, just the things the contributors of the site were working on. It's still very cool, but don't expect that this is a comprehensive overview of the kernel, or that all the major parts of a particular area are listed here.
Edit: but that said, resources from 2010 or earlier can be quite useful. I have a cherished hard copy of Understanding the Linux Virtual Memory Manager[1] which was released in 2007 about Linux 2.4, and I regularly rely on it and its concepts. I have another beloved copy of Linux Kernel Development 3rd Ed. (2010) [2] which is how I learned a ton of fundamentals. Ultimately, it's not about the age of the resource but the concepts behind it :)
Very handy if you're already familiar with the system, but probably a little opaque for newcomers. The fact that the arrows aren't labeled (much less explained) is a bit of a let down. You kind of have to guess at what each arrow means and why. This as an Ilograph would be amazing.
I'd love to put on an exhibition of Linux running in a museum. In the centre of the room would be a computer terminal, and then there would hundreds of other screens which shows the internal state of various files and memory registers. That way people can observe parts of it as it's being used.
One UX feedback: it's very hard to navigate the map when links open if you happen to pan over one. Instead, if JS is supported, links should open on click vs on release. (maybe there's a way to do it without JS too?)
I like diagrams of code. I would like to understand Linux better.
I tried to get Linux 0.0.1 compiling. I replaced gcc with gcc -m32 and unfortunately the inline assembly constraints were invalid/impossible. Anybody have an ideas how to fix this?
https://unix.stackexchange.com/questions/680335/how-to-compi... claims that it's as simple as some tiny patching, and another answer links to a github repo of interest. The funny thing is, I really thought that version of Linux used a patched gcc, but maybe I'm misremembering.
It'd be cool if there was another view that showed the relative size of each subsection, by lines of code. I don't really have an intuition about what most of the code is doing.
How cool would it be to have a whole map of your system blinking or changing colors based on the load to each box.
Make it 3D, put some VR goggles on and walk through your running system!