The Linux kernel as flexible product-line architecture
The Linux kernel source tree is huge ($>$ 125 MB) and inflexible (because it is difficult to add new kernel components). We propose to make this architecture more flexible by assembling kernel source trees dynamically from individual kernel components. Users then, can select what component they really need. Hardware vendors can easily support the Linux platform by providing additional separately developed kernel components. We demonstrate how the kernel's build process can be setup for this approach and how individual build processes look like. We use a technique called <em>source tree composition</em> to assemble source trees of components. We demonstrate how it is automated by the tool autobundle. We also propose a kernel component base as central repository of kernel components. It forms a central meeting point for kernel developers and users.