Kernel
Kernel is just a program which responsible for time sharing, proccess managment and priority, memory managment, checking the rights on a files and so on.
Kernel itself contain only must important things (working with memory, proccesses...). Another functions contain in another programms named - kernel modules. When kernel need to work with usb drive, for example, the kernel adresses to fit module.
The system have a special software named udev which responce for device managment. When kernel see some new device, like USB drive, they create a new event that udev tracks. udev have a lot of rules which store in /usr/lib/udev/rules.d/
For manage modules use modprobe
command.
Some modules may be to compile in kernel, that modules always load into the kernel and can't be unloaded from them.