I think I understand it. It seems there are two kinds of hardware drivers on linux:
1. Drivers that are provided by the kernel itself
2. Drivers that are provided by kernel modules. When kernel is being compiled, the user can choose whether each given module is a
2a. Built-in module (i.e., always loaded because it is statically linked to the kernel) or an
2b. External module (i.e., only loaded when needed)
Tools such as lsmod and modprobe only deal with external modules, but /sys/module/ shows both built-in and external modules.
Does the above seem correct?
P.S. It seems that the above narrative still doesn't explain everything. If the built-in modules (i.e., those listed in the modules.builtin file) are always loaded, how come I only see some of them in the /sys/module directory?