Buscar

Resumo Artigo 1 Desenvolvimento de um Sistema Operacional Linux FINAL

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1 
P_S6_T0011 – Fundamentos de Sistema Operacionais 
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
 
Desenvolvimento de um Sistema Operacional Linux 
para fins Acadêmicos e Científicos 
 
Reginaldo Fernandes da Silva 
rfsseta@gmail.com 
Universidade Paulista - UNIP 
Campus Belém – Unidade Nazaré 
 
RESUMO 
O presente artigo apresenta os desafios na construção de um sistema operacional livre 
utilizando o LFS (Linux From Scratch), o que permiti a qualquer pessoa possa visualizar 
como o sistema funciona, corrigir algum problema, e até fazer alguma sugestão de melhoria. 
O processo de desenvolvimento foi dividido em etapas para que os integrantes realizem um 
profundo estudo sobre o SO Linux, arquitetura, sistemas de arquivos, pacotes importantes, 
comandos e scripts, diferença entre suas distribuições (Gnome, KDE, Mandriva) e outros 
sistemas distintos (Windows, Machintoch). O processo é desenvolver uma distribuição Linux 
para fins acadêmico-científicos. Disponibilizando aplicativos, API’s (Application 
Programming Interface), e outras ferramentas utilizadas para este fim. 
 
Palavras chaves: Linux, LFS, Pacotes Linux, Software Livre, Sistema Operacional, 
Desenvolvimento em Linux. 
 
I. INTRODUÇÃO 
Este documento é uma síntese dos conhecimentos adquiridos durante o processo de 
Iniciação Científica onde foi desenvolvido um SO (Sistema Operacional) Linux para fins 
acadêmicos e científicos seguindo a referência LFS, bem como os resultados obtidos ao longo 
do processo. 
 
II. OBJETIVO 
O Linux é um sistema operacional de código aberto distribuído gratuitamente pela 
internet. Este software básico, por ser de código aberto, permite aos programadores adaptá-los 
a suas necessidades, não ficando assim, restritos apenas aos desenvolvidos por grandes 
empresas ou comunidades. 
 
 2 
P_S6_T0011 – Fundamentos de Sistema Operacionais 
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
A finalidade do trabalho é desenvolver uma distribuição Linux para fins acadêmico-
científicos. Tal sistema dispõe de aplicativos, API’s (Application Programming Interface), e 
outras ferramentas utilizadas para este fim. 
 
III. DESENVOLVIMENTO DO SISTEMA 
O processo de desenvolvimento foi dividido em etapas cujas atividades e resultados estão 
descritos a seguir: 
 
A. Planejamento: 
Nesta etapa os integrantes realizaram um profundo estudo sobre o Sistema Operacional 
Linux, arquitetura, sistemas de arquivo, pacotes importantes, comandos e scripts, diferença 
entre suas distribuições (Gnome, KDE, Mandriva) e outros sistemas distintos. 
 
B. Preparação do ambiente anfitrião: 
 No processo de criação de um OS Linux seguindo a referência LFS. Neste projeto foi 
escolhido o Ubuntu como sistema base (anfitrião). 
 Os integrantes optaram por utilizar uma máquina virtual devido sua portabilidade. A 
máquina virtual escolhida foi Virtual Box por ser um aplicativo grátis, de interfase simples e 
intuitiva. Foi criada uma partição de 20 GB de espaço na máquina virtual, espaço suficiente, 
onde a metade foi instalada o sistema base e na outra o sistema hospedeiro. 
 Também foi destinada a máquina virtual metade do processamento e memória RAM do 
computador, necessário para reduzir o tempo de compilação dos pacotes na construção do 
novo sistema. 
 
C. Instalação de arquivos: 
 O Sistema Operacional é responsável pelo gerenciamento de recursos e periféricos, 
