6 ms·
Interactive map of Linux kernel
- Someone1234 9y agoThat's a fun map. The Linux kernel has more device drivers embedded in the core than I anticipated. I'm guessing most are used for bootstrapping/fallback (e.g. loading the "actual" drivers)? Such as ext4, ipw2100, ac97, i8042, etc. Just to be clear, I'd imagine most of the above are common enough to have on almost all but the most niche Linux distributions. My question relates around having them this high up in the source tree, rather than why they're useful/what they do.
- KindOne 9y agoThe map is at least 8+ years old. https://www.linux.com/blog/interactive-map-linux-kernel https://www.linux.com/blog/interactive-map-linux-kernel (2009)
- BlackLotus89 9y agoIt's 2007 (see the image). First version on archive.org is 2008. I would add a (2007) to the title
- angelsl 9y agoWhat do you mean "embedded in the core"? All drivers are in-tree.
- megous 9y agoThe map is simply incomplete, so it only lists some sample of the network card drivers there, otherwise it would be a mess.
- yitchelle 9y agoI wonder how many of these device drivers are for old devices that are not available anymore; Therefore, they can be considered as dead code. Do they have an annual culling of devices drivers?
- tjoff 9y agoJust because you can't buy them doesn't mean they aren't still used.
- simooooo 9y agoAs a noob observing..Many of them seem to have names nothing like what their actual purpose is
- LeonM 9y agoA dead comment by user 'simoooo': > As a noob observing..Many of them seem to have names nothing like what their actual purpose is Having worked a bit with low level kernel stuff (porting a unix OS to a new platform), I understand his observation. Even after working with the kernel for a while, many names don't really make sense. Mandatory quote of Phil Karlton: > There are only two hard things in Computer Science: cache invalidation and naming things.
- nikomen 9y agoOut of curiosity, do you know of any examples of seemingly misnamed objects in the kernel?
- hyper_reality 9y agoNot exactly an object 'inside' the kernel, but I was recently caught out by the fact that /proc/net/snmp doesn't have much to do with the SNMP protocol. Rather it tracks socket statistics for IP, ICMP, TCP, and UDP, and is one of the sources of information for the netstat utility.
- roblabla 9y agoMy recent venture in the filesystem have been somewhat fun. The problem isn't so much misnamed objects, and more that the kernel is filled with seemingly undocumented, arcane, old things. `sb_bread` isn't some kind of food, but the "SuperBlock Buffer Read" method, and `brelse` means "Buffer Release" (and not, somethingsomething else, as I initially thought). BH means Buffer Head. The meaning and usage of Buffer Head has changed a lot across Linux versions. It's the basic unit of IO operations, but nowadays most users would use a bio for most of what you would have used a buffer head in the past. When you're working on filesystems you'll have to use BHs to talk to the hard drive though. Linux FS infrastructure and Ext2 share a lot of names. For instance, ext2 and linux both have superblocks, inodes, blocks, etc. They are... logically the same, but at the same time they're very different - one lives purely on the disk, the other provides functions to the kernel. This makes conversation very complicated, when talking about the superblock, you have to mention which superblock you're talking about, because that's not always obvious from context.
- fauria 9y agoLink to PNG image: http://www.makelinux.net/kernel_map/LKM3_2048.png http://www.makelinux.net/kernel_map/LKM3_2048.png
- RickJWagner 9y agoAh, cool! Hacker News paydirt.
- snvzz 9y agoLinux is such a mess that it needs a map. It's no surprise they're paying massive technical debt over it. Work that would take a few hours in a well-structured system does take months on Linux. Isn't surprising either that Dragonfly BSD's outperforming Linux in network throughput, despite its small number of developers. They went for a components as concurrent lockless system servers approach [1] instead of a complex mess of fine-grained locks like Linux (and FreeBSD, following them) did. [1] https://www.dragonflybsd.org/presentations/ https://www.dragonflybsd.org/presentations/
- jimmy1 9y agoI can only imagine what sort of chaos exists in Windows and OSX. Unfortunately I can only do that: imagine, because it is closed source. With Linux, I can at least see the mess, and well, make a map out of it.
- AnIdiotOnTheNet 9y agoI find it annoying that any time someone criticises Linux for something someone has to come and point out that Windows and OSX are also kinda crappy. It's true enough, it's also just useless defensiveness. Maybe the bar we set for ourselves should be a little higher than the stuff everyone complains about?
- jimmy1 9y agoI think you are reading into my stance as defending Linux -- I am not. I am just saying you have to take this criticism into perspective, and consider the alternatives. I find the clamours for the <insert "beautiful" other OS here> equally useless, as they haven't had the success linux has had in the server world, and because of that, I don't care how much more "elegant" another solution is -- it doesn't have the body of work to back it up. Linux is, for now, the best option. If it's a "tangled mess of code" let's figure out how to make it better. After all, it is open source.
- andrepd 9y agoMaybe it's just nigh impossible to build such a complex engineering project and keep it elegant through 25 years of development?
- inetknght 9y ago> Please Enable JavaScript or use plain html Link then goes 404.
- fouc 9y agoFeels like this needs to be a 3D map. 2 dimensions isn't quite cutting it.
- oneweekwonder 9y agoSomething like jscity[0]. [0]: https://github.com/ASERG-UFMG/JSCity/wiki/JSCITY https://github.com/ASERG-UFMG/JSCity/wiki/JSCITY
- std0147 9y agoI love Linux! this map is very useful