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.