哈工大操作系统实验操作系统的引导
时间: 2025-01-04 17:34:29 浏览: 9
### 哈工大操作系统实验中的引导过程
在哈工大操作系统实验中,操作系统的引导是一个复杂而有序的过程。当计算机加电启动后,BIOS会执行自检并初始化硬件设备[^1]。
#### 开机上电后的初始阶段
一旦完成自检,控制权交给位于磁盘第一个扇区的主引导记录(MBR),即`bootsect.s`文件。这段程序主要负责加载后续的操作系统组件到内存中[^2]:
```assembly
; bootsect.s 的部分伪代码表示
start:
; 设置段寄存器和其他必要的初始化工作
mov ax, 07C0h ; 设定数据段指向 BIOS 加载地址
mov ds, ax ;
call read_setup ; 尝试读取 setup.s 到指定位置
read_setup:
; 使用 INT 13H (BIOS 磁盘服务) 来读取更多扇区...
```
#### 进入保护模式前准备
随后,`setup.s`接管流程,它从BIOS获取诸如光标位置、可用RAM总量等基本信息,并为切换至保护模式做必要准备工作。这期间还包括配置全局描述符表(GDT)以及中断描述符表(IDT):
```assembly
; setup.s 中的关键片段示意
switch_to_protected_mode:
lgdt [gdtr] ; 加载 GDT 表
lidt [idtr],8 ; 初始化 IDT 表长度和基址
cli ; 关闭中断防止意外发生
smsw ax ; 获取当前状态字CR0
or al, 1 ; 设置PE位开启保护模式
lmsw ax
jmp $ ; 防止CPU继续执行旧指令流
```
#### 启动 C 语言环境下的核心功能
最后,在一切就绪的情况下,通过跳转调用进入由C编写的`main()`函数入口点,标志着正式进入了高级编程语言支持下更复杂的内核逻辑处理环节。
```c
// main.c 或其他源码里的起点
void main(void){
// 执行进一步的任务调度和服务建立等工作...
}
```
阅读全文