interpretação de mensagens e a execução de programas [1]. Estes programas estão contidos 
em pacotes. Para a construção do Linux (segundo LFS) são necessários aproximadamente 80 
pacotes que ocupam 148MB de disco. A tabela I, possui alguns dos pacotes utilizados: 
 
 Tabela I: Principais pacotes utilizados 
 
NOME DO PACOTE VERSÃO CONTEÚDO 
Binutils 2.22 
Contém um vinculador, um assembler e outras 
ferramentas que trabalham com arquivos objetos. 
Glibc 2.22 Contém a biblioteca C principal. 
 
 3 
P_S6_T0011 – Fundamentos de Sistema Operacionais 
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
Flex 2.5.35 
Utilizado para gerar programas que reconhecem 
padrões em textos. 
Gcc 4.6.2 Contém os compiladores C/C++. 
Make 3.82 Possui programas para compilar pacotes. 
Linux 3.2.5 Contém o kernel ("núcleo") do Linux. 
Vim 7.3 Editor de texto. 
Tar 1.26 
Programa que armazena e extrai arquivos de um 
pacote. 
Grub 1.99 Programa multi-carregador de SO. 
 
 O processo de instalação de pacotes é dividido em três etapas: descompactação, 
compilação e instalação. A primeira etapa é realizada no sistema anfitrião, deve-se mover os 
arquivos descompactados para o sistema hospedeiro via terminal e em seguida, realizar as 
duas etapas seguintes. O primeiro pacote a ser instalado é Binutils, este possui o assembler e 
o vinculador dinâmico que é utilizado pelo GCC e Glibc, o segundo é o GCC que contém os 
compiladores C/C++ e o último pacote é o Vim que é o editor de texto. É um processo 
cuidadoso, pois a maioria dos pacotes possui dependências com outros e o erro no processo de 
compilação, todo o processo tem que ser refeito. 
 
D. Tornando o sistema inicializável: 
 Após realizar a instalação dos pacotes, o sistema em criação deve ser configurado para ser 
inicializável. Isto é feito criando o arquivo FSTAB este determina onde os sistemas de 
arquivos devem ser montados; configurando um novo KERNEL possibilita adaptá-lo ao 
hardware de cada usuário e instalando o GRUB (Grand Unified Bootloader) é um programa 
que permite ao usuário escolher através de um menu qual SO serra carregado. 
 
E. Instalando Pacotes de Rede e Segurança: 
 A referência LFS possui uma continuação, o BLFS (Beyond Linux From Scratch), cujo 
foco é instalar pacotes de segurança, configurar funções de hardware, de usuários, instalar 
interface gráfica e outros aplicativos. 
 O primeiro conjunto de pacotes utilizado para instalação e configuração dos dispositivos 
removíveis de mídia como pen-drives, CDs, disquetes e USB. Nesta fase ocorreram os piores 
problemas encontrados ao longo do projeto. A solução encontrada para o problema foi 
realizada em duas etapas: A primeira foi criar um arquivo de configuração de rede 
ETHERNET, o que não foi a solução completa. A segunda foi criar um servidor FTP (File 
Transfer Protocol), onde foram colocados os pacotes a serem baixados e em seguida 
transferidos ao Linux via rede “cabeada”. 
 
 4 
P_S6_T0011 – Fundamentos de SistemaOperacionais 
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
 Tabela II: Principais pacotes instalados do BLFS 
 
PACOTE VERSÃO CONTEÚDO 
Wget 1.14 Programa para instalação de pacotes não interativo. 
ConsoleKit 0.4.6 Possui configurações de usuários 
Iptables 1.4.17 Principal ferramenta de Firewall do Linux. 
Stunnel 4.54 Permite realização de tunelamento sobre a rede PPP. 
Apr 1.4.6 Suporte para Apache WEB Service. 
Links 2.7 Navegador de internet em modo texto 
 
