As describe here kvm is automaticaly loaded on boot on cpus which support hardware virtualization.
If you don't need virtualization you can disable VT-d/AMD-V in your BIOS to prevent module kvm to load on boot
Build as module allows you to have a faster boot by loading only specific features onboot. It does not guarantee to you that a module will not be loaded. If a ressource need this module it could be loaded directly by the binary like
nf_conntrack is an iptables modules which allows you to track connections through the firewall
CONFIG_NF_CONNTRACK=m. This module will not be loaded unless you add a rule using
My computer have an ethernet card using driver
grep CONFIG_E1000 /boot/config-4.15.0-91-generic
It shows me the
e1000 driver is built as module.
modinfo e1000 | alias will gives all aliases that will load the kernel module automatically
Since my ethernet card is an intel (VendorID 8086) it matches to the alias, so the module is loaded as shown in
[ 1.520584] e1000e: Intel(R) PRO/1000 Network Driver - 3.2.6-k
All the modules you see in
lsmod after a fresh boot were used during the boot process.