- 1、本文档共16页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux操作系统下关于引导和初始化的问题
Linux操作系统下关于引导和初始化的问题
系统引导和初始化概述
相关代码(引导扇区的程序及其辅助程序,以x86体系为例):
\linux-2.4.22\arch\i386\boot\bootsect.S:Linux引导扇区的源代码;512字节
\linux-2.4.22\arch\i386\boot\setup.S:辅助程序;
\linux-2.4.22\arch\i386\boot\video.S:辅助程序,用于引导过程中的屏幕显示.
\linux-2.4.22\arch\i386\boot\compressed\head.S,
\linux-2.4.22\arch\i386\boot\compressed\misc.c :用于对内核映像解压缩
\linux-2.4.22\arch\i386\kernel\head.s系统初始化入口
\linux-2.4.22\init\main.c 系统初始化入口
参考文档:\linux-2.5.75\Documentation\i386\boot.txt
过程描述
系统加电,CPU RESET
跳到地址0xFFFFFFF0,此处是BIOS
BIOS完成它的操作把第一扇区的内容读入到0x7c00
就是bootsect.S
把自己移到绝对地址0x90000处,并调转到那里继
续执行
通过BIOS提供的读磁盘调用int 0x13从磁盘上读
入setup和内核的映像
将(boot/setup.S)2kB字节的代码读入内存0x90200处,
然后跳转到setup的代码中做执行内核映像的准备
从0x100000开始执行startup_32()进行初始化(head.s)
〉start_kernel()[main.c]-cpu_idle()
start_kernel()创建的进程init()被调度执行,完成
1.指令的跳转及其机理
l 80x86/Pentium的地址映射
0–640 KB MS-DOS Area.
640–768 KB Video Buffer Area.
768–896 KB in 16-KB sections (total of eight sections) - Expansion Area.
896 -960 KB in 16-KB sections (total of four sections) - Extended System BIOS Area.
960-KB–1-MB memory (BIOS Area) - System BIOS Area.
扩展内存区:由1M到4GB-1
— High BIOS area from 4 GB to 4 GB–2 MB
Intel 82875P Memory Controller Hub (MCH)
memery的监测和初始化:在对内存接口做操作前,必须初始化MCH DRAM寄存器.MCH必须配制成针对所安
装的内存的类型进行操作.对内存类型和大小的检测是通过ICH5上的System Management Bus (SMBus)来
完成.这个两线的总线通过DRAM DIMM上的Serial Presence Detect端口获得DRAM的类型和大小信息.
BIOS需要确定每行内存的大小和类型来配置MCH内存接口.
2.x86MPU 启动时的初始化
复位输入提供一种初始化的硬件手段.通过复位接口电路向mpu提供信号,Reset要保持1至少15个
CLK2周期,当返回0后,MPU启动内部初始化程序,进入实地址模式.初始化完成后,标志寄存器设为
0xUUUU0002(u代表未定义,实模式下9位标志可用,这里是奇偶标志为1);指令指针设为0x0000FFF0,CS
寄存器设为0xF000,DS,SS,ES,FS和GS寄存器都设为0x0000,指令队列清空.
实模式下地址的形成:段基址+指令指针偏移
MPU在识别出Reset信号后把数据总线设在高阻状态,地址线强行设为1.由于清空中断标志是初始化
的一部分,外部中断被禁止.因为代码段寄存器为0xF000,指令指针为0x0000FFF0,地址线A20-A31全部
是1,从而复位后实模式程序从地址0xFFFFFFF0开始(只用于实模式高地址位忽略,从地址0xFFFF0开始.
该地址处可以包含一条转移指令跳到启动程序处.
物理地址为0xfffffff0的代码将被执行.这个地址被存储在一个只读存储器(ROM)里.BIOS(基本
输入/输出系统)实际上是一段存储在ROM里的程序.它包含了一系列可以被某些操作系统调用,用于处理
计算机各种硬件设备的中断驱动和低级程序.其中微软的DOS就是这样的一种操
您可能关注的文档
- Intraplast Z膨胀灌浆添加剂 - Sika(西卡).PDF
- HT7000使用手册 - HollySys.PDF
- iPhone 储值咭增值服务收费、启用及使用方法 - SmarTone.PDF
- IR2110 驱动晶片功能简介.PDF
- IPO 收入确认要点(三).PDF
- IR2110在机器人驱动系统中的应用.PDF
- IQC检验标准质量体系文件.DOC
- I、客户身份识别 - 东京海上.PPT
- IVS-179 24GHz 平面天线雷达.PDF
- I型胶原蛋冻干粉产品说明书1 - 天津卫凯生物工程有限公司.DOC
- 2024年证券分析与咨询服务项目投资申请报告代可行性研究报告.docx
- 2024年铬酸酐项目资金申请报告代可行性研究报告.docx
- 2024年清洁胶项目资金申请报告代可行性研究报告.docx
- 2024年肉松饼项目投资申请报告代可行性研究报告.docx
- 2024年陆上泵项目资金需求报告代可行性研究报告.docx
- 2024年未硫化复合橡胶及其制品项目资金需求报告代可行性研究报告.docx
- 2024年精密温控节能设备项目资金筹措计划书代可行性研究报告.docx
- 2024年汽车覆盖件模具项目资金筹措计划书代可行性研究报告.docx
- 宋词行书钢笔字帖.pdf
- 我的暑假生活作文三年级300字10篇.pdf
文档评论(0)