hhfmath - 2009-8-23 21:01:00
该用户帖子内容已被屏蔽
漫天飘雪 - 2009-8-23 21:12:00
一般情况系统的引导过程是这样的: 代码
1、电源自检程序开始运行
2、主引导记录被装入内存,并且程序开始执行
3、活动分区的引导扇区被装入内存
4、NTLDR从引导扇区被装入并初始化
5、将处理器的实模式改为32位平滑内存模式
6、NTLDR开始运行适当的小文件系统驱动程序。
小文件系统驱动程序是建立在NTLDR内部的,它能读FAT或NTFS。
7、NTLDR读boot.ini文件
8、NTLDR装载所选操作系统
如果NT/XP被选择,NTLDR运行Ntdetect.com ,对于其他的操作系统,
NTLDR装载并运行Bootsect.dos然后向它传递控制。
windows NT过程结束。
夲號ヱ被ジ盜 - 2009-8-23 21:14:00
~聪明豆 - 2009-8-24 15:24:00
当我们按下电源开关时,电源就开始向主板和其它设备供电。这个时候电压还不太稳定, 主板上的控制芯片组会向CPU发出并保持一个RESET(重置)信号,让CPU内部自动恢复到初始状态,但 CPU在此刻不会马上执行指令直到芯片组检测到电源已经开始稳定供电了撤去RESET信号CPU才开始工作首 先从地址FFFF0H处开始执行指令。无论是Award BIOS还是AMI BIOS,放在这里的都只是一条跳转指令,跳 转到系统BIOS中真正的启动代码处。 BIOS的启动代码接到指令以后立刻就执行POST加电自检。POST的主要任务是检测系统中一 些关键设备是不是存在,状态是否正常。简单的说就是看看电脑配件都能干活不。如果系统BIOS在进行 POST的过程中发现了一些致命错误,例如没有找到内存或者内存有问题(此时只会检查640K常规内存), 那么系统BIOS就会直接控制喇叭发声来报告错误,声音的长短和次数代表了错误的类型。在正常情况下, POST过程进行得非常快,我们几乎无法感觉到它的存在POST结束之后就会调用其它代码来进行更完整的硬 件检测。 通过查找各设备的BIOS确认硬件正常以后。系统BIOS将显示出它自己的启动画面,其中包 括有系统BIOS的类型、序列号和版本号等内容。最后BIOS会把控制权转移,加载Windows XP的NTLDR文件 首先,计算机要经过初始引导加载器阶段(Initial Boot Loader),在这个阶段里, NTLDR将计算机微处理器从实模式转换为32位平面内存模式。在实模式中,系统为MS-DOS保留640kb内存, 其余内存视为扩展内存,而在32位平面内存模式中,系统(Windows XP Professional)视所有内存为可 用内存。接着,NTLDR启动内建的mini-file system drivers,通过这个步骤,使NTLDR可以识别每一个用 NTFS或者FAT文件系统格式化的分区,以便发现以及加载Windows XP Professional,到这里,初始引导加 载器阶段就结束了。 如果计算机安装了不止一个操作系统(也就是多系统),而且正确设置了 boot.ini使系统提供操作系统选择的条件下,计算机显示器会显示一个操作系统选单,这是NTLDR读取 boot.ini的结果。然后又是硬件检测ntdetect.com将收集计算机硬件信息列表并将列表返回到NTLDR,这 样做的目的是便于以后将这些硬件信息加入到注册表HKEY_LOCAL_MACHINE下的hardware中。接下来是加载 系统内核,ntldr加载称为Windows 内核的ntokrnl.exe。系统加载了Windows 内核但是没有将它初始化。 接着ntldr加载硬件抽象层(HAL,hal.dll),然后,系统继续加载HKEY_LOCAL_MACHINE\system键, NTLDR读取select键来决定哪一个Control Set将被加载。控制集中包含设备的驱动程序以及需要加载的服 务。NTLDR加载HKEY_LOCAL_MACHINE\system\service\...下start键值为0的最底层设备驱动。当作为 Control Set的镜像的Current Control Set被加载时,ntldr传递控制给内核。 在初始化内核阶段开始的 时候,彩色的Windows XP的logo以及进度条显示在屏幕中央,在这个阶段,系统完成了启动的4项任务: 内核使用在硬件检测时收集到的数据来创建了HKEY_LOCAL_MACHINE\HARDWARE键。内核通过引用 HKEY_LOCAL_MACHINE\system\Current的默认值复制Control Set来创建了Clone Control Set。Clone Control Set配置是计算机数据的备份,不包括启动中的改变,也不会被修改。系统完成初始化以及加载 设备驱动程序,内核初始化那些在加载内核阶段被加载的底层驱动程序,然后内核扫描 HKEY_LOCAL_MACHINE\system\CurrentControlSet\service\...下start键值为1的设备驱动程序。这些设 备驱动程序在加载的时候便完成初始化,如果有错误发生,内核使用ErrorControl键值来决定如何处理, 值为3时,错误标志为危机/关键,系统初次遇到错误会以LastKnownGood Control Set重新启动,如果使 用LastKnownGood Control Set启动仍然产生错误,系统报告启动失败,错误信息将被显示,系统停止启 动;值为2时错误情况为严重,系统启动失败并且以LastKnownGood Control Set重新启动,如果系统启动 已经在使用LastKnownGood值,它会忽略错误并且继续启动;当值是1的时候错误为普通,系统会产生一个 错误信息,但是仍然会忽略这个错误并且继续启动;当值是0的时候忽略,系统不会显示任何错误信息而 继续运行 Session Manager启动了Windows 高级子系统以及服务,Session Manager启动控制所有输入、 输出设备以及访问显示器屏幕的Win32子系统以及Winlogon进程,初始化内核完毕。 . Winlogon.exe启动Local Security Authority,同时Windows XP Professional欢迎屏幕 或者登陆对话框显示,这时候,系统还可能在后台继续初始化刚才没有完成的驱动程序。 提示输入有效的用户名或密码。Service Controller最后执行以及扫描 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Servives来检是否还有服务需要加载,Service Controller查找start键值为2或更高的服务,服务按照start的值以及DependOnGroup和 DepandOnService的值来加载。 . 只有用户成功登陆到计算机后,Windows 的启动后,才被认为是完成,在成功登陆系统拷贝Clone Control Set到LastKnownGood Control Set,完成这一步骤后,系统才意味着已经成功引导了。到这里我 们终于见到熟悉的蓝天白云了。
© 2000 - 2025 Rising Corp. Ltd.