- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第04章引导启动程序
引导启动程序
Linux/boot/目录
文件名
长度/B
备注
bootsect.S
7574
实模式下运行的16位代码程序,采用近似于Intel的汇编语言语法,需要使用Intel8086汇编编译器和连接器as86和ld86
head.s
5938
使用GNU汇编,运行在保护模式下,使用GNU的as(gas)进行编译
setup.S
12144
实模式下运行的16位代码程序
从系统加电起所执行程序的顺序
启动引导时内核在内存中的位置
引导启动程序
仅在内存中加载上述代码模块并不能让Linux系统运行起来
作为完整可运行的Linux系统还需要有一个基本的文件系统,即根文件系统。
根文件系统通常在另一个软盘或硬盘分区中,bootsect.S程序中设置ROOT_DEV
bootsect.S程序
磁盘引导块程序,驻留在磁盘第一个扇区中。
PC加电、ROM BIOS自检后,BIOS会把bootsect加载到内存0x7C00并执行,执行期间,再将自己移到0x90000处并执行。
功能:把从磁盘第二个扇区开始的4个扇区的setup模块加载到内存紧接着bootsect处(0x90200)
利用BIOS中断0x13取磁盘参数表中当前启动引导盘的参数,在屏幕上显示“Loading system…”
……
bootsect.S程序(续)
把磁盘上system模块加载到内存0x10000处,确定根文件系统的设备号
长跳到setup程序开始处0x90200执行setup程序
分析代码
参见pdf文件
Linux0.12硬盘设备号
逻辑设备号
对应设备文件
说明
0x300
/dev/hd0
代表整个第1个硬盘
0x301
/dev/hd1
代表第1个硬盘的第1个分区
0x304
/dev/hd4
代表第1个硬盘的第4个分区
0x305
/dev/hd5
代表整个第2个硬盘
0x306
/dev/hd6
代表第2个硬盘的第1个分区
0x309
/dev/hd7
代表第2个硬盘的第4个分区
主设备号:内存-1,磁盘-2,硬盘-3,ttyx-4,tty-5,并行口-6,非命名管道-7
硬盘逻辑设备号=主设备号*256+次设备号
Linux内核0.95版后改用现在的命名方法
从硬盘启动系统
系统加电后,硬盘第一个扇区(主引导记录MBR)被BIOS加载到内存0x7c00处并开始执行
程序首先把自己下移到内存0x600处,根据MBR中分区表信息所指明活动分区中第1个扇区(引导扇区)加载到内存0x7c00处,开始执行
setup.S程序
setup.S是一个操作系统加载程序
作用:利用BIOS中断读取机器系统数据,并将这些数据保存到0x90000开始的位置(覆盖掉bootsect程序所在地方)
然后将system模块整体下移到内存绝对地址0x00000处
加载中断描述符表寄存器idtr和全局描述符表寄存器gdtr,开启A20地址线,重设两个中断控制芯片8259A,将硬件中断号重设为0x20-0x2f
设置CPU控制寄存器CR0,进入32位保护模式运行,并跳转到位于system模块最前面部分的head.s程序
分析setup.S源代码
参见pdf文件
head.s程序
在编译生成目标文件后会与内核其他程序一起被连接成system模块,位于system模块的最前面
从这里开始,内核完全在保护模式下运行
采用ATT汇编语言格式,使用GNU的gas和gld编译链接
分析head.s源代码
参见pdf文件
system模块在内存中的映像
Linux内核使用描述符表
本章小结
您可能关注的文档
- 高考作文专项学案之文采飞扬有意蕴.doc
- 表达谱流程简介.ppt
- 表面处理技术概论第7章化学热处理.ppt
- 第03章_运算符与表达式.ppt
- 第03章_栈和队列B.ppt
- 高考命体验磨练题公正的现实困境与两难选择.doc
- 高考历史复习必修一第四单元-近代中国反侵略求民主的潮流.ppt
- 第03章国际均衡(英文习题).doc
- 第03章多用户与多任务管理.pptx
- 第03章字符串运算.ppt
- 2025至2030中国移动治疗台行业发展研究与产业战略规划分析评估报告.docx
- 2025至2030链激酶行业细分市场及应用领域与趋势展望研究报告.docx
- 2025至2030爆炸物探测扫描仪行业市场占有率及有效策略与实施路径评估报告.docx
- 2025至2030四川省智能制造行业细分市场及应用领域与趋势展望研究报告.docx
- 2026届高三二轮复习试题政治大单元突破练1生产资料所有制与分配制度含解析.docx
- 2026届高三二轮复习试题政治大单元突破练16哲学基本思想与辩证唯物论含解析.docx
- 2026届高三二轮复习试题政治大单元突破练2社会主义市场经济体制含解析.docx
- 浙江省衢州市五校联盟2025-2026学年高二上学期期中联考技术试题-高中信息技术含解析.docx
- 浙江省金丽衢十二校2026届高三上学期11月联考政治试题含解析.docx
- 2026届高三二轮复习试题政治大单元突破练7领导力量:中国共产党的领导含解析.docx
原创力文档


文档评论(0)