Ao concluir estas instalações dos pacotes, o sistema passou a ter um novo layout, com 
texto coloridos, separando diretórios, de arquivos e link’s. A interface passou a ser mais 
intuitiva (para usuários) já que possuía uma gama maior de comandos e inclusive um 
navegador de web em modo texto. A figura 1 exibe o sistema após a instalação destes pacotes. 
Fig. 1. Sistema com o novo layout. 
 
F. Instalando a Interface Gráfica: 
 A Interface Gráfica é considerada um dos principais requisitos de um sistema operacional. 
Neste projeto foi utilizada a interface GNOME no Ubuntu, mais usada em sistemas livre [2]. 
 Para instalação da interface gráfica é necessário atribuir ao sistema uma série de pacotes 
como XOrg, XOrg Libraries, UtilMacros e Xcb-pronto. Durante a instalação do pacote 
MakeDepend ocorria um erro que informava a não instalação do pacote XPROTO que é 
instalado ao atribuir o Xcb-pronto. Para solucionar o problema foi necessário utilizar um 
sistema de customização para completar o trabalho. 
 Para diferenciar o sistema criado dos demais já existentes, foi modificada, também, a tela 
de carregamento do sistema, além do layout do GRUB. 
 
 5 
P_S6_T0011 – Fundamentos de Sistema Operacionais 
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
G. Instalação dos Softwares de Desenvolvimento: 
 Os programas julgados pelos integrantes e por alguns professores da instituição de ensino 
como os mais úteis para fins acadêmicos e científicos, compõe o sistema criado. A obtenção e 
instalação destes programas se deram através do pacote APT (chamado por alguns de apt-get) 
é uma ferramenta de download e instalação de programas. A tabela III é composta por uma 
lista de programas para estes fins, instalado no sistema. 
 
 Tabela III: Principais softwares de fins acadêmicos/científicos instalados 
 
PACOTE CONTEÚDO 
Eclipse Ambiente de desenvolvimento de aplicativos em diversas linguagens. 
Sci-Lab Software científico para computação numérica, baseado no Matlab. 
Filezilla 
Cliente FTP, SFTP e FTPS muito utilizado por desenvolvedores WEB 
no processo de deploy de aplicativos. 
Qt Creator Ambiente de desenvolvimento multi-plataforma. 
Selenium IDE Plugin para automatização de teste testes. 
VirtualBox Maquina Virtual. 
Dia Editor de diagramas, utilizado na criação de desenhos técnicos. 
DDD Programa de depuração de arquivos em C/C++. 
MySQL WokBench Sistema de gerenciamento de banco de dados (SGBD). 
Tomcat Servidor WEB Java, container de servlets. 
Eagle Programa de montagem de esquema elétrico. 
GCC/G++ Conjunto de compiladores de Linguagens de programação. 
WireShark Analisador de tráfico de rede. 
Bison e Flex 
Utilizado na construção de linguagens de programação e 
compiladores. 
 
IV. CONCLUSÃO 
 
Construir um sistema operacional não é uma tarefa simples, pois o mesmo utiliza uma 
grande quantidade de arquivos e necessita de muito cuidado na instalação deles, além de 
necessitar de muito tempo de construção. Porém é um processo de muito aprendizado. É 
interessante poder olhar para um sistema e poder entender o que ocorre nas camadas mais 
internas, além da que o usuário comum pode ver, em outras palavras enxergar o que ocorre 
"por baixo dos panos", quais arquivos são responsáveis por determinados eventos no sistema. 
 
V. REFERÊNCIA 
 
[1] – M. S. Gleydson, 05/12/2010. Guia Foca GNU/Linux, Versão 4.22, 2010. Disponível: 
http://www.guiafoca.org/?page_id=238. 
[2] – Beekmans. Gerard. 2012. Linux From Scratch, Versão 7.1.2012. Disponível: 
http://www.vivaolinux.com.br/Linux/. 
[*] – Bernardes, Luan Oliveira, Janiel. Etapas de Desenvolvimento de Sistemas. 2011. 
Disponível: http://portalsis.wordpress.com/category/artigos-cietifico/.

Continue navegando