7 pontos por GN⁺ 2024-09-15 | 1 comentários | Compartilhar no WhatsApp
  • Este repositório inclui o código-fonte da série Writing an OS in Rust disponível em os.phil-opp.com
  • Se tiver dúvidas, você pode abrir uma issue ou conversar no Gitter

Localização do código

  • O código de cada post está em uma branch git separada
  • É possível verificar o estado intermediário após cada post
  • O código do post mais recente pode ser visto aqui
  • Na lista de posts, siga o link (source code) para encontrar a branch de cada post
  • As branches são nomeadas no formato post-XX (XX é o número do post)
  • Ex.: o post VGA Text Mode é post-03, e Hardware Interrupts é post-07
  • Para instruções de build, consulte o Readme da branch correspondente
  • É possível usar git worktree para fazer checkout de uma branch em um subdiretório
    git worktree add code post-10
    
  • O comando acima cria um subdiretório chamado code e inclui o código do 10º post ("Heap Allocation")

Posts

  • O objetivo deste projeto é oferecer um tutorial passo a passo em posts de blog individuais
  • Atualmente, há os seguintes posts

Bare Bones:

Interrupts:

Memory Management:

Multitasking:

Posts da primeira edição

  • A versão atual do blog é a segunda edição, e a primeira edição não recebe mais manutenção
  • Os posts da primeira edição ainda podem ser úteis
  • A lista de posts é a seguinte

Bare Bones:

Memory Management:

Exceptions:

Additional Resources:

  • Cross Compile Binutils
  • Cross Compile libcore
  • Set Up GDB
  • Handling Exceptions using Naked Functions
  • Catching Exceptions (source code)
  • Better Exception Messages (source code)
  • Returning from Exceptions (source code)

Licença

  • Este projeto é licenciado, exceto pela pasta blog/content, sob uma destas opções
  • Para a licença da pasta blog/content, consulte blog/content/README.md

Contribuição

  • Salvo indicação explícita em contrário, qualquer contribuição enviada intencionalmente para inclusão será dual-licenciada como acima, conforme definido na licença Apache-2.0

Resumo do GN⁺

  • Este projeto oferece um tutorial passo a passo sobre como escrever um sistema operacional em Rust
  • Cada post aborda um tema independente e é explicado com exemplos de código
  • É um material muito útil para quem tem interesse em desenvolvimento de sistemas operacionais
  • Você pode aprender a desenvolver um sistema operacional aproveitando a segurança e o desempenho do Rust
  • Um projeto semelhante com funcionalidades parecidas é o Redox OS

1 comentários

 
GN⁺ 2024-09-15
Comentários no Hacker News
  • Completei a segunda edição há alguns anos e aprendi muita coisa

    • A explicação sobre desenvolvimento de SO era boa e também foi útil para aprender Rust
    • O autor entende bem os idioms da linguagem, então a forma como o código é expresso era didática
    • A explicação da implementação de futures em Rust no blog foi especialmente impressionante
    • Espero que o Phil volte a trabalhar na terceira edição baseada em EFI
    • A segunda edição ainda é uma ótima forma de passar o tempo de desenvolvimento no fim de semana
  • Depois de concluir o tutorial há 5 anos, comecei a trabalhar no MOROS

    • Recomendo fortemente para quem tem interesse em Rust e desenvolvimento de SO
    • O Phil colocou muito esforço nisso, e o resultado mostra isso claramente
    • Depois disso, dá para continuar aprendendo pela wiki do osdev
  • Em vez de escrever um SO em Rust, deveríamos criar uma plataforma de dados capaz de executar DML/DDL

  • Depois de explorar Rust e desenvolvimento de SO a fundo, encontrei este material

    • Fiquei impressionado com a qualidade dele, e pude aprender não só sobre a história e o design de SO, mas também sobre elementos de Rust
    • O Phil fez um trabalho excelente
  • Foi graças a este material que comecei com Rust em 2021

    • Sou muito grato por ele existir
  • Os textos do Phil sobre desenvolvimento de SO são sempre ótimas leituras

  • A equipe do Harvey OS agora está trabalhando no projeto R9OS

  • Recomendo especialmente os posts da edição original

    • A edição atual ajuda demais ao lidar com o processo de boot usando um crate específico
  • Voltei da Rustconf, e há cerca de cinco grandes lançamentos de SO com foco em sistemas operacionais de tempo real

    • Nem todos são open source
  • Outro bom material é sobre criar um SO RISC-V usando Rust