the mechanism by which device entries are located and the proper drivers are selected for them. The same mechanism also comes into play (IIRC...) when a USB device is inserted.
A device driver is always "part of the kernel" and it may therefore either be resident, or a loadable module.
Personally, I like to use a bootable-CD distro to determine what drivers are suitable for my system, then specify
those specific drivers in a custom-built kernel. Drivers needed for non-removable hardware are compiled in. Drivers needed for removable hardware that I know I need,
are modules. In this way I am able to eliminate
the "initial RAM disk" step at boot-time altogether. If I don't have
, say, a "DECsystem token-ring adapter card,"
I don't need to build a driver for it and I don't need to search for it at startup time.