Timeline for Why is the Linux kernel 15+ million lines of code?
Current License: CC BY-SA 3.0
11 events
| when toggle format | what | by | license | comment | |
|---|---|---|---|---|---|
| Jul 10, 2017 at 18:09 | comment | added | gornvix | What is "arch/" ? | |
| Aug 18, 2015 at 20:08 | comment | added | Tim Post | A non-modular kernel makes quite a bit of sense when deploying to servers, especially many identical ones .. unless you really do have a printer, sound system and CueCat hooked up to each one. The total LOC in the kernel is just the ceiling on the insanity you can reach building it. Most systems using the Linux kernel will only load what a hardware probe reveals, which is far less than 'all of it'. | |
| Aug 18, 2015 at 14:32 | comment | added | goldilocks | @JonathanLeaders As I think you've realized, the LOC in the source is more or less irrelevant. If you want to know how much memory the kernel uses there are much more direct ways. | |
| Aug 18, 2015 at 7:25 | comment | added | Luaan | @JonathanLeader I remember when Linux was starting - even getting the installer to work (if it even had an installer!) was a massive pain - there's still some distros where you have to pick your mouse driver manually. Making things like networking or, god forbid, X-window, work, was a rite of passage. On my first Red Hat installation, I had to write my own graphics driver, because there were only three (!) drivers available. Having basics work by default is a sign of maturity - and obviously, you can afford a lot more tweaking on an embedded system, where there's only a few HW combinations. | |
| Aug 17, 2015 at 20:34 | comment | added | psmears | @JonathanLeaders: Yes - and as well as modules for strange devices, there are modules for obscure filesystems, networking protocols, etc... | |
| Aug 17, 2015 at 18:22 | comment | added | Jonathan | I think from this we can conclude Linux kernel is massive because it supports all sorts of device configurations, not because it's outrageously complex. We see here that very little of the 15m lines are actually in use. Although, as nearly all things are, it may be overly complex, at least we can sleep at night knowing it's within reason | |
| Aug 17, 2015 at 18:14 | comment | added | Alex | counting modules isn't enough, a lot maybe builtin by config | |
| Aug 17, 2015 at 18:06 | comment | added | jimmij | My gentoo-4.0.5: lsmod | wc -l: 12 (one line is header), find /lib/modules/$(uname -r)/ -name '*.ko' | wc -l: 48. | |
| Aug 17, 2015 at 17:58 | comment | added | Jonathan | Okay, so that's just over 5% of the driver modules actually in use. Now we're making more sense. So perhaps the rest of the code also may have similarly small percentages of 'in use' on a device. | |
| Aug 17, 2015 at 17:45 | comment | added | Jonathan | I see, so there is a lot of 'culling' or dynamic loading taking place. That makes me feel a lot better. So in reality, maybe a very small portion of the driver code base would actually be in use on one single device at a time. To verify that, do you know a way to tell how many modules possibly exist? You said 158 are running, but out of how many? | |
| Aug 17, 2015 at 17:42 | history | answered | user4443 | CC BY-SA 3.0 |