O sistema operacional executa uma serie de rotinas antes que oprimeiro programa de usuario possa ser posto em execucao. Essas rotinasenvolvem a configuracao correta das estruturas utilizadas pela CPU, ainicializacao dos subsistemas do SO, a deteccao e inicializacao de novosprocessadores, entre outras tarefas. De maneira resumida, os passos para a inicializacao do FESO saoos seguintes: Inicializacao da gerencia de memoria Instalacao das tabelas de descritores einterrupcoes Inicializacao dos demais subsistemas (processo,mensagens e VFS) Carregamento dos modulos (Drivers deDispositivos e Aplicativos) Deteccao de inicializacao de processadoresApos a execucao de todos esses passos, o sistema FESO habilitaas interrupcoes da CPU, e fica em estado de espera ate que uma interrupcaoocorra, e coloque o algoritmo de escalonamento de processos em execucao. Estealgoritmo coloca em execucao os processos que foram carregados como modulos.Apos isso, o sistema esta em pleno funcionamento. Esta secao detalha algumasfases do processo de inicializacao do sistema FESO.O GRUBO sistema FESO utiliza o GNU GRUB (GRAND UNIFIED BOOTLOADER) como seu boot loader. Um boot loadere o primeiro programa a ser executado quando um computador e inicializado. Elee responsavel pelo carregamento e transferencia de controle para o kernel do sistema operacional.O GRUB carrega o sistema FESO na memoria do computador, juntocom uma serie de modulos que sao indicados atraves de um arquivo deconfiguracao. Alem disso, o GRUB cria na memoria estruturas que permitem aosistema operacional conhecer as posicoes nas quais esses modulos foram carregados.O GRUB entrega o controle do computador ao SO em um estado conhecido, e tambemcria uma estrutura acessivel ao sistema com um mapa das regioes de memoria quepodem ser utilizadas por ele.A utilizacao do GRUB dispensa a necessidade de desenvolvimentode rotinas de inicializacao do SO que sejam genericas o suficiente parafuncionar em diversos computadores diferentes. Sempre que alguma alteracao noSO precisa ser testada, uma nova imagem de CD de inicializacao com o sistemaFESO e o GRUB e criada, e partir dessa combinacao, e possivel testar o sistema,tanto em maquinas reais quando em maquinas virtuais. Driver do ConsoleO driver do console eo nome dado ao servidor responsavel pelo controle do teclado e do video do computador.Embora sejam dispositivos diferentes, eles foram integrados em um so servidor,pois existe uma interacao constante entre eles. Isto e, aquilo que e digitadopelo usuario com o uso do teclado muitas vezes e imediatamente escrito novideo.De maneira geral, o driverdo console suporta diversos clientes ao mesmo tempo. Os clientes sao threads que fazem solicitacoes ao driver. As solicitacoes sao usualmente paraa escrita de dados no video ou para a leitura de dados do teclado. Entretanto,existem solicitacoes para alterar a cor do texto, ou a mesmo a posicao docursor na tela.Para cada cliente diferente, o servidor cria um conjunto devariaveis para armazenar o estado da tela, e estas variaveis compoem o consolevirtual. Cada cliente tem seu proprio console virtual, com cada caractere natela salvo em um arquivo, e com as configuracoes de cor, posicao do cursor, e algumas outras armazenadas emuma estrutura. No momento em que um cliente fica em primeiro plano (foreground), os dados contidos em seusarquivos sao carregados na memoria de video, e tudo e configurado de