Sobre o projeto
egos-2000 é um sistema operacional educacional cujo objetivo declarado é permitir que todo estudante leia todo o seu código. O projeto mantém a implementação em exatamente 2000 linhas (contadas com cloc, excluindo Markdown), o que torna o sistema inteiro pequeno o suficiente para ser estudado de ponta a ponta.
Arquitetura
O nome "egos" reflete um design de três camadas:
- Camada earth: abstrações específicas de hardware, incluindo interfaces de dispositivos tty e disco, além de interfaces de gerenciamento de timer e memória.
- Camada grass: abstrações independentes de hardware, incluindo o bloco de controle de processo e a interface de chamadas de sistema.
- Camada de aplicação: sistema de arquivos, shell e comandos de usuário.
As interfaces entre as camadas são definidas por struct earth e struct grass no arquivo de cabeçalho egos.h.
Plataformas e uso
O sistema roda no QEMU e em placas RISC-V. O arquivo USAGES.md documenta como executá-lo, e os manuais da ISA privilegiada RISC-V são referenciados para os detalhes do conjunto de instruções. Portes comunitários mencionados no README incluem mriscv (um processador SystemVerilog), Allwinner D1 e o módulo de computação Sipeed Lichee RV64 Nezha. Um porte de DOOM também foi demonstrado no egos-2000.
Materiais de aprendizado
O livro EGOS contém nove projetos de curso baseados no egos-2000. O projeto foi usado em cursos universitários como Northeastern CS4973/6640 e Cornell CS4411/5411, e o README credita uma bolsa Facebook, além de vários orientadores acadêmicos e colaboradores.
Para quem se destina
Este é principalmente um recurso de estudo e ensino para sistemas operacionais: estudantes e instrutores que desejam um kernel completo e legível e um conjunto de projetos guiados, em vez de um sistema operacional de produção para implantação.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.