项目简介
本项目实现了基于C语言和x86架构的操作系统引导与内存管理系统。它涵盖BIOS启动、实模式到保护模式切换、内核加载、内存管理、进程调度、系统调用、文件系统等核心模块,有助于深入理解操作系统从启动到运行的全过程,特别是x86架构下的内存管理和进程调度机制。
项目的主要特性和功能
- BIOS启动与实模式:系统启动时,BIOS初始化硬件并加载引导扇区到内存,将控制权交给引导加载程序。引导加载程序在实模式下运行,负责加载内核并切换到保护模式。
- 保护模式与内存管理:引导加载程序通过设置全局描述符表(GDT)和开启A20地址总线切换到保护模式。内核加载后,初始化物理内存管理,实现页表、页目录初始化及虚拟到物理地址的映射。
- 内核与进程管理:内核启动后,初始化内核栈、页表、中断描述符表(IDT)等关键数据结构。支持进程调度、进程间通信(IPC)以及写时拷贝的
fork()
机制。 - 系统调用与异常处理:通过中断和异常处理机制实现系统调用,用户程序可用
int 0x30
指令触发。异常处理机制能处理除零、缺页等异常,保证系统稳定。 - 文件系统:由专门的文件系统服务进程
fsenv
实现,支持文件的打开、读取、写入等操作,使用块缓存机制按需加载磁盘数据到内存。
安装使用步骤
环境准备
确保已安装x86架构的交叉编译工具链(如gcc
、ld
等),并安装QEMU或其他x86模拟器。
编译项目
进入项目根目录,执行以下命令编译项目:
bash
make
编译完成后,生成的内核镜像文件为kernel.img
。
运行操作系统
使用QEMU运行编译生成的内核镜像:
bash
qemu-system-x86_64 -kernel kernel.img
系统启动后,将进入内核初始化流程,随后可执行用户程序。
调试与测试
可以使用GDB进行调试,启动QEMU时添加-s -S
参数以启用调试模式:
bash
qemu-system-x86_64 -kernel kernel.img -s -S
在另一个终端中启动GDB并连接到QEMU:
bash
gdb kernel.img
(gdb) target remote :1234
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】