“This project’s vision is to help every college student read all the code of an operating system.
With only 2000 lines of code, egos-2000 implements every component of an operating system for education. It can run on a RISC-V board and also the QEMU software emulator.
Earth and Grass Operating System
We use egos-2000 as a new teaching OS for CS5411/4411 at Cornell. It adopts a 3-layer architecture.
- The earth layer implements hardware-specific abstractions.
- tty and disk device interfaces
- interrupt and memory management interfaces
- The grass layer implements hardware-independent abstractions.
- processes, system calls and inter-process communications
- The application layer implements file system, shell and user commands.
The definitions of struct earth and struct grass in this header file specify the layer interfaces.
Usages and Documentation
For compiling and running egos-2000, please read this document. The RISC-V instruction set manual and SiFive FE310 manual introduce the privileged ISA and processor memory map. This document further introduces the teaching plans, architecture and development history.”