Kernel source tree

Built-in or loadable module

To avoid recompiling the kernel each time a new device is installed drivers can be loaded as kernel modules. The modules can be in the initial ram disk so that the kernel is not compiled with a potentially high number of fs modules (ext4, reiser …) => initrd allows a same build to run in several machine configurations

To load a module into the kernel

Linux_High_Level.svg