The Linux kernel in all of its entirety is a massive beast. If you wish to compile it as a monolithic kernel of course. Fortunately the kernel can be compiled in a modular fashion. This makes both the memory resident part of the kernel smaller and allows the device drivers to be loaded, unloaded and changed on the fly.
So why do most distributions update the whole kernel when support for new devices come along? As the kernel is modular and as most distributions work on that premise wouldn't it be smarter to just send updates for the effected modules?
I can say one thing and that is for bandwidth purposes it would be smarter. When you are talking the difference between a thirty plus megabyte download compared to a few kilobytes for a single module that would be a huge saving in bandwidth. As you know, on the internet, bandwidth equals money.
However I think that the reason most distributions do not separate the modules from the kernel core is packaging. When you consider that the kernel is mostly modules it is easier to lump them all together in one package than have hundreds of separate packages which would make for confusing choices in deciding what exactly to download. With most packages though there are some things called dependencies which if done correctly would make those choices easier. Then when a new device needs support or a bugfix needs to be applied to a particular module then only the module needs to be updated.
For this to happen the changes need to be done at the top of the tree. The vanilla source code needs to be split up into a core kernel with independently updateable modules. This would allow for both better management and faster updating.
There is one example of how this could be done. That is the xorg project. Before they started the X11 server was a giant four package download where all were needed to compile X11. Everything was compiled whether you needed it or not and if you really didn't want to compile some driver you had to fiddle around with some confusing configuration files. Then the xorg project started where they split the X11 server into multiple modules where you only needed to download and compile what you needed. This also allowed the project to move forward faster than the original X11 server was.
What do you think? Should the Linux kernel be separated into a core package with multiple module packages? Or should it stay as a single huge download that must be downloaded every time a new piece of hardware is released or a bug is fixed? Which is the smarter move?
- Locutus's blog
- Add new comment
- 1342 reads

Sounds like a great idea to me!
Sounds like a great idea to me - good points, well made!
I think it would be easy
I think it would be easy to separate the kernel modules.
I don't think the question is
I don't think the question is a viable topic, as it seems that releases contain many "random" little fixes. Releasing modules and kernel core "sources" would be a nightmare for manageability.