Pesquisar este blog

Novidades no blog

- Passamos das 120k visitas \o/

- Os repositórios ainda precisam ser organizados!

- Nova postagem: Organizando a casa;
- LOS versão 0.7 (acesse, em breve, no github.com);

sexta-feira, 19 de abril de 2013

Boot, fase 7 - Bem vindo 32 bits

Chegamos ao último passo antes de começar o desenvolvimento do kernel...

Embora o desenvolvimento do bootloader ainda não esteja completo, chegamos ao ponto em que já é possível o início do desenvolvimento do kernel. Isto porque o bootloader já consegue carregar um binário de 32 bits no modelo de memória FLAT.

Agora todos os descritores de segmento são FLAT32, o kernel é carregado para a posição de memória 0x0010.0000, ou seja, na marca do 1º megabyte. A pilha é configurada para iniciar em 0x001F.FFFC, ou seja, no final do 1º megabyte. O endereço do segmento de vídeo é passado como endereço linear de 32 bits por EAX.

O kernel agora é de 32 bits puro, mas ainda escrito em Assembly e montado com o NASM, e faz a mesma coisa que o anterior.



Depois de ter a versão funcional, revisei o código modificando a ativação do Modo Unreal, que ao invés de criar outra GDT (auxiliar), utiliza a GDT principal que agora é criada antes e usada tanto para ativar o Modo Unreal como para entrar definitivamente no Modo Protegido.



Download dos fontes e binários:

Nenhum comentário:

Postar um comentário

Obs.: Após escrever seu comentário, inscreva-se por e-mail para seguir os próximos comentários. Ou assine a postagem de comentários (Atom).