操作系统启动原理:BIOS到操作系统的过渡解析
需积分: 14 174 浏览量
更新于2024-07-17
1
收藏 200KB DOCX 举报
"国科大操作系统高级教程-2018"
在计算机科学中,操作系统是计算机硬件和软件之间的重要桥梁,它负责管理和控制系统的资源,为应用程序提供接口。本课程内容涉及的操作系统启动过程是这一领域的核心知识。下面将详细解释相关知识点:
1. **计算机启动流程**:
当计算机开机时,由于内存尚未初始化,CPU无法直接执行存储在外设上的操作系统代码。此时,基本输入输出系统(BIOS)起作用,进行一系列自检(POST),设置中断向量表和初始化硬件。BIOS随后将操作系统的引导扇区加载到内存的0x7C00地址,并跳转执行,因为这是BIOS的约定。
2. **BIOS加载扇区的策略**:
BIOS仅加载一个启动扇区的原因在于,这是系统启动过程中的一个标准化步骤。BIOS的角色是初始化硬件环境,之后的工作交给引导加载器。引导加载器(如bootsect)由操作系统开发者编写,负责加载其余的系统分区或文件系统。这样做的好处是保持体系结构的灵活性,允许操作系统和BIOS独立发展,同时简化了启动流程。
3. **内存地址选择**:
BIOS不会将bootsect加载到0x00000,因为这个地址用于建立中断向量表(IVT)和BIOS数据区。0x7C00是BIOS预留给引导扇区的内存地址。加载后,为了防止内核初始化时覆盖这些数据,bootsect会被移动到0x90000,这里暂时存储硬件配置数据,便于内核使用。
4. **引导程序之间的衔接**:
- **bootsect到setup的过渡**:在bootsect中,使用`jmpi 0, SETUPSEG;`指令跳转到setup程序的地址(0x90200)。这使得CS:IP寄存器指向setup的第一条指令,从而开始执行setup程序。
- **setup到head的过渡**:setup程序执行完毕后,通常会更新内存配置和硬件设置,然后通过指令跳转到操作系统内核的入口点,即head程序。具体的跳转指令可能因实现不同而略有差异,但通常涉及改变CS:IP寄存器以指向head程序的地址。
操作系统启动过程的理解对于深入学习操作系统原理至关重要。这个过程涉及到硬件初始化、内存管理、程序加载和执行等多个层面,是操作系统设计和实现的基础。掌握这些知识有助于我们更好地理解和调试操作系统相关的问题,也能为将来在系统级编程和优化打下坚实基础。
2020-11-18 上传
2024-01-04 上传
2024-01-16 上传
2023-06-24 上传
2023-12-15 上传
2023-06-26 上传
2024-01-18 上传
机智帅气的葫芦娃
- 粉丝: 74
- 资源: 19
最新资源
- 最优条件下三次B样条小波边缘检测算子研究
- 深入解析:wav文件格式结构
- JIRA系统配置指南:代理与SSL设置
- 入门必备:电阻电容识别全解析
- U盘制作启动盘:详细教程解决无光驱装系统难题
- Eclipse快捷键大全:提升开发效率的必备秘籍
- C++ Primer Plus中文版:深入学习C++编程必备
- Eclipse常用快捷键汇总与操作指南
- JavaScript作用域解析与面向对象基础
- 软通动力Java笔试题解析
- 自定义标签配置与使用指南
- Android Intent深度解析:组件通信与广播机制
- 增强MyEclipse代码提示功能设置教程
- x86下VMware环境中Openwrt编译与LuCI集成指南
- S3C2440A嵌入式终端电源管理系统设计探讨
- Intel DTCP-IP技术在数字家庭中的内容保护