现在的位置: 首页 > 综合 > 正文

《深入解析Windows操作系统第4版》随笔记录05

2018年02月07日 ⁄ 综合 ⁄ 共 2867字 ⁄ 字号 评论关闭

条目1、Windows早在安装程序执行过程中把一段将会参与引导过程的代码和相关数据写入到硬盘的第一个扇区,这些数据和代码称为主引导记录(MBR),MBR包括引导代码和一张主分区表,主分区表有四个表项,分别定义了该磁盘上主分区所在的位置(P251 ~ P252)

条目2、每个硬盘最多包含4个主分区,每个主分区最多包含四个扩展分区,扩展分区可以包含扩展分区以此类推。(P252)

条目3、当计算机引导时,BIOS依据其设置选择一个引导设备,将该设备的MBR读入内存中,然后将控制权交给MBR中的代码。MBR扫描主分区表,找到一个包含可引导标识的分区(引导分区),读入该分区第一个扇区(引导扇区)到内存中,并且将控制权交给它。(P253)

条目4、当Windows Setup将MBR写入到硬盘上的时候,它也会在该磁盘的第一个可引导分区中写入一个引导扇区。Windows Setup在写一个分区的引导扇区以前,用一种你所指定的文件系统类型来格式和此引导分区,然后把Windows用到的一些文件(包括:Ntldr和Ntdetect.com)拷贝到该引导分区(系统卷)中。Setup程序的另一项任务是创建一个引导菜单文件Boot.ini。(P254)

条目5、Setup程序在写一个引导扇区以前,必须知道分区的格式,因为引导扇区的内容会随着分区格式的不同而不同。(P255)

条目6、引导扇区代码的职责是,给Windows提供有关卷的结构和格式方面的信息,并且从该卷的根目录中读入Ntldr文件,然后把控制权交给Ntldr的入口点。(P255)

条目7、Ntldr采取的第一个动作时,将系统切换到保护模式,接下来Ntldr利用内置的文件系统代码,从根目录下读入Boot.ini文件,清除屏幕,根据Boot.ini中的多个引导选择项,向用户展示一个引导选择菜单。(P256)

条目8、Ntldr启动了分页机制以后,它仍然依赖于引导代码所提供的函数来访问基于IDE的系统,以及引导磁盘和显示器。(P256)

条目9、在Boot.ini中包含的所有选项都保存在注册表值HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/SystemStartOptions中。XP中引入的Bootcfg.exe工具提供了一个便利的界面来设置各种开关。(P257)

条目10、一旦Boot.ini中引导选择项被确定下来,Ntldr加载并执行Ntdetect.com,这是一个16位实模式程序,它使用系统的BIOS来查询该系统的基本设备和配置信息。这些信息被收集到内部数据结构中,到引导过程的后期,它们被存放在HKEY_LOCAL_MACHINE/HARDWARE/DESCRIPTION注册表键的下面。(P263)

条目11、如果Ntldr运行在一个x64系统上,并且在引导菜单中选中的项目所指定的内核是针对64位的,那么Ntldr将处理器切换到长模式(字长64位),接下来,Ntldr从引导卷中加载必要的文件,以便开始内核初始化。Ntldr遵从的步骤如下:(P263-P264)

(1)加载正确的内核和HAL映像(默认是Ntoskrnl.exe和Hal.dll)。

(2)读入SYSTEM注册表储巢/WINDOWS/system32/config/System(所谓储巢是指包含了一棵注册表子树的文件),以确定哪些设备驱动必须被加载进来,才能完成这次引导。

(3)扫描内存中的SYSTEM注册表储巢,找到所有的引导设备驱动程序(列表)。

(4)加载为了访问系统目录而需要的文件系统驱动程序。

(5)加载所有的引导驱动程序。注意:这个时候这些驱动程序只是被加载但没有初始化。
(6)准备CPU寄存器,以便执行Ntoskrnl.exe。

条目12、IA64引导过程:(P265)

(1)引导加载器代码(在安装时刻被编进了系统的非易失性RAM)读入Boot.ini内容。

(2)引导加载器使用EFI接口执行硬件检测。

(3)显示一个引导选择菜单。

(4)根据引导选择项,加载器转移到该选择项所对应的EFI系统分区上的子目录下,并将其他一些为了继续引导而必须的文件加载进来,这些文件是:Fpswa.efi和Ia64ldr.efi。

(5)Ia64ldr.efi负责加载Ntoskrnl.exe、Hal.dll,加载引导设备驱动程序列表。

(6)之后的引导过程完全遵从x86/x64系统。

条目13、Smss是一个原生(native)应用程序,它只是用核心执行体API,Smss首要的任务之一是启动Windows子系统。(P269)

条目14、在引导和登录过程中,默认的系统组件还会检查许多其他的注册表位置和目录,以处理自动的进程启动事项。Autoruns工具(下载:http://technet.microsoft.com/en-us/sysinternals/bb963902.aspx)可以显示有关自动启动映像文件的信息。通过它,用户可以了解在登录过程中有多少程序被执行起来。

条目15、安全模式是指由最小集合的设备驱动程序和服务构成的一种引导配置。有四种变化模式:安全模式,支持网络的安全模式、支持命令提示的安全模式、目录服务恢复模式。(P275)

条目16、HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/SafeBoot键下的子键Minimal和Network分别包含了标准安全模式与支持网络的安全模式它们应该加载的设备驱动程序和服务。(P275)

条目17、系统定义的驱动程序组位于HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/ServiceGroupOrder键的List值中。(P275)Windows访问系统分区所需要的任何一个文件系统驱动程序都在Boot File System组中。其他文件系统驱动程序都属于File System组(P276)

条目18、能感知安全模式的用户程序有服务控制管理器(SCM)、Userinit(/Windows/System32/Userinit.exe),SCM根据HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/SafeBoot/Option/OptionValue的值来确定。Userinit根据HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Control/SafeBoot/Option/UseAlternateShell的值来确定。一个应用程序可以通过调用GetSystemMetrics(SM_CLEANBOOT)函数判断当前系统是否在安全模式下。(P277)

条目19、恢复控制台允许你利用Windows CD或者引导磁盘,将系统引导到一个受限的命令行外壳中,以便在未启动已安装的系统的情况下修复该系统。(P279)

抱歉!评论已关闭.