프로젝트 소개
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가 아닌 완전하고 읽기 쉬운 커널과 안내된 프로젝트 세트를 원하는 학생과 강사를 대상으로 합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.