1 pontos por GN⁺ 2024-07-15 | 1 comentários | Compartilhar no WhatsApp

Fusion OS

Fusion é um sistema operacional hobby para x86-64 implementado em Nim. O processo de desenvolvimento está documentado em https://0xc0ffee.netlify.app.

Capturas de tela

  • Bootloader UEFI
  • GUI ( Observação: esta captura de tela foi tirada do branch graphics, que ainda está em desenvolvimento.)
  • Inicialização do kernel do Fusion

Recursos

Recursos implementados atualmente:

  • Bootloader UEFI
  • Gerenciador de memória física
  • Gerenciador de memória virtual
  • Espaço de endereçamento único
  • Modo de usuário
  • Multitarefa preemptiva
  • Chamadas de sistema
  • Carregador ELF
  • Interrupções de temporizador

Recursos planejados:

  • Paginação sob demanda
  • Comunicação entre processos
  • I/O de disco
  • Sistema de arquivos
  • Entrada de teclado/mouse
  • Shell
  • GUI
  • Rede

Build

Para compilar o Fusion, é necessário instalar as seguintes dependências:

  • Nim
  • LLVM (clang e lld)
  • Just

Compile o Fusion com o seguinte comando:

just build

Execução

Atualmente, o Fusion roda no QEMU, então primeiro é preciso instalar o QEMU. Execute o Fusion com o seguinte comando:

just run

Licença

MIT

Resumo do GN⁺

Fusion OS é um sistema operacional hobby para x86-64 implementado em Nim, útil para quem quer aprender o processo de desenvolvimento de sistemas operacionais. Atualmente, já conta com recursos básicos como bootloader UEFI, gerenciadores de memória física e virtual e modo de usuário. No futuro, estão previstos vários recursos, como paginação sob demanda, comunicação entre processos e sistema de arquivos. Como pode ser testado facilmente via QEMU, é adequado para desenvolvimento e aprendizado. Projetos semelhantes incluem xv6 e OSDev.

1 comentários

 
GN⁺ 2024-07-15
Comentários do Hacker News
  • O autor aqui. Estou pronto para responder perguntas
  • Seu blog/docs são excelentes. O blog e a documentação são excelentes. O equilíbrio entre mostrar e explicar é perfeito
  • Legal, adoro ver coisas assim. É bom ver projetos como este. Tenho acompanhado o ecossistema Nim de forma intermitente há alguns anos. Fico feliz em ver este pequeno projeto continuar avançando
  • Que bacana! É divertido poder ler módulos ELF com facilidade. Um dia gostaria de escrever um RTOS em Nim. Gosto de escrever programas embarcados em Nim, e fazer um RTOS também parece que seria divertido
  • O que é Nim, e qual é o objetivo geral de design do Fusion? Tenho curiosidade sobre o que é Nim e qual é o objetivo geral de design do Fusion. Espero que não seja uma pergunta básica demais; não tenho absolutamente nenhum conhecimento prévio sobre este assunto e gostaria que alguém explicasse
  • Diário de desenvolvimento do autor do Fusion: Compartilhando o link do diário de desenvolvimento do autor do Fusion
  • Como isso se compara ao TempleOS? Tenho curiosidade sobre quais são as diferenças em comparação com o TempleOS. Parece semelhante no ponto de usar um único espaço de endereçamento
  • O problema que o Nim tem, e por isso muitos têm receio de adotá-lo, é a insensibilidade a maiúsculas/minúsculas e ao estilo. O problema do Nim é que ele não é sensível a maiúsculas/minúsculas nem ao estilo
    • Ex.: Is_land == island == IsLaND == is-land
    • Isso se torna um problema em ambientes de equipe ou em projetos reais
    • Tenho curiosidade sobre como a situação está evoluindo. Da última vez que verifiquei, o principal desenvolvedor decidiu não tomar medidas contra a votação de popularidade no GitHub
    • Fora isso, o projeto Fusion OS e a documentação são excelentes