About this project

egos-2000 is an educational operating system whose stated goal is to let every student read all of its code. The project keeps the implementation at exactly 2000 lines (counted with cloc, excluding Markdown), which makes the whole system small enough to study end to end. Architecture The name "egos" reflects a three-layer design: - Earth layer: hardware-specific abstractions, including tty and disk device interfaces plus timer and memory management interfaces. - Grass layer: hardware-independent abstractions, including the process control block and the system call interface. - Application layer: file system, shell, and user commands. The interfaces between layers are defined by struct earth and struct grass in the header file egos.h. Platforms and usage The system runs on QEMU and on RISC-V boards. USAGES.md documents how to run it, and the RISC-V privileged ISA manuals are referenced for the instruction set details. Community ports mentioned in the README include mriscv (a SystemVerilog processor), Allwinner D1, and the Sipeed Lichee RV64 Nezha compute module. A DOOM port has also been demonstrated on egos-2000. Learning materials The EGOS book contains nine course projects based on egos-2000. The project has been used in university courses such as Northeastern CS4973/6640 and Cornell CS4411/5411, and the README credits a Facebook fellowship along with several academic advisors and contributors. Who it is for This is primarily a study and teaching resource for operating systems: students and instructors who want a complete, readable kernel and a set of guided projects, rather than a production OS for deployment.