一个基于x86架构的简单操作系统内核项目,实现了基本的内存管理、进程管理、文件系统等核心功能。
- 基于x86架构,支持保护模式
- 实现了基本的内存管理系统
- 分页机制
- 伙伴系统内存分配器
- 虚拟内存管理
- 进程管理和调度系统
- 基本的进程创建和切换
- 时间片轮转调度
- 系统调用支持
- 基础文件系统
- VFS(虚拟文件系统)接口
- 内存文件系统(MemFS)实现
- 控制台文件系统
- 设备驱动支持
- VGA文本模式显示
- 串口通信
- 键盘驱动
- 中断处理系统
- GDT(全局描述符表)
- IDT(中断描述符表)
- 可编程中断控制器(PIC)支持
- GCC (支持C++17)
- NASM (汇编器)
- CMake (构建系统)
- GRUB2 (引导加载程序)
- QEMU (用于测试运行)
- 克隆项目代码:
git clone <repository_url>
cd custom_kernel
- 在WSL或Linux环境下编译:
./build_wsl.sh
- 生成initramfs:
./cpio_fs.sh
使用QEMU运行:
./run.sh
arch/
- 架构相关代码x86/
- x86架构特定实现
boot/
- 引导加载相关文件drivers/
- 设备驱动程序include/
- 头文件arch/
- 架构相关头文件kernel/
- 内核功能头文件lib/
- 通用库头文件
kernel/
- 内核核心功能实现lib/
- 通用库函数rootfs/
- 根文件系统相关文件tools/
- 开发工具
- 内存管理:实现了基于伙伴系统的物理内存分配器和虚拟内存管理系统
- 进程管理:支持基本的进程创建、切换和调度功能
- 文件系统:实现了VFS接口和基本的内存文件系统
- 中断处理:包括基本的中断处理机制和系统调用支持
- 设备驱动:支持基本的输入输出设备
- 代码风格遵循项目根目录下的
coding_standards.md
文件 - 新功能开发请创建独立的分支
- 提交代码前请确保通过基本的功能测试
本项目采用MIT许可证
欢迎提交Issue和Pull Request来帮助改进项目。
感谢所有为这个项目做出贡献的开发者。