Академический Документы
Профессиональный Документы
Культура Документы
FESO
Requisitos
Para fazer alterações no kernel e criar novos aplicativos, os seguintes
Win32(i586-elf).part01.exe e CrossCompiler-Win32(i586-elf).part02.exe).
Além dos programas, é necessário baixar o arquivo com todo o código fonte
do kernel, mais o GRUB. Esses arquivos também podem ser obtidos nos repositórios
versão disponível.
Cygwin
sistema operacional Windows possa ser utilizado de forma parecida com um sistema
repositório o download das ferramentas será feito. Após isso, será aberta uma janela
necessárias são:
o número da versão do programa, indicando que ele não será ignorado durante a
instalação do cygwin. O mesmo procedimento de busca e seleção deve ser repetido para
-make (Que está sob a guia Devel): The GNU version of the make utility
-mkisofs (Que está sob a guia Utils): Create ISO filesystem images
Cross-Compiler
este é o único formato para o qual o FESO possui suporte. O sistema operacional
Windows não utiliza este formato, então é natural que os compiladores baseados em
Windows não deem origem a programas-objeto ELF. Por isso, se faz necessário o uso
que o compilador GCC, o linker ld e NASM podem trabalhar com arquivos ELF.
operacional no qual ele está funcionando. Por isso, é mais aconselhável o uso de uma
versão cross-compiler do GCC ao invés da utilização de uma versão nativa em alguma
distribuição do Linux.
compilar uma versão dele que gere código para uma nova plataforma (Há um tutorial
indicado pelo usuário durante a instalação). Um desses diretórios é o bin, que contém os
makefiles utilizados para compilar o SO. Esses arquivos procuram por padrão o
no formato utilizado pelo sistema operacional Linux. Isso é necessário, pois o cygwin
simula o sistema de arquivos do Linux em sua interface textual. Para tanto, ele cria um
diversos diretórios comuns aos sistemas Linux (como bin, usr, var, lib).
(/) como separador de diretório (ao invés da contra barra (\) padrão do Windows), e
tendo como diretório raiz a própria pasta do cygwin (c:\cygwin). Desta forma, se um
arquivo, por exemplo, chamado de "foo.txt" é criado em: c:\cygwin\usr. Ele pode ser
acessado de dentro do cygwin pelo caminho /usr/foo.txt. O cygwin oferece outra forma
exemplo, caso seja necessário acessar a partir do cygwin um arquivo no disco local do
Windows, que esteja fora da pasta c:\cygwin, isto pode ser feito através do caminho:
/cygdrive/c. Este caminho acessa o disco local do Windows, e permite acesso aos
repositório, é necessário que todos os arquivos que são criados pelo instalador do cross-
compiler estejam na pasta: c:\cygwin\usr\local\cross. Caso a pasta cross não exista, ela
(que é a pasta transformada em imagem inicializável pelo mkisofs) e Grub (com alguns
arquivos do GRUB).
código fonte do kernel), dev (com os arquivos fonte dos drivers de dispositivo), app
(com alguns aplicativos de usuário) e lib (com a biblioteca básica para desenvolvimento
BS. O arquivo BAT (arquivo em lotes) pode ser executado diretamente no sistema
através do sistema de arquivos oferecido pelo cygwin, abrindo cada uma das pastas e
scripts copiam todos os arquivos objeto gerados para a pasta isofiles. Depois, o mkisofs
é chamado para transformar o conteúdo da pasta em um arquivo ISO. Esse arquivo ISO
pode ser utilizado em uma máquina virtual para testes, ou mesmo pode ser gravado em
sintaxe para navegar entre diretórios, criar, remover e executar arquivos é igual à
sintaxe utilizada no shell dos sistemas Linux. De forma que os scripts utilizam esse tipo
de comando.
c\tcc\desenvolvimento, que é o local original onde esses arquivos foram gerados pela
primeira vez. Caso esse caminho seja alterado, o arquivo compilar_os.bs deve ser
arquivos binários são copiados para a pasta isofiles, e então o programa mkiso é
chamado, criando uma ISO inicialzável a partir desta pasta. Caso os caminhos estejam
copiada para criar um novo projeto, existe um arquivo makefile, que deve ser editado
para a geração correta do programa. Primeiramente, a linha iniciada por PATH_LIB :=,
diretório, é necessário alterar esse caminho para que este aponte para o local correto,
como é possível verificar através da figura 29. Como o arquivo makefile é utilizado
Linux.
será criado. Para isto, é preciso editar a linha iniciada por EXECUTABLE :=,
adicionando após a barra o nome do arquivo binário que deve ser gerado na pasta bin.
Por padrão, o makefile referencia as ferramentas que serão utilizadas para a compilação
Tanto C++ (que aponta para o compilador c++), quando LD (que aponta
para o linker) fazem referencia aos arquivos do cross-compiler que por padrão ficam em
devem ser alterados. Vale notar que tanto o kernel, como cada driver de dispositivo e
esteja executando em uma máquina com suporte a drivers IDE, basta que os arquivos
estejam na imagem do disco, desta forma, eles podem ser acessados através da pasta
/cdrom, dentro do sistema de arquivos do FESO. Caso não haja driver IDE, é necessário
Este arquivo possui diversas linhas que começam com a palavra module.
Cada uma delas informa qual módulo deve ser carregado pelo GRUB durante a
inicialização do sistema operacional. Para cada programa criado, deve existir uma nova
linha dentro desse arquivo com o seguinte formato: module (caminho do arquivo dentro
do arquivo. O flag -DRIVER, indica que o módulo é um driver de dispositivo que deve
ser iniciado junto com o SO com um nível de privilégio maior. O flag -APP, indica que
é um aplicativo normal, que deve apenas ser criado e não executado. O flag -APP_INI é
utilizada para indicar um aplicativo de usuário normal, que deve ser iniciado junto com
o SO. Outros flags como -IDLE e -TRAMP são para indicar programas com funções
copiar todos os arquivos fonte e cabeçalhos em suas devidas pastas, o novo programa
estará pronto para ser compilado. Para tal, os seguintes comandos devem ser executados
no cygwin.
pasta isofiles)
pasta isofiles)
O primeiro comando serve para navegar até pasta criada para o programa. O
segundo comando (make), executa o arquivo makefile com as especificações para criar o
arquivo binário. O terceiro comando copia o novo arquivo binário para a pasta isofiles.
indicado para a cópia do arquivo binário dentro dessa pasta. Por exemplo, se um
arquivo foo.o é gerado na pasta foo/bin de um programa executável, esse arquivo pode
ser copiado para a pasta isofiles/app/foo.o. De forma que o arquivo menu.lst deve conter
inicializavel. Dentro dessa pasta, devem conter todos os arquivos dos drivers de
dispositivos, assim como todos os programas de usuário. Além disso, essa pasta contém
kernel e os módulos.
Após isso, um novo arquivo ISO será criado e poderá ser utilizado para o boot em
máquina real ou virtual. Após o boot, é possível acessar a pasta /módulos dentro do SO
SO.