yhzhang0128/egos-2000
Fork: 157 Star: 2224 (更新于 2024-12-17 04:34:36)
license: NOASSERTION
Language: C .
Envision a future where every student can read all the code of a teaching operating system.
最后发布版本: v3.0.0 ( 2024-08-29 10:42:38)
Vision
This project's vision is to help every student read all the code of a teaching operating system.
With only 2000 lines of code, egos-2000 implements every component of an operating system for education. It can run on RISC-V boards and the QEMU software emulator.
# The cloc utility is used to count the lines of code.
> cloc egos-2000 --exclude-ext=md,txt,toml,json # excluding text files
...
github.com/AlDanial/cloc v 1.94 T=0.05 s (949.3 files/s, 62349.4 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
C 31 430 537 1599
C/C++ Header 9 65 102 260
Assembly 3 15 49 92
make 1 15 4 49
-------------------------------------------------------------------------------
SUM: 44 525 692 2000 (exactly!)
-------------------------------------------------------------------------------
Earth and Grass Operating System
The egos part of egos-2000 is named after its three-layer architecture.
- The earth layer implements hardware-specific abstractions.
- tty and disk device interface
- timer and memory management interface
- The grass layer implements hardware-independent abstractions.
- process control block and system call interface
- The application layer implements file system, shell and user commands.
The definitions of struct earth
and struct grass
in header file egos.h specify the layer interface.
Please read USAGES.md for running egos-2000 and
the instruction set manual for the RISC-V privileged ISA.
Acknowledgements
Many thanks to Meta for a Facebook fellowship. Many thanks to Robbert van Renesse, Lorenzo Alvisi, Shan Lu, Hakim Weatherspoon and Christopher Batten for their support. Many thanks to all the CS5411/4411 students at Cornell University over the years for helping improve this course. Many thanks to Cheng Tan for providing valuable feedback and using egos-2000 in CS6640 at Northeastern University. Many thanks to Brandon Fusi for porting to the Allwinner's D1 chip using Sipeed's Lichee RV64 compute module.
For any questions, please contact Yunhao Zhang.
最近版本更新:(数据更新于 2024-10-07 08:29:15)
2024-08-29 10:42:38 v3.0.0
2024-05-16 10:13:27 v2.0.3
2023-08-30 12:30:51 v2.0.2
2022-12-30 12:53:48 v2.0.1
2022-10-11 01:46:29 v2.0.0
2022-05-31 14:07:59 v1.0.1
2022-04-24 10:13:14 v1.0.0
主题(topics):
education, operating-system
yhzhang0128/egos-2000同语言 C最近更新仓库
2024-12-21 10:48:05 EdgeTX/edgetx
2024-12-15 21:46:59 arendst/Tasmota
2024-12-15 21:29:56 bol-van/zapret
2024-12-13 20:23:33 XITRIX/Moonlight-Switch
2024-12-11 15:17:04 curl/curl
2024-12-07 10:42:25 libsdl-org/SDL