How does the Linux kernel know which drivers to load at boot?
I'd like to know this for the first boot and for subsequent boots.

I'm compiling my own kernel and want it to be as lean as possible.  I want to build the .config file by hand (mainly as a learning experience), so I need to know everything that can be excluded.  I know a possible solution is to look at my current distros list of loaded drivers.  However, I'm curious about how my distro discovered what drivers to load initially.

TIA.  
How does the Linux kernel know which drivers to load at boot?
===

I'd like to know this for the first boot and for subsequent boots.

I'm compiling my own kernel and want it to be as lean as possible.  I want to build the .config file by hand (mainly as a learning experience), so I need to know everything that can be excluded.  I know a possible solution is to look at my current distros list of loaded drivers.  However, I'm curious about how my distro discovered what drivers to load initially.

TIA.  