电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

WindowsNT引导过程源代码分析VIP免费

WindowsNT引导过程源代码分析_第1页
1/95
WindowsNT引导过程源代码分析_第2页
2/95
WindowsNT引导过程源代码分析_第3页
3/95
Windows 引导过程 Windows 内核中的各个组件和各种机制在起作用以前,必须首先被初始化。此初始化工作是在系统引导时完成的。当用户打开计算机的电源开关时,计算机便开始运行,但操作系统并不立即获得控制权,而是BIOS 代码首先获得控制,它执行必要的硬件检测工作,并允许用户通过一些功能键来配置当前系统中的硬件设置,甚至诊断硬件问题,然后才将控制权交给操作系统。 1.1 内核加载 在 Intel x86 系统上,Windows 操作系统获得控制首先从硬盘的主引导记录(MBR, Master Boot Record)开始,Windows Setup 程序在安装 Windows 时填充MBR(其他的磁盘管理程序也可能填充MBR)。MBR 包含代码和数据,其代码称为引导代码,在系统引导时首先获得控制;MBR 中的数据是一张分区表,指定了每个分区在磁盘上的位置和大小,以及分区的类型。当MBR 中的引导代码被执行时,它检查分区表中的每一个分区,若找到一个已被标记为可引导的分区(称为引导分区),则将该分区的第一个扇区(称为引导扇区)读到内存中。由于分区表包含了每一个分区的磁盘位置,所以,引导扇区的位置很容易被确定。然后MBR 的代码将控制权交给引导扇区中的代码。 ;此处代码摘自 NT4 代码的\priv ate\ntos\boot\bootcode\x 86mboot.asm relocated_org equ 0600h buildtime_org equ 0100h org_delta equ (relocated_org - buildtime_org) _data segment public assume cs:_data,ds:_data org buildtime_org ; 这段代码读出位于主引导记录末尾的分区表,找到标志为可引导的分区,把它的引导扇区拷贝到内存中并执行 start: cli ;开始的时候并没有中断 xor ax,ax mov ss,ax mov sp,7c00h ;位于地址 0:7c00 处的新堆栈 mov si,sp ; 0:7c00 为标准引导地址 push ax pop es push ax sti ;允许中断 cld mov di,relocated_org mov cx,100h rep movsw ;重定位到地址 0000:0600,跳到这里从分区表中读取可引导分区的入口,把引导分区拷贝到内存的标准引导地址(0000:7C00) ; jmp entry2 + org_delta db 0eah dw $+4+org_delta,0 entry2: mov si,(offset tab) + org_delta ;表示分区表 mov bl,4 ;分区表项的个数 next: cmp byte ptr[si],80h ;判断是否是可以引导的入口 je boot ;yes cmp byte ptr[si],0 ;再次判断是否为 0 jne bad ;不是,只有 x"00" 或者 x"80" 是...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

WindowsNT引导过程源代码分析

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部