Об этом проекте
egos-2000 — учебная операционная система, заявленная цель которой — дать каждому студенту возможность прочитать весь её код. Проект поддерживает реализацию ровно в 2000 строк (подсчитано с помощью cloc, без учёта Markdown), что делает всю систему достаточно компактной для сквозного изучения.
Архитектура
Название «egos» отражает трёхуровневый дизайн:
- Уровень Earth: аппаратно-зависимые абстракции, включая интерфейсы устройств tty и диска, а также интерфейсы управления таймером и памятью.
- Уровень Grass: аппаратно-независимые абстракции, включая блок управления процессом и интерфейс системных вызовов.
- Уровень Application: файловая система, оболочка и пользовательские команды.
Интерфейсы между уровнями определяются структурами struct earth и struct grass в заголовочном файле egos.h.
Платформы и использование
Система работает на QEMU и на платах RISC-V. В USAGES.md описано, как её запускать; для деталей набора инструкций приводятся ссылки на руководства RISC-V privileged ISA. В README упоминаются порты сообщества: mriscv (процессор на SystemVerilog), Allwinner D1 и вычислительный модуль Sipeed Lichee RV64 Nezha. Также на egos-2000 был продемонстрирован порт DOOM.
Учебные материалы
Книга EGOS содержит девять курсовых проектов на основе egos-2000. Проект использовался в университетских курсах, таких как Northeastern CS4973/6640 и Cornell CS4411/5411, а в README упоминаются стипендия Facebook Fellowship, а также несколько научных руководителей и участников.
Для кого предназначен
Это прежде всего учебный и методический ресурс по операционным системам: для студентов и преподавателей, которым нужны полное читаемое ядро и набор направляемых проектов, а не производственная ОС для развёртывания.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.