How Linux Kernel Understands Which Driver it should load for a specific hardware?
Sorry for newbie question!
Actually after more than 10 years of using Linux and even developing several linux kernel drivers, when I ask this question from myself, still I can't give a clear answer to it.
In a fairly new Kernel, 3.0 or newer,
Suppose you have a usb device.
And a bunch of .ko drivers in /lib/modules folder.
You attach the usb device to your system.
How does the linux mechanism decides which USB driver it should load into the kernel?
So, the driver gets loaded before an event get dispatched to udev.
I want to know who is loading the driver?