这个项目能做什么
egos-2000是一个教育性操作系统,其明确目标是让每个学生都能阅读其全部代码。该项目将实现代码量精确控制在2000行(使用cloc统计,不包括Markdown),使得整个系统足够小,可以端到端地学习。
架构
“egos”这个名字反映了一个三层设计:
- 地球层:硬件特定的抽象,包括tty和磁盘设备接口,以及定时器和内存管理接口。
- 草层:硬件无关的抽象,包括进程控制块和系统调用接口。
- 应用层:文件系统、shell和用户命令。
层之间的接口由头文件egos.h中的struct earth和struct grass定义。
平台和使用
该系统运行在QEMU和RISC-V开发板上。USAGES.md文档说明了如何运行它,并引用了RISC-V特权ISA手册以了解指令集细节。README中提到的社区移植包括mriscv(一个SystemVerilog处理器)、Allwinner D1和Sipeed Lichee RV64 Nezha计算模块。还演示了在egos-2000上运行DOOM移植版。
学习材料
EGOS书籍包含基于egos-2000的九个课程项目。该项目已在大学课程中使用,如东北大学的CS4973/6640和康奈尔大学的CS4411/5411,README中感谢了Facebook奖学金以及几位学术顾问和贡献者。
适用对象
这主要是一个操作系统学习和教学资源:适合希望获得完整、可读内核和一系列指导项目的学生和教师,而不是用于部署的生产级操作系统。
评论
0 评分人数达到10人后显示
登录后参与讨论。