Interactive Map of Linux Kernel
makelinux.github.io
makelinux.github.io
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!
[0] https://makelinux.wordpress.com/2010/12/20/comments-on-inter...
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 :)
[1]: https://www.kernel.org/doc/gorman/pdf/understand.pdf [2]: https://altair.pw/pub/doc/unix/Linux%20Kernel%20Development%...
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
And the controls seem to be made with https://github.com/timmywil/panzoom: <script src="https://unpkg.com/@panzoom/panzoom@4.5.1/dist/panzoom.min.js"></script>
<script type="text/javascript">
const panzoom = Panzoom(elem, {
maxScale: 12
})
m = {
animate: true,
relative: true,
maxScale: 80
}
right.addEventListener('click', function() {
panzoom.pan(100, 0, m);
})
left.addEventListener('click', function() {
panzoom.pan(-100, 0, m);
})
lu.addEventListener('click', function() {
panzoom.pan(-100, -100, m);
})
up.addEventListener('click', function() {
panzoom.pan(0, -100, m);
})
ru.addEventListener('click', function() {
panzoom.pan(100, -100, m);
})
down.addEventListener('click', function() {
panzoom.pan(0, 100, m);
})
ld.addEventListener('click', function() {
panzoom.pan(-100, 100, m);
})
rd.addEventListener('click', function() {
panzoom.pan(100, 100, m);
})
center.addEventListener('click', panzoom.reset)
zoom_in.addEventListener('click', panzoom.zoomIn)
zoom_out.addEventListener('click', panzoom.zoomOut)
elem.parentElement.addEventListener('wheel', panzoom.zoomWithWheel)
</script>If you hold down the <ctrl> key while you use the mouse to drag/pan/etc, it stays on the page while links open.
http://www.makelinux.net/resources/ this one is shaped like a house
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?
I removed an unrecognised gcc flag.
I was hoping to run it in 32 bit qemu.
Pinch zooming makes it perfectly usable.