项目简介
本项目实现了基于x86架构的简易操作系统源码,具备内存管理、任务调度、中断处理、文件系统、键盘输入、屏幕输出等基础功能,还提供简化的shell命令行界面,方便用户与系统交互并执行特定命令。
项目的主要特性和功能
- 终端命令行:可在终端通过预置命令实现类似shell的功能,如输入
mem
命令获取系统物理内存空间大小。 - 内核态与用户态分离:代码分为内核态和用户态,利用分页机制中页表只读属性保护内核态代码,用分段机制保护内核态堆空间。
- 多任务切换:借助TSS和内核态空间保存的寄存器值,采用分时复用策略进行任务切换。
- 任务互斥锁:实现互斥锁功能,用户能通过系统调用陷入内核持有锁,释放锁采用发布订阅模式唤醒等待任务。
- 动态内存分配:采用定长和动长结合策略,最小分配32k空间。
- 键盘输入:设置外部中断和8259A,级联方式下键盘中断向量为0x21,系统功能调用为0x80,时间中断为0x20。
- 其他功能:实现FMem和VMem两种内存管理方式,提供任务创建、调度等功能,支持基本文件系统操作,处理键盘事件,支持屏幕打印,提供简单的shell模块。
安装使用步骤
- 环境准备:确保开发环境支持x86架构,可使用Bochs模拟器进行开发。开发环境要求为Ubuntu 10.10、gcc 4.4.5、NASM version 2.08.01、bochs 2.4.5。
- 编译:使用适当的编译器(如GCC)编译所有源代码文件。
- 运行:在Bochs或其他模拟器中加载编译后的程序,启动模拟环境。
- 交互:通过键盘输入与系统交互,执行命令。
注意:该项目是简化的操作系统实现,主要用于学习和研究,实际应用可能需更多功能和错误处理机制。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】