For more half-baked ideas, see the ideas tag.
The Linux kernel:
5 MB of highly optimized code that runs the world’s computers. You can copy it around and boot it on different hardware.
No wait, that’s all wrong. I’m forgetting about the modules. There are another 2832 files in
/lib/modules/3.11.9-200.fc19.x86_64 and without them this kernel will hardly function.
It’s nice to be able to copy the kernel around — to compile it on fast x86-64 and run it on slow ARM, or to run the host kernel in a VM, but all those module files make everyone’s lives a lot more complex.
So my half-baked idea is this:
Combine all the modules into a single file, let’s call it
/boot/modules-3.11.9-200.fc19.x86_64. This file might start off as an ext4 filesystem which can be loopback-mounted on /lib/modules. Eventually I’d hope that the module tools could load modules from the file directly.
Now you can happily cross-compile and copy just two kernel files from x86 to ARM or into your VMs, and that’s a lot less hassle.