MyGit
🚩收到GitHub仓库的更新通知

yhzhang0128/egos-2000

Fork: 151 Star: 2118 (更新于 2024-05-04 02:07:15)

license: MIT

Language: C .

Envision a future where every student can read all the code of a teaching operating system.

最后发布版本: v2.0.2 ( 2023-08-30 12:30:51)

GitHub网址

✨免费申请网站SSL证书,支持多域名和泛域名,点击查看

Vision

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 RISC-V boards and the QEMU software emulator.

Fail to load an image of egos-2000.

# The cloc utility is used to count the lines of code (LOC).
# The command below counts the LOC of everything excluding text documents.
> cloc egos-2000 --exclude-ext=md,txt
...
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                               37            508            657           1577
C/C++ Header                    10             69            105            283
Assembly                         3             10             27             76
make                             1             14              3             64
-------------------------------------------------------------------------------
SUM:                            51            601            792           2000 (exactly 2000!)
-------------------------------------------------------------------------------

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, exception 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 this header file specify the layer interface.

For compiling and running egos-2000, please read this document. The RISC-V instruction set manual and SiFive FE310 processor manual introduce the privileged ISA and memory map. This document further introduces the teaching plans, software architecture and development history.

Acknowledgements

Many thanks to Meta for a Meta 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 over the years for helping improve this course. Many thanks to Cheng Tan for providing valuable feedback and using egos-2000 in his CS6640 at Northeastern. 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-04-25 19:32:58)

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-05-09 10:29:27 EdgeTX/edgetx

2024-05-07 20:20:05 opa334/Dopamine

2024-05-07 17:59:22 lizongying/my-tv

2024-05-07 04:07:00 AuxXxilium/arc-modules

2024-05-05 22:24:34 valinet/ExplorerPatcher

2024-05-05 03:01:21 SoftEtherVPN/SoftEtherVPN