このプロジェクトについて

egos-2000は、すべての学生がコード全体を読めるようにすることを目標とする教育用オペレーティングシステムです。このプロジェクトは実装を正確に2000行(clocでカウント、Markdownを除く)に保っており、システム全体を端から端まで学習できるほど小さくしています。 アーキテクチャ 「egos」という名前は、3層設計を反映しています。 - Earth層: ハードウェア固有の抽象化。ttyおよびディスクデバイスインターフェースに加え、タイマーとメモリ管理インターフェースを含みます。 - Grass層: ハードウェア非依存の抽象化。プロセス制御ブロックとシステムコールインターフェースを含みます。 - Application層: ファイルシステム、シェル、ユーザーコマンド。 層間のインターフェースは、ヘッダーファイルegos.h内のstruct earthとstruct grassによって定義されています。 プラットフォームと使用方法 このシステムはQEMUおよびRISC-Vボード上で動作します。USAGES.mdに実行方法が記載されており、命令セットの詳細についてはRISC-V特権ISAマニュアルが参照されています。READMEで言及されているコミュニティ移植には、mriscv(SystemVerilogプロセッサ)、Allwinner D1、Sipeed Lichee RV64 Nezhaコンピュートモジュールが含まれます。egos-2000上でのDOOMの移植も実証されています。 学習教材 EGOSブックには、egos-2000に基づく9つのコースプロジェクトが含まれています。このプロジェクトは、Northeastern CS4973/6640やCornell CS4411/5411などの大学のコースで使用されており、READMEではFacebookフェローシップと複数の学術アドバイザーおよび貢献者がクレジットされています。 対象者 これは主にオペレーティングシステムの学習・教育リソースです。本番環境にデプロイするOSではなく、完全で読みやすいカーネルと一連のガイド付きプロジェクトを求める学生と教員を対象としています。