☰
OS67引导过程全解析:从BIOS到保护模式的启动之旅
2026/10/16 22:28:16 网站建设 项目流程

OS67引导过程全解析:从BIOS到保护模式的启动之旅

【免费下载链接】OS67An unix-like toy kernel项目地址: https://gitcode.com/gh_mirrors/os/OS67

OS67是一款类Unix的玩具内核,其引导过程涵盖了从BIOS初始化到保护模式切换的完整流程。本文将带你深入了解OS67如何从开机自检到加载内核的每个关键步骤,揭开操作系统启动的神秘面纱。

1. BIOS初始化:计算机启动的第一步

当你按下电源按钮时,计算机首先执行BIOS(基本输入输出系统)程序。BIOS存储在主板的ROM中,负责硬件自检(POST)和初始化。在OS67项目中,这一过程由硬件自动完成,无需用户干预。

BIOS完成自检后,会从默认启动设备(通常是软盘或硬盘)的第一个扇区读取引导扇区。对于OS67而言,这个引导扇区就是boot/bootsect.asm文件,它被编译后存放在磁盘的0柱面0磁头1扇区。

2. 引导扇区执行:实模式下的初步操作

引导扇区加载到内存0x7C00地址后,CPU开始执行其中的代码。此时系统仍处于实模式,只能访问1MB内存空间。OS67的引导扇区主要完成以下任务:

  • 初始化段寄存器:设置数据段(DS)、附加段(ES)和栈段(SS)
  • 设置视频模式:通过BIOS中断0x10将显示模式设置为80x25的16色文本模式
  • 检测内存:使用INT 0x15 E820功能获取内存映射信息
  • 加载内核:通过BIOS中断0x13从磁盘读取内核加载器到内存0x8000地址

图1:OS67启动过程中的控制台输出,显示了各组件初始化状态

3. 保护模式切换:突破1MB内存限制

实模式下的内存限制无法满足现代操作系统需求,OS67通过以下步骤切换到保护模式:

3.1 准备全局描述符表(GDT)

GDT是保护模式下的关键数据结构,用于定义内存段的访问权限和属性。OS67在boot/bootsect.asm中定义了临时GDT,包含以下段描述符:

  • 空描述符(必须存在)
  • 32位代码段(0特权级)
  • 32位数据段(0特权级)
  • 视频内存段(0xB8000起始地址)

GDT的定义使用了boot/pm.asm中的Descriptor宏,该宏简化了段描述符的创建过程。

3.2 启用A20地址线

为了访问1MB以上的内存,需要启用A20地址线。OS67通过直接访问键盘控制器端口(0x92)来实现这一点:

in al,0x92 or al,00000010b out 0x92, al

3.3 切换到保护模式

最后,通过设置CR0寄存器的PE位(第0位)完成模式切换:

mov eax,cr0 or eax, 1 mov cr0,eax

紧接着执行一个远跳转指令,清除指令流水线并加载代码段选择子:

jmp dword Selec_Code32_R0:0x8000

4. 内核加载器执行:移交控制权

跳转到0x8000地址后,控制权交给内核加载器。此时系统已进入保护模式,可以访问4GB内存空间。加载器的主要任务包括:

  • 初始化更完善的GDT和IDT
  • 检测并初始化硬件设备
  • 建立内存管理系统
  • 加载并执行内核主程序

从scrshot.png中可以看到,内核加载成功后会显示一系列初始化信息,包括IDT、ISR、内存管理、键盘和磁盘驱动等组件的初始化状态。

5. 总结:OS67引导流程概览

OS67的引导过程可以概括为以下关键步骤:

  1. BIOS自检:硬件初始化和启动设备选择
  2. 引导扇区加载:boot/bootsect.asm被加载到0x7C00
  3. 实模式操作:内存检测和内核加载
  4. 保护模式切换:通过GDT和CR0寄存器实现模式转换
  5. 内核初始化:加载器完成硬件和内存管理初始化

通过这个过程,OS67从一个简单的引导扇区逐步构建起完整的操作系统运行环境。理解这一过程不仅有助于深入学习OS67内核,也为理解其他操作系统的启动机制提供了基础。

如果你想亲自体验OS67的启动过程,可以通过以下命令获取源代码:

git clone https://gitcode.com/gh_mirrors/os/OS67

探索boot/目录下的源代码,你将发现更多关于操作系统引导的细节和奥秘! 🚀

【免费下载链接】OS67An unix-like toy kernel项目地址: https://gitcode.com/gh_mirrors/os/OS67

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询