- 1、本文档共50页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
os启动的第一步boot loader
OS启动的第一步Boot Loader 刘 吟 Outline OS启动的第一原动力:BIOS 最简单的Boot Loader:FDISK /MBR 如何引导OS:DOS Boot Loader 硬盘寻址方式:CHS vs LBA 支持多OS引导的Boot Loader 实例分析:Grub OS启动的第一原动力:BIOS CPU的初始化 主机加电后,启动时钟发生器,在总线上产生POWERGOOD信号 CPU收到RESET信号,进入初始化过程 CPU转入8086实模式 DS = ES = FS = GS = SS = 0 CS = 0xFFFF IP = 0XFFF0 进入BIOS加电自检过程(Power On Self Test) OS启动的第一原动力:BIOS BIOS初始化 关中断,进行所有的POST检测 将中断向量表的起始地址设为0x0000H 0x0000H~0x03FFH中存放了256个中断 建立了实模式下的中断向量表 BIOS的启动程序调用INT 19h中断 将控制权转移给Boot Loader OS启动的第一原动力:BIOS INT 19h中断的功能 INT 19h按照BIOS中的启动设备顺序查询每个启动设备 在软盘的启动扇区或者硬盘的MBR中有Boot Loader,那么这个扇区的最后两个字节必然为0xAA55。BIOS将这个扇区(512个字节)读入内存的0000:7C00开始的位置,然后跳转到内存0000:7C00的地方开始执行 如果在所有的启动设备上都找不到Boot Loader,那么就调用INT 18h,将控制权交给BIOS ROM Basic,锁定机器,并且在屏幕上显示NO BOOT DEVICE AVAILABLE OS启动的第一原动力:BIOS 结论 Boot Loader应当存放在启动设备的第一个扇区中,对于硬盘是MBR,对于软盘是启动扇区 安装了Boot Loader的启动扇区的最后两个字节必须为0xAA55 BIOS在POST过程结束以后,调用INT 19h中断,将Boot Loader读入内存0000:7C00处。然后释放控制权,跳转到0000:7C00开始执行Boot Loader的代码 Outline OS启动的第一原动力:BIOS 最简单的Boot Loader:FDISK /MBR 如何引导OS:DOS Boot Loader 硬盘寻址方式:CHS vs LBA 支持多OS引导的Boot Loader 实例分析:Grub 最简单的Boot Loader:FDISK /MBR 硬盘的分区表结构 第一个扇区为MBR 一个硬盘上最多有4个主分区 第一个主分区一般从cylinder 0, head 1, sector 1开始 cylinder 0, head 0, sector 2~n一般来说保留不用 其余的主分区一般从cylinder x, head 0, sector 1开始 最简单的Boot Loader:FDISK /MBR Master Boot Record 位于硬盘的cylinder 0, head 0, sector 1的位置 大小为512字节 其中存放了4个主分区的入口,每个入口占16个字节 最后两位为启动标志,如果MBR中有Boot Loader的话,则为0xAA55 留给Boot Loader的空间为512-16x4-2=446字节 最简单的Boot Loader:FDISK /MBR 使用FDISK /MBR指令对MBR做的修改 将一个最简化的Boot Loader写入MBR 0x0000h~0x008Ah为MBR代码 0x008Bh~0x00D9h为MBR消息 0x01BEh~0x01FEh中的主分区入口表保持不变 向0x01FEh写入0xAA55标志 最简单的Boot Loader:FDISK /MBR MBR中的Boot Loader的功能 初始化,将自身搬移到0000:0600的位置 在主分区入口表中寻找活动的分区 调用INT 13h AH=02将活动的分区的启动扇区读入内存0000:7C00处 跳转到0000:7C00处执行活动分区的启动扇区中的代码 最简单的Boot Loader:FDISK /MBR 初始化,将自身搬移到0000:0600的位置 0000:7C00 CLI 关中断 0000:7C01 XOR AX,AX 0000:7C03 MOV SS,AX 将堆栈段(SS)设为0 0000:7C05 MOV SP,7C00 将栈顶指针(SP)设置为7C00 0000:7C08 MOV SI,SP 将SI也设为7C00 0000:7C0A PUSH AX 0000:7C0B POP ES 将ES设为0000 0
您可能关注的文档
- mx-m3658n_m4658n_m5658n彩页.pdf
- nbxj2017002-无锡市中医医院风冷热泵机组维保服务询价公告.doc
- ncsp论着模板 - new century science press.doc
- n ̄甲基二乙醇胺用量对水性阳 ̄非离子聚氨酯溶液性能 - 高分子学报.pdf
- nextgen网络化航空气象服务研究进展及启示.pdf
- ngc 系列控制与监测系统 - 工业.pdf
- nirstm da1650 油脂压榨分析仪直接分析固体和液体样品 - foss.pdf
- nk-1 n-1 anova 的f-test anova 的f-test.ppt
- nm-02 玻璃温度计读数装置安装使用说明书.pdf
- now and forever:急性肾损伤之长期影响 - taiwan society of internal .pdf
- 2025年天津市北辰医院招聘高级专业技术人员(1人)考前自测高频考点模拟试题及参考答案详解1套.docx
- 2025年内蒙古自治区高校毕业生社区民生工作志愿服务计划招募(5000人)模拟试卷及参考答案详解.docx
- 2025广西柳州市考试录用公务员(人民警察)体能测评考前自测高频考点模拟试题参考答案详解.docx
- 2025河南省水利第一工程局集团有限公司招聘49人考前自测高频考点模拟试题及答案详解一套.docx
- 2025广东社会科学大学招聘2人考前自测高频考点模拟试题及参考答案详解一套.docx
- 2025年广西东兴国家重点开发开放试验区管理委员会招聘东兴产业园区员额制人员 (第一批非编制人员)(.docx
- 2025安徽六安市人民医院招聘69人考前自测高频考点模拟试题含答案详解.docx
- 2025广东佛山市高明区招聘中小学教师61人(第四场,编制)考前自测高频考点模拟试题带答案详解.docx
- 2025年锡林郭勒盟盟直事业单位引进急需紧缺人才的(85人)模拟试卷附答案详解.docx
- 2025广东清远市连州市教育局招聘高中教师10人(编制)考前自测高频考点模拟试题及参考答案详解一套.docx
文档评论(0)