Seja bem vindo!

OSDev Brasil

Configurar o núcleo para o GRUB

Data: junho 10, 2008 || Postado por: Mounter   ||  Categoria: Intel X86, Sistemas Operacionais, Tutoriais

Como muitos de nós gostaríamos de configurar nosso núcleo para funcionar com o GRUB, irei aqui dar uma breve explicação de como isso pode ser feito.

Para nosso núcleo ser executado pelo GRUB, precisamos ter um cabeçalho nos primeiros 8KB e deve ter a seguinte forma:

/*****************************************************************************
** Cabeçalho Multiboot, com "aout kludge"
** GRUB não irá iniciar o núcleo a menos que
** - está estrutura esteja presente nos primeiros 8192 bytes do arquivo do núcleo
** - está estrutura estiver alinhada em um endereço divisivel por 4-byte
** - o valor mágico Multiboot está presente na estrutura
** - o número de checagem (checksum) esteja correto
*****************************************************************************/

MBOOT_PAGE_ALIGN EQU 1<<0
MBOOT_MEMORY_INFO EQU 1<<1
MBOOT_AOUT_KLUDGE EQU 1<<16
MBOOT_HEADER_MAGIC EQU 0x1BADB002
MBOOT_HEADER_FLAGS EQU MBOOT_PAGE_ALIGN | MBOOT_MEMORY_INFO | MBOOT_AOUT_KLUDGE
MBOOT_CHECKSUM EQU -(MBOOT_HEADER_MAGIC + MBOOT_HEADER_FLAGS)

ALIGN 4
mboot:
dd MBOOT_HEADER_MAGIC
dd MBOOT_HEADER_FLAGS
dd MBOOT_CHECKSUM
// aout kludge
dd mboot    // Endereço do cabeçalho multiboot
dd _d_code    // Endereço da área de código
dd _d_bss    // Endereço da área de dados não inicializado
dd _end        // Fim do núcleo
dd ncl_inicio    // Endereço inicial do núcleo

E terá de configurar também o arquivo menu.lst que se encontra em /boot/grub/ e deverá ter o seguinte código:

title   SOmBRA
root    (fd0)
kernel  /nucleo.cof

O title é o título que irá aparece na inicialização, o root diz qual o driver será o diretório raiz e o kernel diz onde se encontra nosso núcleo que será carregado. O grub suporta vários tipos de arquivos executáveis, tais como COFF, DJCOFF e ELF, e com ele ainda podemos acrescentar módulos, que poderão depois ser usados pelo núcleo, mas isso será matéria do próximo artigo.

Até mais.

Deixe uma Resposta

Índice | Parceiros | Colaboradores | Sobre-nós | ©2007 OSDevBrasil.net | Desenvolvido por OptiSoft | Powered by WordPress | Hospedado por HostGator