Esse código pode não parecer tão adequado em muitos lugares e será reformado mais cedo ou mais tarde. Novo armazém recuperação-os. Espere que eu volte para preencher o poço. Versão refatorada: https://github.com/yiezias/recover-os
Este projeto é baseado na versão AMD64 Architecture (ou X86_64 Architecture) do sistema operacional implementado por "Restauração da verdade do sistema operacional". As principais idéias e código são consistentes com o livro original.
O sistema operacional implementado pelo "Sistema operacional Restore Truth" é executado em um processador de arquitetura X86 de 32 bits, mas agora já entramos na era de 64 bits. Então eu cópia Consulte o código em "Restauração da verdade do sistema operacional" para implementar sua versão de 64 bits.
$ make run pode compilar e iniciar o emulador Bochs.
Este sistema operacional possui 2048, Snake e outros mini-jogos.
Escreva código com recuperação:
(O terminal não implementa redirecionamento de entrada e saída, e o gato abaixo é diferente do gato sob Linux)
(Basta mostrar a função de escrever arquivos de texto)

2048 Mini Game:

Cobra gananciosa (a queda da estrutura é grave, então não vou deixar as animações irem):

Os livros relacionados mais fáceis de entender que li, detalhados e interessantes. Mesmo que pareça um pouco longo, o autor ainda precisa tentar maneiras diferentes de deixar os leitores entenderem (onde posso encontrar um livro tão amigável). Entre os muitos livros relacionados ao sistema operacional, finalmente escolhi este O único que pode entender Implementação de livros do sistema operacional.
Principalmente a diferença entre arquiteturas AMD64 e X86
Sob a arquitetura AMD64, as funções geralmente usam registros para passar os parâmetros e a convenção de chamada de função no X86 não possui valor de referência. Mas é fácil se entender. Escreva uma função C em detalhes e compile -a na montagem e, em seguida, você o entenderá escrevendo no GCC. Esse conhecimento é necessário em muitos lugares durante o processo de desenvolvimento.
O modo longo pode ser entendido como 64 bits recurso Modo protegido, o processador precisa alternar do modo real para o modo protegido e depois para o modo longo.
A maneira mais conveniente de obter informações é, obviamente, um mecanismo de pesquisa, mas os mecanismos de pesquisa geralmente não conseguem encontrar o conteúdo que desejam, e as informações verdadeiramente autorizadas ainda são documentos de AMD ou Intel.
Esse sistema abandona completamente o método de interromper a implementação de chamadas do sistema e usa a instrução SysTRet Fast System Call para implementá -lo. Para detalhes, consulte os documentos AMD ou Intel e o conteúdo não é complicado.
O sistema de arquivos do autor não parece muito bem escrito. Por um lado, o sistema de arquivos já é bastante complicado, mas o autor geralmente usa quase centenas de linhas de funções, e algum código pode ser reutilizado, mas precisa ser implementado repetidamente, o que é muito confuso em geral. Esse sistema de arquivos do sistema é equivalente a uma grande mudança no autor, mas não deve ser difícil de entender com base no livro e código do autor. O sistema de arquivos deste sistema não implementa funções de nível de diretório, mas não afeta a implementação de outras funções do sistema, por isso é omitido.
A concha do autor é implementada no kernel. Este sistema usa o shell como um aplicativo e o processo init usa a chamada do sistema EXECV para carregar o shell do diretório raiz. Muitos comandos internos do sistema de autores também são implementados diretamente como aplicativos neste sistema. Mas o nível de código é semelhante. Existem também mini-jogos especiais que podem chamar a interface do sistema operacional para implementar aplicativos de forma independente, e esse sistema é basicamente concluído.