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);

segunda-feira, 22 de abril de 2013

Boot, fase 9 - Tornando o processo inteligente, parte 2

Desde as primeiras versões do bootloader, ele detectava informações do hardware, e a cada nova versão novas informações foram sendo adicionadas, porem a única que era fornecida ao kernel era o endereço de vídeo.

Nesta fase implementei uma tabela, criada pelo bootloader, que é entregue ao kernel, e através dela o kernel pode obter todas as informações recolhidas pelo bootloader.

O endereço da tabela é passado ao kernel no lugar do endereço de vídeo, de forma que o kernel teve que ser modificado para encontrar o valor correto do endereço de vídeo.

A tabela é composta de uma assinatura, para garantir que o kernel esteja lendo valores verdadeiros, do tipo da CPU, da quantidade de memória convencional e superior, de informações do vídeo, como: modo, número de linhas e colunas, porta do controlador e segmento de memória. Também possui informações de que tipo de suporte a A20 o PC dispõe; da posição inicial e final do código do próprio kernel, da pilha e do heap.

Desta forma, muito mais pode ser feito no kernel agora, como implementar o driver de vídeo, já que temos os parâmetros dele, ou o controlador de memória, pois já sabemos quanto temos de memória disponível. No caso do controlador de memória, podemos não ter detectado toda a memória instalada, mas o valor fornecido é seguramente utilizável inicialmente, e provavelmente chega aos 16 Megabytes, ou até mais.







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).