Chegamos ao último
passo antes de começar o desenvolvimento do kernel...
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.
- LoadLOS.010 - Kernel de 32 bits rodando na memória superior;
- LoadLOS.011 - Versão melhorada;
<< Anterior - Boot, fase 6 - Entrando num mundo unreal
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).