Difference between Kernel modules and drivers in Kernel space
-
Hi, what is the difference between Modules and drivers? As far as I can understand Kernel drivers helps kernel to interact with systems hardware components. Essentially every hardware component has a driver that is to be installed on kernel, Kernel sort of acts like a translator. I am not clear on the modules part, what exactly do they do?
-
Modules are binary files that the kernel can load at runtime. They are not necessarily "installed" on the kernel, but they can be statically built into it during compilation (see: /etc/mkinitcpio.conf) if you want them to. Most of the time though, the module is loaded on-demand as required by the kernel.
Drivers are just modules that happen to deal with hardware components and devices, so you pretty much hit the nail on the head there.
Difference: Modules also deal with the software features side of things. The kernel by itself doesn't know how to read filesystems, encrypted storage or root partitions, or LVM setups. It needs to "learn" how to read and write in their languages in order to make meaningful sense of these 1's and 0's.