Processo de Iniciação

A iniciação do ModulOS é compatível com a especificação Multiboot (o GRUB é um exemplo de carregador que segue essa especificação) e é feita em três etapas:

Carregamento do iniciador

A primeira etapa da iniciação é o carregamento do iniciador (o programa starter). O iniciador é um programa compatível com a especificação Multiboot, isto é, tem um cabeçalho definido pela especificação Multiboot e é responsável pelo carregamento dos módulos necessários à iniciação do sistema. O arquivo com o iniciador tem que ficar no diretório raíz com o nome de starter.

O iniciador tem que ser carregado por um carregador compatível com a especificação Multiboot ou que, pelo menos, use o cabeçalho Multiboot do iniciador para carregá-lo. O iniciador precisa ser executado com o seguinte ambiente:

O controle tem que ser passado para o início do iniciador carregado na memória.

Carregamento dos módulos

O iniciador tem um papel muito importante no processo de iniciação do ModulOS, pois ele é responsavel por carregar os módulos necessários.

Para saber quais módulos devem ser carregados, o iniciador carrega e analisa o arquivo de configuração /system/config/system.cfg que contém os módulos registrados com suas propriedades e o caminho completo até o arquivo.

O iniciador também inicia a paginação do sistema, criando as tabelas necessárias.

Após carregar o arquivo de configuração e todos os módulos especificados na configuração, o iniciador constrói todas as estruturas que devem ser passadas para a função de iniciação da fase 0 do módulo que implementar a interface SysModManager.

Iniciação do administrador de módulos do sistema

A função de iniciação da fase 0 do módulo que implementar a interface SysModManager usa os parâmetros passados pelo iniciador para iniciar suas estruturas e depois inicia o sistema de acordo com as configurações.