Windows XP 启动过程详解
2006-12-08 08:25:02 来源:WEB开发网在这一阶段,Ntldr会载入Windows XP的内核文件:Ntoskrnl.exe,但这里仅仅是载入,内核此时还不会被初始化。随后被载入的是硬件抽象层(hal.dll)。
硬件抽象层其实是内存中运行的一个程序,这个程序在Windows XP内核和物理硬件之间起到了桥梁的作用。正常情况下,操作系统和应用程序无法直接与物理硬件打交道,只有Windows内核和少量内核模式的系统服务可以直接与硬件交互。而其他大部分系统服务以及应用程序,如果想要和硬件交互,就必须透过硬件抽象层进行。
小知识:为什么要使用硬件抽象层
硬件抽象层的使用主要有两个原因:1,忽略无效甚至错误的硬件调用。如果没有硬件抽象层,那么硬件上发生的所有调用甚至错误都将会反馈给操作系统,这可能会导致系统不稳定。而硬件抽象层就像工作在物理硬件和操作系统内核之间的一个过滤器,可以将认为会对操作系统产生危害的调用和错误全部过滤掉,这样直接提高了系统的稳定性;2,多平台之间的转换翻译。这个原因可以列举一个形象的例子,假设每个物理硬件都使用不同的语言,而每个操作系统组件或者应用程序则使用了同样的语言,那么不同物理硬件和系统之间的交流将会是混乱而且很没有效率的。如果有了硬件抽象层,等于给软硬件之间安排了一位翻译,这位翻译懂所有硬件的语言,并会将硬件说的话用系统或者软件能够理解的语言原意转达给操作系统和软件。通过这个机制,操作系统对硬件的支持可以得到极大的提高。
硬件抽象层被载入后,接下来要被内核载入的是HKEY_LOCAL_MACHINESystem注册表键。Ntldr会根据载入的Select键的内容判断接下来需要载入哪个Control Set注册表键(图2),而这些键会决定随后系统将载入哪些设备驱动或者启动哪些服务。这些注册表键的内容被载入后,系统将进入初始化内核阶段,这时候ntldr会将系统的控制权交给操作系统内核。
更多精彩
赞助商链接