找回密码
 注册
搜索
热搜: 超星 读书 找书
查看: 317|回复: 0

[【推荐】] Windows NT系列引导过程

[复制链接]
发表于 2010-3-17 08:26:13 | 显示全部楼层 |阅读模式
了解主流windows系统的结构和原理。
http://bbs.wuyou.com/viewthread.php?tid=157868


Windows 2008/VistaWindows 2000/2003/XP
1) BIOS中的代码选择引导设备(注:这在BIOS中设置;有些新的BIOS可以在开机时按F9来人为干预),例如某一个硬盘。然后去该硬盘的第一个扇区读取MBR
1) BIOS中的代码选择引导设备,并读取MBR中的代码
2) MBR中的code会扫描分区表,找到带有Active标志的那个分区(即活动分区)
2) MBR中的code会扫描分区表,找到带有Active标志的那个分区(即活动分区)
3) 将活动分区的第一个扇区(也就是引导扇区)中的代码读取到内存,并将控制权移交。
3) 将活动分区的第一个扇区(也就是引导扇区)中的代码读取到内存,并将控制权移交。
4) 引导扇区中的代码做:i) 读取Volume的结构和格式,ii) 并从根目录读取Bootmgr
4) 引导扇区中的代码:i) 读取Volume的结构和格式,ii) 并从根目录读取ntldr
5) 如果找不到bootmgr,则显示出错信息“BOOTMGR is missing ” (注:Vista/2008的引导分区必须是NTFS)
5) 如果找不到ntldr,引导区是FAT时显示“BOOT: Couldn't find NTLDRP”,引导区是NTFS时显示“NTLDR is missing”
6) Bootmgr运行在x86 real mode,也就是没有 physical-virtual内存的转换,都直接用物理内存寻址。这时候只有最低位的1MB内存可以访问
6) 此时NTLDR运行在x86 实模式,此时仍没有物理-虚拟内存地址的转译
7) Bootmgr的第一个动作就是将模式转换成保护模式(protected mode)。等到最低16MB内存都能访问了,Bootmgr就启用paging。带有paging enable的保护模式,就是windows运行的常态。
7) NTLDR的第一个动作就是将模式转换成保护模式(protected mode)。等到最低16MB内存都能访问了,Bootmgr就启用分页机制(paging)
8) 运行在保护模式下的bootmgr这时候仍然依靠BIOS中的驱动程序来访问IDE硬盘和控制显示。与引导扇区代码不同的是,此时bootmgr已经可以认子目录了
8) 此时,NTLDR仍然依靠BIOS中的驱动程序来访问IDE硬盘和控制显示。与引导扇区代码不同的是,此时NTLDR已经可以认子目录了
9) Bootmgr 清屏(这个时候你将看见一个黑色的屏幕)
9) NTLDR清屏(这个时候你将看见一个黑色的屏幕)
10) 如果上次关机时选择的是Hybernating状态,则将控制权移交给winresume.exe
10) 如果系统卷根目录下存在一个有效的hiberfil.sys文件,将此文件读入内存,并将控制权交给一段能恢复休眠状态的代码。
11) Bootmgr读取BCD,如果其中只有唯一的项,则跳过引导菜单。否则显示引导菜单。
11) 从根目录下读取boot.ini,如果其中只有唯一的引导项,则跳过引导菜单。否则显示引导菜单。
12) 读BCD中的引导入口信息(boot entry point),通常这是\\Windows目录。
(2008/Vista不同时支持DOS)
12) boot.ini中的选项告诉NTLDR,被选中的Windows系统驻留在那个分区;
12.1) 如果boot.ini指向一个MS-DOS系统,NTLDR将bootsect.dos文件内容读入内存,并切换回16位实模式;Bootsect.dos中的代码继续进行MS-DOS的引导过程。
13) 运行Winload.exe 并将控制权移交。
13) NTLDR清除屏幕。并(Windows 2000)显示“Starting Windows”进度条。进度条下显示“For troubleshooting and advanced startup options for Windows, Press F8”。此时按下F8,可以进入一个菜单,包括选择安全模式。
(Windows 2003/XP),显示带Windows Logo的启动屏幕。

运行ntkrnl???
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|网上读书园地

GMT+8, 2024-11-18 00:46 , Processed in 0.190468 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表