Windows XP 启动过程详解

发表于:2010-4-22 10:07

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

  我们每天都在和Windows打交道,很多人可能每天都要面对多次Windows的启动过程,可是您知道在Windows的启动过程背后,隐藏着什么秘密吗?在这一系列过程中都用到了哪些重要的系统文件?系统的启动分为几个步骤?在这些步骤中计算机中发生了什么事情?这些就是本文试图告诉您的.

  本文的适用范围

  随着技术的发展,我们能够见到的计算机硬件种类越来越多。以计算机上最重要的组件CPU来说,目前就有很多选择。当然,这里的选择并不是说AMD或者Intel这种产品品牌,而是指其内部的体系结构。目前常见的CPU体系结构主要基于复杂指令集(Complex Instruction Set Computing,CISC)或者精简指令集(Reduced Instruction Set Computing,RISC),我们常用的Intel的Pentium、Celeron系列以及AMD的Athlon、Sempron系列都是基于复杂指令集的,而这些基于复杂指令集的CPU还有32位和64位的寄存器数据带宽区别。关于这些指令集以及寄存器数据带宽之间的区别等内容比较繁杂,而且不是本文的重点,感兴趣的朋友可以自己在网上搜索相关内容。因为CPU种类的不同,在不同CPU的系统中运行的Windows的启动过程也有一些小的不同。本文将会以目前来说最普遍的,在x86架构的系统上安装的32位Windows XP Professional为例向您介绍。

  如果Ntldr检测到系统中创建了多个硬件配置文件,那么它就会在这时候将所有可用的配置文件列表显示出来,供用户选择。这里其实和操作系统的选择类似,不管系统中有没有创建多个配置文件,Ntldr都会进行这一步操作,不过只有在确实检测到多个硬件配置文件的时候才会显示文件列表。载入内核阶段

  在这一阶段,Ntldr会载入Windows XP的内核文件:Ntoskrnl.exe,但这里仅仅是载入,内核此时还不会被初始化。随后被载入的是硬件抽象层(hal.dll)。

  硬件抽象层其实是内存中运行的一个程序,这个程序在Windows XP内核和物理硬件之间起到了桥梁的作用。正常情况下,操作系统和应用程序无法直接与物理硬件打交道,只有Windows内核和少量内核模式的系统服务可以直接与硬件交互。而其他大部分系统服务以及应用程序,如果想要和硬件交互,就必须透过硬件抽象层进行。

  小知识:为什么要使用硬件抽象层

  硬件抽象层的使用主要有两个原因:1,忽略无效甚至错误的硬件调用。如果没有硬件抽象层,那么硬件上发生的所有调用甚至错误都将会反馈给操作系统,这可能会导致系统不稳定。而硬件抽象层就像工作在物理硬件和操作系统内核之间的一个过滤器,可以将认为会对操作系统产生危害的调用和错误全部过滤掉,这样直接提高了系统的稳定性;2,多平台之间的转换翻译。这个原因可以列举一个形象的例子,假设每个物理硬件都使用不同的语言,而每个操作系统组件或者应用程序则使用了同样的语言,那么不同物理硬件和系统之间的交流将会是混乱而且很没有效率的。如果有了硬件抽象层,等于给软硬件之间安排了一位翻译,这位翻译懂所有硬件的语言,并会将硬件说的话用系统或者软件能够理解的语言原意转达给操作系统和软件。通过这个机制,操作系统对硬件的支持可以得到极大的提高。

  硬件抽象层被载入后,接下来要被内核载入的是HKEY_LOCAL_MACHINESystem注册表键。Ntldr会根据载入的Select键的内容判断接下来需要载入哪个Control Set注册表键(图2),而这些键会决定随后系统将载入哪些设备驱动或者启动哪些服务。这些注册表键的内容被载入后,系统将进入初始化内核阶段,这时候ntldr会将系统的控制权交给操作系统内核。

41/41234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号