The earth and grass operating system (EGOS) is our teaching OS at Cornell. It has three layers:
- the earth layer provides hardware-specific abstractions
- tty and disk device interfaces
- cpu interrupt and memory management interfaces
- the grass layer provides hardware-independent abstractions
- processes and system calls
- inter-process communication
- the application layer on top of the operating system provides
- file system
- shell and common shell commands
EGOS is minimal and very suitable for teaching an undergraduate operating system course.
> cloc .
41 text files.
33 unique files.
16 files ignored.
github.com/AlDanial/cloc v 1.92 T=0.03 s (1089.7 files/s, 70829.1 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
C 16 275 186 966
C/C++ Header 11 76 17 276
Markdown 2 35 0 145
Assembly 3 10 21 70
make 1 12 0 56
-------------------------------------------------------------------------------
SUM: 33 408 224 1513
-------------------------------------------------------------------------------
- an Artix-7 35T Arty FPGA Development Board
- a microUSB cable (e.g., microUSB-to-USB or microUSB-to-USB-C)
- an SDHC microSD card, a microSD Pmod and a USB microSD reader
- SiFive freedom riscv-gcc compiler toolchain
- Vivado lab solutions or any edition with the hardware manager
- a tool to program a disk image file to the microSD card
- e.g., balena Etcher
- a tool to connect with ttyUSB
For compiling and running egos-riscv, you can read USAGES.md or watch our video tutorial (Youtube, Bilibili). The documentation further introduces the teaching plans, architecture and development history of egos-riscv.
For any questions, please contact Yunhao Zhang or Robbert van Renesse.