Monkos é um sistema operacional experimental de 64 bits para processadores Intel e AMD. É uma mistura de C e linguagem de montagem e é um trabalho em andamento. Atualmente, ele consiste em um carregador de inicialização do BIOS, um sistema de console virtual, um sistema de manuseio de interrupções, um gerenciador de memória paginado, um alocador de heap, alguns drivers de dispositivo simples e um shell interativo primitivo. O carregador de inicialização foi projetado para iniciar o sistema operacional a partir de um CDROM.
Atualmente, o sistema operacional é construído no Linux usando um compilador cruzado. Existem duas maneiras de construí-lo: (1) Instalando todas as ferramentas necessárias no seu sistema e executando make ou (2) usando um contêiner de docker pronto que contém todas as ferramentas de construção que você precisa.
Para construir com ferramentas instaladas no sistema local, você precisará ter o seguinte software já instalado:
A maioria dessas ferramentas está disponível nos gerentes de pacotes Linux padrão. O compilador cruzado, no entanto, não é. Para construir um compilador cruzado, consulte as instruções nesta página. Certifique-se de seguir o LIBGCC sem instruções da zona vermelha.
Depois de instalar todas as ferramentas e garantir que o compilador cruzado esteja no seu caminho, execute make .
$ make Isso resulta em um arquivo ISO de CDROM inicializável chamado monk.iso no seu subdiretório de compilação.
Como pode ser um pouco aborrecido construir e instalar um compilador cruzado, um recipiente do docker foi preparado, permitindo que você evite a construção do compilador cruzado. Para executar a compilação baseada no Docker, verifique se você tem uma versão recente do Docker instalada no seu sistema, adicione-se ao grupo de usuários do seu sistema e digite o seguinte:
$ make docker Isso abaixará o contêiner do docker ( brett/monkos-build ), se você ainda não o possui, execute a compilação dentro do contêiner e gerar o arquivo ISO (e todos os outros arquivos de saída intermediários) em seu subdiretório de compilação. Ele se comporta quase exatamente como se você fosse make usando um compilador cruzado instalado localmente no seu sistema.
Existem várias maneiras de executar monkos depois de ter o arquivo ISO. A primeira e mais demorada maneira é queimar em um CD ou DVD ROM usando seu utilitário de queima favorito. Esta é a única maneira de testar monkos em um sistema de metal nu.
Como alternativa, você pode iniciar o sistema operacional usando software de máquina virtual como VMware ou VirtualBox.
Ou você pode executar o sistema operacional em um emulador baseado em Linux como o Qemu ou o Bochs. O Monkos Makefile torna essa alternativa particularmente fácil, fornecendo uma regra de construção simples para lançar o sistema operacional no Qemu:
$ make testVocê também pode usar o Makefile para iniciar uma sessão de depuração do kernel no QEMU e GDB. Primeiro, inicie o Qemu no modo de depuração:
$ make debugEm seguida, inicie uma sessão de depurador do GDB anexando o GDB ao endpoint do Depurador Qemu:
$ gdb
(gdb) set arch i386:x86-64
(gdb) symbol-file build/monk.sys
(gdb) target remote localhost:8864
(gdb) layout src
Run make docs para construir documentação bem formatada para Monkos. Você precisará de doxygen instalado no seu sistema para fazer isso.
$ make docs Os documentos doxygen aparecerão no subdiretório docs/monk . Para vê -los, inicie -os no seu navegador (neste caso, o Firefox):
$ firefox docs/monk/index.htmlPara criar tags de código para facilitar a pesquisa de símbolos dentro do seu editor, use o Makefile para executar o utilitário exuberante-Tags:
$ make tags Isso produz um arquivo .tags no seu diretório MONKOS.
Para limpar todos os arquivos intermediários, use a construção limpa:
$ make cleanPara limpar todos os arquivos de dependências geradas, use a criação da CleanDeps:
$ make cleandepsConsulte a documentação formatada por Doxygen, que faz parte do conjunto de documentação dos Monkos.
Esses são alguns dos recursos em que confiei na minha tentativa de entender melhor os numerosos e vários aspectos do desenvolvimento de botas e do sistema operacional:
O uso desse código-fonte é regido por uma licença de estilo BSD que pode ser encontrada no arquivo de licença.