你的问题不是一两句话就可以说清楚的.
简单的说:
1:系统启动时是先读BIOS上的信息的,之后通过boot loader加载和解压内核,内核尝试驱动硬件,而目前的内核都具有可读取模块化驱动的功能,这之中的驱动模块是由内核驱动,内核和模块是有相依相的,但是如果一个一个地去读取这些模块的信息,然后定义出相依性是不可行的,所以linux提供了一个解决方案,就是检查/lib/modules/'uname -r'/modules.dep这个档案.这过程同时还会参考模块参数档/etc/modprobe.conf(注:旧版的不是这个文件),这就不会加载错模块了.
2:内核启动时在那一步开始加载内核模块?这个没有确定的定义,因为对于系统的启动流程还没有很死的定义步骤,总的来说是在内核驱动硬件那步,当然我们也是可以手动加载模块的.
3:在不重新编译内核的情况下,驱动只能以模块形式加载,你可以使用lsmod命令去查看加载了多少模块. |