BIOS引导与Linux启动详解:从MBR到GRUB
需积分: 9 101 浏览量
更新于2024-08-25
收藏 235KB PPT 举报
BIOS引导 Linux 启动过程是一种复杂而精细的过程,涉及计算机启动时的多个步骤。以下是关键知识点的详细解释:
1. 加电自检 (POST): BIOS在计算机开机时首先进行POST(Power-On Self-Test),这是对系统硬件进行全面检查的阶段,包括内存、CPU、显卡、硬盘、键盘和显示器等,确保它们都能正常工作。
2. 本地设备枚举与初始化:BIOS继续查找并识别所有连接的设备,如硬盘、光驱、USB设备等,并初始化它们,以便后续操作。
3. 寻找启动扇区与MBR:BIOS会定位到磁盘的第一个扇区(MBR,即主引导记录),这是一个512字节大小的特殊扇区,其中包含了分区表和引导加载程序,用于指示哪个分区存储操作系统。
4. MBR加载与控制权转移:BIOS将MBR加载到内存中,通常地址是0000:7C00,然后通过INT 19h中断将控制权转交给MBR中的引导加载程序。
5. 引导扇区加载:MBR加载启动扇区到内存的特定地址,比如0000:7C00,然后开始执行那里的代码,这通常是bootsect程序。
6. 主引导记录(MBR)格式:MBR包含一个固定大小的分区表,用于描述硬盘的分区情况,以及一个简化的引导加载程序,如GRUB的stage1。
7. GRUB 引导加载程序:GRUB是一个两阶段的引导加载器,stage1(通常在MBR中)负责加载更复杂的stage2,后者负责内核的加载和引导菜单显示。如果需要文件系统支持,可能会使用stage1.5。
8. GRUB流程:用户可以通过GRUB的Menu.lst配置文件定制启动选项。GRUB允许用户指定内核位置,并在stage2中提供Shell环境。
9. Linux内核的引导:从ancient age开始,Linux内核引导过程涉及汇编代码的执行,如_start()函数,这个函数生成引导扇区并将自己移动到特定内存位置。随后的setup()函数负责初始化硬件、设置内存参数和视频设置,将系统转至保护模式,最后执行startup_32(),解压缩并加载bzImage(预编译的内核)到内存。
10. 初始化环境:startup_32()设置基础环境,如堆栈,然后调用decompress_kernel()解压缩内核,最后跳转到内核的入口点开始执行。
整个过程是一个逐步递进的过程,从BIOS的基本硬件检查到引导加载程序的交互,再到内核的初始化和启动,每一步都是为了确保计算机能够正确地加载和运行操作系统。理解这个过程对于诊断和解决启动问题具有重要意义。
2021-11-29 上传
2012-01-11 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
2023-06-06 上传
2023-07-14 上传
深井冰323
- 粉丝: 23
- 资源: 2万+
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