desenvolvimento de SO
Por: Fernando Birck aka Fergo
2
SUMÁRIO
1.
2.
3.
4.
5.
6.
7.
8.
Introdução
Aplicativos
Processo de boot
Interrupts
Criando o Loader
Criando o Kernel
Gravando e testando
Considerações finais
3
4
5
6
7
9
11
13
3
1. INTRODUÇÃO
Neste tutorial, vou ensinar os passos básicos para criar um mini sistema operacional de
16 bits para x86, inteiramente programado do zero, em Assembly. Não vou ensinar nada sobre a linguagem de programação em si, então é recomendável ter algum conhecimento sobre ela.
Vamos fazer algo bem básico, mas suficiente para você entender como é o funcionamento de um SO. Faremos apenas uma mensagem de texto ser exibida na tela. Parece pouco, mas verá que a coisa não é tão simples assim.
Veja os aplicativos necessários no próximo capítulo e boa sorte.
4
2. APLICATIVOS
Para programar o sistema, vamos usar o Emu8086, um ótimo emulador de 8086, com capacidade de compilar, fazer debug e, claro, emular o sistema ( para não ter que ficar reiniciando o computador toda hora para testar ). Baixe-o endereço abaixo:
Emu086
http://www.emu8086.com
Ele não é gratuito, tem um prazo de 90 dias para testar, mas é suficiente para o nosso tutorial. Em seguida, baixe mais 2 aplicativos, que vamos usar para gravar nosso SO em um disquete e dar o boot por ele:
Fergo RawImage Maker http://www.fergonez.net/download.php?file=frim.zip RawWriteWin http://www.chrysocome.net/rawwrite O local de instalação desses aplicativos fica a sua escolha, não tem um local específico para instalar. Vamos em frente, para uma breve explicação sobre o processo de boot.
5
3. PROCESSO DE BOOT
Geralmente, após o término da checagem de Hardware, o computador busca pelos
512 bytes gravados no primeiro setor do disquete ( Cabeça: 0, Trilha: 0, Setor: 1 ). Caso não encontre, ele busca por um sistema operacional na MBR ( Master Boot Record ) do seu HD.
É importante que, para testar o SO, você