项目简介
本项目是使用C++编写的操作系统内核,提供简单的单线程内核环境。内核借助libcxxrt库支持RTTI和异常处理,模仿POSIX标准在用户态和内核态进行对象操作。用户程序通过文件描述符(fd)与内核对象交互,内核对象继承自虚基类Object
,存储于shared_ptr<Object>
数组中。
项目的主要特性和功能
- 单线程内核,无需锁机制。
- 通过
shared_ptr<Object>
数组管理继承自虚基类Object
的内核对象。 - 实现基本系统调用功能,供用户程序与内核交互。
- 能够解析ELF格式的文件。
- 借助libcxxrt库提供C++运行时支持,包含异常处理。
- 启动过程中初始化GDT、IDT、PIC等硬件组件并设置时钟中断。
- 实现基本的进程创建和管理功能,包含进程调度。
- 初步实现虚拟内存管理,支持页表操作和进程间内存隔离。
安装使用步骤
- 假设用户已下载本项目的源码文件。
- 编译内核:
- 使用
ldscript.ld
文件进行链接,确保内核入口点设置正确。 - 编译内核源文件,保证所有依赖的头文件和库文件配置正确。
- 使用
- 启动内核:
- 用支持Multiboot规范的引导器(如GRUB)加载内核。
- 内核启动后,初始化GDT、IDT、PIC等硬件组件并设置时钟中断。
- 运行用户程序:
- 内核启动后创建第一个用户进程并加载用户程序。
- 用户程序通过系统调用与内核交互,操作内核对象。
- 调试与测试:
- 使用QEMU或Bochs等虚拟机进行调试和测试,确保内核和用户程序正常运行。
- 注意不同虚拟机和实机环境下的兼容性和调试支持。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】