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 driver interface
- cpu interrupt and memory management interface
- 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 an undergraduate operating system course.
> make loc
cloc . --exclude-dir=install
31 text files.
31 unique files.
5 files ignored.
github.com/AlDanial/cloc v 1.82 T=0.02 s (1657.9 files/s, 91367.4 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
C 13 228 137 760
C/C++ Header 11 64 5 205
Markdown 1 12 0 46
make 1 11 0 43
Assembly 2 6 14 18
-------------------------------------------------------------------------------
SUM: 28 321 156 1072
-------------------------------------------------------------------------------
- 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
TODO: a Youtube video tutorial of compiling and installing EGOS
Please also read the documents in the EGOS documentation repository. For any questions, please contact Yunhao Zhang or Robbert van Renesse.