Desenvolvimento de uma distribuição Linux para crianças: a

Propaganda
Artigos - Ciências Exatas e da Terra
Trabalho apresentado no 7º Congresso
Nacional de Iniciação Científica - CONICSEMESP 2007 e no 15º Simpósio
Internacional de Iniciação Científica da
Universidade de São Paulo - SIICUSP
Trabalho premiado com o 2º. lugar na área
de Ciências Exatas, da Terra e Engenharias
no 1º. Seminário da Produção Docente e
Discente das Faculdades da Anhanguera.
Resumo publicado nos Anais do Primeiro
Seminário de Produção Científica Docente
e Discente das Faculdades da Anhanguera.
*Bolsista FUNADESP
Desenvolvimento de uma distribuição
Linux para crianças: a experiência
LinuxKidX
Autores: Alexandre Pereira da Cunha - Ciência da Computação
Robson Francisco Maniasso
Professor Orientador: Dr. Adriano Donizete Pila*
Faculdade Comunitária de Santa Bárbara
Resumo
Esse trabalho descreve o desenvolvimento de uma distribuição Linux voltada para crianças. O foco do trabalho
foi o desenvolvimento dessa distribuição contendo uma coletânea de softwares educacionais, de forma que a interface
com o usuário fosse amigável e agradável. A metodologia utilizada e o desenvolvimento dessa distribuição são
apresentados neste trabalho, bem como alguns resultados em termos de detecção de hardware e usabilidade.
Palavras-chave: Linux, customização, distribuição, educação.
Introdução
A tecnologia da informação está cada vez mais
presente no cotidiano das pessoas, seja nos
computadores em empresas ou residências. Isso tem
estimulado a utilização do Linux em maiores proporções,
visto que é um sistema livre e aberto. Um software é
livre, quando seu código-fonte está disponível, podendo
ser alterado para adequá-lo às necessidades específicas,
sem ter de pagar pela licença de uso. Portanto, software
livre é de fato gratuito, mas usar este termo somente
para designar softwares sem custo é um erro grosseiro.
É válido dizer que o conceito de software livre não se
aplica somente ao Linux. Qualquer programa,
independente da plataforma, pode ter essa característica
(LAURENT, 2004).
As distribuições1 Linux não são desenvolvidas por
uma única empresa ou organização, mas sim, a soma
dos esforços de uma comunidade mundial, que inclui tanto
empresas quanto desenvolvedores autônomos. Qualquer
pessoa ou empresa com tempo e conhecimento
suficientes pode criar uma distribuição Linux. No entanto,
68
o mais comum é usar uma distribuição já existente como
ponto de partida e agregar novos recursos a partir daquele
ponto (MORIMOTO, 2005a).
Considerando estes aspectos, o projeto
LinuxKidX2 não visa servidores ou usuários de nível
técnico, mas sim crianças para as quais o nível de
conhecimento ainda não se desenvolveu totalmente, fato
que levou a distribuição a ser planejada visando a
facilidade de uso e a criação de um LiveCD3 cujas
vantagens são:
• Usufruir do sistema operacional sem instalar
nenhum arquivo.
• Utilizar como desktop portátil quando
agregado ao uso de um dispositivo móvel de
armazenamento.
• Manter os dados do HD intactos.
• Utilizar como aprendizado ou lazer.
Sendo assim, o processo de inicialização do
LiveCD deve ser transparente, necessitando apenas que
as crianças ou pais coloquem o CD nos computadores,
e ao ligá-los tudo será automaticamente carregado e
configurado, sendo somente necessário navegar pelos
softwares e encontrar o jogo ideal para diversão e
aprendizado. Diante dessa perspectiva, nada melhor que
disponibilizar na distribuição uma enorme coletânea de
softwares educativos, contendo animações e desenhos
agradáveis, fazendo que através da informática as
crianças possam aprender e desenvolver melhor suas
habilidades cognitivas e motoras.
A motivação para desenvolver o LinuxKidX
passou a existir diante da notoriedade de que as áreas
de educação infantil pouco exploram os recursos de
softwares educacionais como forma de incentivo ao
aprendizado. Um dos fatores que explica esse
comportamento é que geralmente esses aplicativos são
pagos e o valor para aquisição é alto. Uma solução para
esse impasse pode ser observada no estado do Paraná,
o governador Roberto Requião em seu discurso de posse
enfatizou que: “Desde que o software livre foi implantado,
em maio de 2003, até agora, dia 1º de janeiro de 2007,
já economizamos 147 milhões de reais [...]” (Revista
Caros Amigos, 1996).
Objetivos
O objetivo é desenvolver um LiveCD de fácil
utilização, contendo uma coletânea de aplicativos
educacionais para a faixa etária de 2 à 12 anos. O uso
da distribuição aqui apresentada pode ser feito em
computadores domésticos, mas, com maior impacto, em
instituições educacionais. Essa idéia vai ao encontro de
que a era digital é favorável ao aprendizado.
Metodologia
Após o levantamento bibliográfico feito durante a
pesquisa, constatou-se que não existia uma metodologia
única a ser seguida e que sustentasse o desenvolvimento
deste trabalho. Dessa forma, foi elaborada uma
metodologia capaz de contemplar o desenvolvimento do
trabalho, a qual se sustentou em referências bibliográficas
já consagradas da área (MISHRA e SHARMA,2004;
MORIMOTO, 2005a-b, 2006; CESATI e
BOVET,2006). A metodologia é descrita a seguir, a qual
contempla 7 etapas distintas:
Escolha da distribuição:
Essa tarefa é muito importante, pois a distribuição
é desenvolvida a partir de uma já existente. Cada
distribuição Linux possui uma característica que a
diferencia das demais, porém a maioria dos recursos
disponibilizados são comuns. Algumas se distinguem por
uma ênfase em aspectos específicos do sistema, como a
facilidade de configuração, tipo de pacote4, segurança,
personalização entre outros. A escolha da distribuição
enfatizou particularidades como: rapidez, estabilidade e
organização. Garantindo assim a performance e
confiabilidade do LinuxKidX.
Criação da distribuição:
As distribuições Linux contêm uma enorme
quantidade de aplicativos. Desta maneira é muito
importante estudar quais são os pacotes necessários da
distribuição escolhida como base de desenvolvimento,
pois o projeto é um LiveCD, que não pode ultrapassar
700MB, devido as características do CD-ROM. Este é
um processo trabalhoso e demorado, que requer muitos
testes até constatar quais são os pacotes necessários,
visto que a falta de um determinado pacote pode causar
problemas posteriores, devido à ausência de suas
funcionalidades requerida por outros aplicativos.
Alterações do kernel
A alteração do kernel não é uma tarefa fácil pois
necessita entender seu funcionamento e configuração,
pois ele é parte essencial do sistema operacional,
responsável pela alocação de recursos, detecção e
comunicação com os periféricos. Devido suas
características é necessário estudar detalhadamente seu
funcionamento e sua customização para adicionar novos
recursos, tais como: bootsplash e configuração do
sistema de som.
Escolha da interface gráfica:
Realizou-se uma pesquisa minuciosa a fim de
identificar a melhor interface gráfica (GUI – Graphical
User Interface). Uma excelente GUI é baseada em
imagens de visualização e ativação dos recursos
disponibilizados, também reconhece que interface se
refere ao modo como uma fonte de recursos se comunica
com o usuário através de seu design. A interface é a
parte visível do sistema que reúne e apresenta todas as
funcionalidades e operações dos programas (LEMOS,
2005).
Escolha dos softwares educativos:
Quando um software é utilizado como apoio ao
processo de aprendizado de um determinado conteúdo,
entende-se que o mesmo deve ser constituído de tais
atributos: estimulante, temático, interativo e com
propostas educacionais (MISHRA e SHARMA, 2004).
Embasado nesses fatos apresentados a escolha dos
aplicativos foi um trabalho minucioso, uma vez que os
69
mesmos terão capacidade de agregar valores didáticos
aos seus usuários.
Personalização Gráfica:
É imprescindível garantir a atenção e interesse do
usuário desde a inicialização do sistema até o momento
que o mesmo esteja disponível para uso. Para obter esse
resultado, é necessário fazer alterações que deixem o
ambiente deskop chamativo. Essas modificações
enaltecem a qualidade de um sistema operacional e
favorecem a usabilidade do mesmo.
do Slackware, ou seja, os pacotes foram dividos em
séries, cada série é armazenada em um diretório para
instalação futura. A Tabela 1 mostra a função que cada
série representa na distribuição.
Criação do LiveCD:
Estudou-se sobre as mais diferentes maneiras de
geração de um LiveCD, algumas simples outras mais
trabalhosas. Contudo nessa etapa é essencial englobar
todos os passos anteriores dentro de um único CD, o
qual fará com que o sistema operacional inicie e detecte
automaticamente todos os dispositivos físicos do
computador, sendo apenas necessário usar os aplicativos.
Desse modo quanto maior for a capacidade de
compactação utilizado na confecção do CD, maior a
quantidade de recursos disponíveis.
Desenvolvimento
No desenvolvimento foi seguida a metodologia
apresentada anteriormente. Dessa forma, a apresentação
do desenvolvimento desse trabalho segue os mesmos 7
pontos, conforme detalhados a seguir.
Escolha da distribuição:
Como já descrito, a escolha da distribuição a ser
baseada é importante, pois é quem garantirá o
desempenho e confiabilidade do sistema operacional.
Dessa forma, a distribuição Linux que mais atendeu os
requisitos citados na metodologia foi o Slackware, muito
utilizado por profissionais de informática, principalmente
em servidores. O Slackware é uma das distribuições
mais antigas e ainda desenvolvidas, tem como filosofia
preservar a tradição dos sistemas UNIX, provendo um
sistema rápido, robusto, estável e organizado
(BRICKNER, 2005). Porém possui poucas ferramentas
automatizadas, o que acabou acarretando um grande
trabalho na programação de scripts5.
Criação da distribuição:
Conforme apresentado na metodologia foi
necessário estudar os pacotes essenciais do Slackware
e descartar os desnecessários para o projeto. A
instalação da distribuição LinuxKidX seguiu os padrões
70
A Figura 1 mostra como é feito à instalação dos
pacotes do LinuxKidX em um diretório que será utilizado
durante todo o desenvolvimento da distribuição. No
início desse script de instalação, é necessário definir o
caminho da pasta onde os programas serão instalados,
isto é armazenado na variável “$LIVECD”. Na variável
“$SERIES” é definido o caminho onde estão
localizados todos os pacotes referentes à instalação do
LinuxKidX. O comando “installpkg –root” é
responsável pela instalação com permissão de superusuário de todos os pacotes de cada série dentro da
variável “$LIVECD”.
O conjunto de comandos apresentados na Figura
2 copia os arquivos modificados, criados e adicionados
para diversas pastas dentro do diretório de
desenvolvimento da distribuição. A seguir será explicado
a funcionalidade de cada diretório juntamente com seus
respectivos arquivos.
O arquivo “confLinuxKidx” foi desenvolvido
com o intuito de ser executado logo após o processo
de instalação da distribuição dentro do novo diretório
criado anteriormente. Seu objetivo é configurar qual
interface gráfica será carregado ao digitar o comando
“startx”. O mesmo também monta o “/proc”. O
sistema de arquivos “/proc” é um diretório especial
onde ficam todas as informações de depuração do
kernel. Também se encontram algumas configurações
que habilitam e desabilitam o suporte a algumas
funcionalidades no kernel, é muito útil para o diagnóstico
de hardware.
Dentro do diretório “$CUSTOMDIR/sbin/
*” existem dois arquivos essenciais para configuração
da distribuição na inicialização do LiveCD. O
“defaultVolumes” é responsável pela configuração
dos volumes de áudio. O arquivo “xconf” autoconfigura o sistema Xwindow6, para isso é feito um
scanneamento de hardware e as informações como
resolução de tela, mouse, teclado encontradas são salvas
no arquivo “/etc/X11/xorg.conf”, estas
informações são utilizadas pelo gerenciador de janela.
No diretório “$CUSTOMDIR/rc.d/*” estão
disponíveis os arquivos de inicialização do sistema que
foram alterados e criados. Os
arquivos “rc.M” e “rc.S”
foram modificados para adicionar
uma barra de progresso durante a
inicialização do sistema. O
“r c . i n e t 1 ” também foi
alterado para auto-configurar
placas de rede detectadas. No
arquivo “rc.6” foi adicionado
chamadas do script Linux-Live7
para que o sistema operacional
ejete automaticamente o CD ao ser
desligado ou reiniciado. O arquivo “rc.LinuxKidX”
foi desenvolvido para fazer a execução dos arquivos
“defaultVolumes” e “xconf”. O mesmo também
executa o auto-login do sistema operacional, ou seja,
evita a necessidade de digitar um usuário e senha para
entrar no sistema.
A variável “$LINUXLIVE” contém
o caminho dos arquivos do Linux-live, os
scripts são copiados para a pasta “/tmp”
do diretório instalado. Posteriormente são
utilizados na geração do LiveCD.
Após todos os pacotes instalados,
arquivos criados e modificados copiados para
o diretório onde se encontra a nova
distribuição, o script de instalação é finalizado
como apresentado na Figura 3. O comando
“ldconfig -r $LIVECD/” atualiza o link
simbólico8 do diretório armazenado na variável
“$LIVECD” e permite através do parâmetro “-r”, que
o mesmo seja utilizado como um diretório raiz, em uma
nova console. Por último é aplicado na variável
“$LIVECD” o comando “chroot .”. Através dele
é possível transformar o diretório atual no novo diretório
raiz, contendo assim toda a estrutura de diretórios e
arquivos da distribuição desenvolvida. Todos os
comandos executados a partir deste momento são
afetados diretamente na nova distribuição sem vinculo
algum com a distribuição base. Ao término do processo
de customização se deve digitar o comando “exit”
para deixar o modo “chroot” e voltar para a
distribuição base.
71
Alterações do kernel
Conforme descrito na metodologia o kernel
controla o acesso à memória, disco rígido e demais
componentes do micro, dividindo os recursos disponíveis
entre os programas. Todos os demais programas, desde
os aplicativos de linha de comando, até aplicativos
gráficos rodam sobre o kernel. Todo acesso ao kernel
por uma aplicação deve ser efetuado por meio de
chamadas de sistema. Uma chamada de sistema é uma
função do kernel que permite a criação de processos,
solicitação de memória, operação com arquivos, etc. Já
a comunicação com o hardware ocorre, basicamente,
de dois modos: o kernel reconhece e gerência o
hardware usando drivers de dispositivos; o hardware
comunica-se com o kernel por meio de interrupções
[CESATI e BOVET, 2006]. Os drivers de dispositivos
e extensões do núcleo rodam tipicamente no espaço do
kernel, juntamente com o restante do núcleo, com acesso
total ao hardware.
Uma tarefa importante do kernel é oferecer
suporte ao hardware da máquina. Antigamente o kernel
oferecia suporte apenas aos dispositivos mais essenciais,
como HD, placa de vídeo e driver de disquete. Porém
com o passar do tempo, foi sendo adicionado suporte a
muitos outros dispositivos: placas de som, placas de rede
e assim por diante. O fato do kernel ser monolítico
possibilitava escolher e ativar os componentes na hora
de compila-lo. Caso se habilitasse tudo, não teria
problemas com nenhum dispositivo suportado, tudo iria
funcionar facilmente, porém contendo um kernel grande.
Mas caso a compilação do kernel fosse enxuta e
esquecesse de habilitar o suporte a algum recurso
necessário, seria necessário recompilar tudo novamente
para ativá-lo.
Este problema foi resolvido durante o
desenvolvimento do kernel 2.0, através do suporte a
módulos. Os módulos são peças independentes que
podem ser ativadas ou desativadas com o sistema em
uso. Do kernel 2.2 em diante, quase tudo pode ser
compilado como módulo. Isso tornou as coisas muito
mais práticas, pois passou a ser possível compilar um
kernel com suporte a quase tudo, com todas as partes
não essenciais compiladas como módulos. O kernel em
si é um executável pequeno, que consome pouca
memória e roda rápido, enquanto os módulos ficam
guardados numa pasta do HD até que precise deles
[MORIMOTO, 2006].
Na distribuição LinuxKidX utilizou-se a ultíma
versão do kernel, 2.6, a qual disponibiliza uma maior
quantidade de recursos. Porém foi necessário fazer
72
alterações, pois como a distribuição é um LiveCD alguns
patchs (atualizações no kernel) precisaram ser
adicionados para habilitar este característica,
possibilitando assim o desenvolvimento e personalização
da distribuição. O primeiro passo para a criação de um
kernel customizado é conseguir todos os patchs e o
kernel-source e alocá-los em uma pasta. Após isto é
necessário fazer a ativação dos seus módulos para que
na recompilação sejam ativados os recursos necessários.
Para abrir o menu com as opções de personalização
digita-se na console do Linux o comando “make
menuconfig”.
Com a abertura deste menu é possível selecionar
quais recursos serão adicionados. Neste menu foi ativado
os módulos referentes a ativação do bootsplash e
detecção de hardware, mais especificamente o sistema
de som. O LinuxKidX utiliza o Alsa como módulo de
som sendo necessário ativar sua configuração a partir
da versão 2.6 do kernel. Após a seleção dos módulos é
necessário salvar estas configurações antes de iniciar ao
processo de recompilação. Por padrão as configurações
são salvas em um arquivo com o nome “.config”.
Este arquivo também pode ser modificado por um editor
de texto, porém as alterações feitas deste modo são mais
complexas.
Para a criação da distribuição foi desenvolvido
um script que adiciona os patchs no kernel e o
recompila, gerando assim um pacote em formato “tgz”,
padrão utilizado no Slackware. Este procedimento
ajudou muito no desenvolvimento da distribuição devido
ao fato de não precisar recompilar o kernel todas as
vezes que fosse criado uma nova versão do LiveCD.
Tendo em vista que todos os patchs foram
armazenados em um diretório pré-definido no início do
script, partiremos pra a extração dos arquivos
compactados dos patchs e do kernel-source (códigofonte do kernel do Linux). O comando “mkdir -p
$LZMA” cria uma pasta com o nome da variável definida
anteriormente e o comando “tar -xf $CURDIR/
$AUFS.tar.gz” extrai os arquivos compactados
para esta pasta. O mesmo conceito é aplicado aos demais
comandos “tar” apresentados na Figura 4.
Desta forma temos a descompactação de todos
os patchs e o kernel- source em suas respectivas pastas.
Isto possibilita trabalharmos com uma compilação
organizada.
Para habilitar a funcionalidade de um LiveCD
precisamos utilizar alguns patchs, descritos a seguir:
• SquashFS é um sistema de arquivos somente
leitura para Linux.
• LZMA é o método de compactação no
formato 7z (novo formato de arquivo
compactado que provê alta taxa de
compressão). O LZMA provê alta taxa de
compressão e descompactação muito rápida,
de modo que é muito útil para aplicações
embutidas.
• Aufs permite que arquivos e diretórios de
sistemas de arquivos diferentes sejam
transparentemente sobrepostos, formando um
único sistema de arquivos. Os conteúdos de
diretórios com o mesmo caminho nos diferentes
sistemas de arquivos são vistos juntos em um
único diretório no novo sistema de arquivos
virtual.
O comando “patch –p” aplica o patch no
kernel, isto é preciso ser repetido para todos os patchs
utilizados (Figura 5).
Após executar os patchs no kernel o próximo
passo é iniciar o processo de recompilação com o
comando “make –j 3 modules”, cuja função é
compilar os módulos selecionados e criar os arquivos
de
módulos
“. o ”,
o
comando
“I N S T A L L _ M O D _ P A T H = $ P K G
make
modules_install” criará a estrutura do kernel
dentro de uma pasta, a qual está sendo definida pela
variável “$PKG”. O último comando “make –j 3
bzimage” tem a função de criar uma imagem que será
carregada durante a inicialização do sistema. Estes três
comandos citados têm a função de fazer a recompilação
do kernel (Figura 6). Este processo é lento e
dependendo das opções selecionadas pode demorar
horas para terminar.
Ao finalizar a recompilação, é compilado todos
os pacths e copiado para suas respectivas pastas
conforme pode ser visto na Figura 7.
O próximo processo é a criação de um pacote
contendo o kernel pré-compilado. Para tal execução
utilizou-se o comando “makepkg -l n -c n
$KERNEL-i486-1.tgz”.
Tendo um kernel pré-compilado em formato
“tgz”, sua instalação no sistema é rápida, basta apenas
remover o kernel atual e instalar a versão pré-compilada
com o comando “installpkg”.
Escolha da Interface Gráfica:
Segundo a metodologia utilizada, a interface
gráfica com o usuário deve ser baseada em imagens de
visualização e ativação dos
recursos disponibilizados. Por
essas razões o KDE e Gnome
foram avalidados e optou-se
pelo KDE, responsável por
fornecer uma interface gráfica
organizada e consistente para
que os aplicativos sejam
executados e o usuário tenha
uma interação com o
computador. O KDE é um
ambiente desktop moderno
que procura preencher as
necessidades de maneira
facilitada, para isso permite a visualização de imagens,
vídeos e animações através de programas que compõem
o mesmo, interagindo com essas características através
de mouse e teclado (Figura 8). Em relação ao quesito
visual, o KDE é um dos mais agradáveis, isso porque
permite o uso e a criação de temas dos mais variados
tipos e possibilita a utilização de efeitos gráficos. O KDE
é de longe o ambiente que proporciona a maior coletânea
de aplicativos para qualquer distribuição Linux, além
de ser o mais flexível no quesito personalização.
73
Escolha dos softwares educacionais
Conforme descrito na metodologia, um software
educacional deve ser estimulante, temático, interativo e
com propostas educacionais. Portanto a seleção dos
aplicativos educacionais teve como finalidade encontrar
as coletâneas que mais se enquadrariam na distribuição,
somente programas com propostas educacionais foram
utilizados. Nesta etapa os seguintes conjuntos foram
selecionados:
Gcompris:
Utilizado em atividades de diversas disciplinas e
séries, desde a educação infantil até a quarta série.
Todos os jogos vêem com instruções de fácil
74
compreensão
e
jogabilidade (Figura 9).
As atividades podem
ser direcionadas de
acordo com um
objetivo específico ou a
criança pode navegar
pelo programa e
aprender os jogos que
achar mais interessantes
de forma livre,
desenvolvendo assim a
capacidade de escolha
e
aprendizagem
(RIVERA, 2006).
Atualmente
GCompris oferece uma
quantidade de 80 jogos.
GCompris é software
livre, o que significa que
você pode adaptá-lo às
suas necessidades,
melhorá-lo e, o mais importante, compartilhá-lo com as
crianças de toda a parte. As atividades são lúdicas e, ao
mesmo tempo pedagógicas. Os jogos estão divididos
da seguinte forma:
• Descoberta do computador: teclado, mouse,
diferentes usos do mouse,...
• Álgebra: memorização de tabelas,
enumeração, tabelas de entrada dupla, imagens
espelhadas,...
• Ciências: controle do canal, ciclo da água, o
submarino, simulação elétrica,...
• Geografia: colocar o país no mapa.
• Jogos: xadrez, memória, ligue 4, sudoku,...
• Leitura: prática de leitura.
• Outros: aprender a identificar as horas,
quebra-cabeças com pinturas famosas,
desenho vetorial,...
Childsplay:
É um conjunto de jogos educacionais (Figura 10).
Ideal para o ensino básico e/ou fundamental, usa um
sistema de plug-ins9 o que possibilita uma grande
flexibilidade na expansão da coletânea. Ele usa bibliotecas
SDL10 de desenvolvimento, o que possibilitou a criação
de animações e jogos com som muito instrutivos e fáceis
(ZYTKIEWICZ, 2007).
Kde-Edu:
Programas dirigidos às escolas, aos pais e aos
alunos. São divertidos, coloridos, atrativos e
suficientemente simples para que as crianças usem sem
a supervisão dos pais (MAHFOUF, 2007). Os
programas ajudam na formação dos alunos de maneira
divertida e intuitiva (Figura 11). Os jogos estão divididos
da seguinte forma:
Linguagem:
• Kanagram: indicado para o ensino de Língua
Portuguesa ou Língua Estrangeira.
• KHangMan: jogo da forca.
• Kiten: Aprendizagem da língua japonesa.
• Klatin: Aprendizagem do latim.
• Lettres: Aprendizagem do alfabeto.
• Kverbos: Aprendizagem da língua espanhola.
• KvocTrain: Aperfeiçoamento do vocabulário.
Matemática:
• Kbruch: Apresenta operações de soma,
subtração, multiplicação e divisão de frações,
fatoração, comparação de valores e conversão.
• Kig: Aplicativo para a exploração de
construções geométricas.
• KmPlot: Plotter de funções matemáticas.
• Kpercentage: Jogo interativo indicado para o
ensino de porcentagens em Matemática.
Ciência:
• Kalzium: Mostra informações sobre os
elementos da tabela periódica.
• Kstars: Planetário virtual.
Diversos:
• BlinKen: Versão do jogo Simon Says.
• Kgeography: Ensino de geografia.
• Ktouch: Aplicativo para o aperfeiçoamento da
digitação.
• Kturtle: Este é um software de Programação,
onde o usuário, utilizando conceitos e estratégias,
experimenta a realização de um programa.
• KwordQuiz: é um jogo de palavras.
Tuxpaint:
É um programa de criação livre em imagem voltado
para o público infantil, com sons, ícones coloridos e ações
legendadas, facilitando seu uso na inicialização e
introdução ao computador. As cores e formas legendadas
auxiliam no trabalho do educador, servindo como apoio
pedagógico a algum tema a ser trabalhado com os alunos,
como por exemplo: a bandeira do Brasil, que leva três
formas: retângulo, losango e o círculo e as cores amarela
e azul que misturadas surgem o verde. O desenho livre é
mais importante ainda, pois trabalha a expressão e
criação do educando, à medida que a criança vai
trabalhando o seu lado criativo, ela vai interagindo com
as coisas ao seu redor, expressando seus pensamentos
e sentimentos (Figura 12). Para o professor é uma maneira
de conhecer os gostos e idéias do aluno, como exemplo:
se o menino desenhou uma bola ou um revolver, e a
menina fez uma flor chorando ou usou cores alegres.
(Kendrick,2007)
75
Com os softwares definidos, partiu-se para suas
instalações, no entanto foi um trabalho difícil, pois como
o Slackware foi instalado de maneira reduzida, era
necessário analisar quais as dependências de pacotes
que cada software precisava. Enfatiza-se esta dificuldade
pelo fato que não existe nenhuma ferramenta que resolve
o problema das dependências como encontrado em
outras distribuições.
configuração padrão do sistema, ajustando o
comportamento dos programas, organizando os menus
e arrumando a parte visual acaba sendo umas das partes
mais importantes ao desenvolver um sistema destinado
a usuários de pouco conhecimento, já que é necessário
criar um ambiente agradável e de fácil utilização.
Conforme a idéia acima, a personalização do ambiente
gráfico consistiu na mudança da tela de apresentação
do KDE (Figura 14, uma criação do colaborador Júlio
César Rodrigues), criação de papéis de paredes (Figura
15), temas e ícones, isto para que o usuário sinta-se a
vontade e possa desfrutar de um sistema amigável.
Personalização Gráfica:
É imprescindível garantir a atenção e interesse do
usuário desde a inicialização do sistema até sua utilização.
Dessa maneira, a instalação e configuração do
bootsplash tornam-se evidente, pois o mesmo oculta
do usuário o trabalho sendo feito pelo sistema
operacional e apenas apresenta uma imagem (Figura 13)
agradável com uma barra de progresso indicando o
tempo restante para o sistema estar disponível para uso.
O bootsplash ilustrado na Figura 13 também faz parte
das personalizações feitas durante o desenvolvimento da
distribuição LinuxKidX. Aqui vale fazer uma referência
ao colaborador Rafael Calheiro pelo design da imagem
utilizada no bootsplash.
Segundo (MORIMOTO, 2006) personalizar a
76
Criação do LiveCD:
Conforme a metodologia utilizada, quanto maior
for a capacidade de compactação, maior a quantidade
de recursos disponíveis no CD. Portanto o LinuxKidX
utilizou o conjunto de scripts Linux-Live, o qual permite
criar seu próprio LiveCD de sua distribuição Linux
favorita, além dessa vantagem ele também permite iniciar
o sistema a partir de pen-drives. Esses scripts
possibilitam a inicialização muito rápida do sistema
operacional, e o mesmo possui uma excelente taxa de
compactação podendo comprimir 2.5GB em 700MB,
ou seja, uma redução de espaço da ordem de
3,6 vezes. Com isso, apenas é necessário executar
esses scripts na distribuição trabalhada e
confeccionar o LiveCD contendo todas as tarefas
realizadas.
Para que o conjunto de scripts Linux-Live
crie corretamente o LiveCD, é necessário que
os patchs AUFS, Squashfs e LMZA estejam
aplicados corretamente no kernel como descrito
anteriormente. Para gerar o LiveCD deve-se
entrar na pasta do Linux-Live e executar o
comando “./build”, cuja finalidade é gerar
uma pasta de nome “LIVE_DATA1234” onde
“1234” é um número aleatório que varia de acordo
com a hora do sistema operacional. Nesta pasta foram
gerados todos os arquivos compactados do LiveCD e
os arquivos necessários para a inicialização do sistema
operacional a partir de um CD. Quando o comando “./
build” é finalizado, resta executar o último comando
para que se crie a imagem da distribuição, este comando
é o “./make_iso.sh”, armazenado dentro da pasta
“LIVE_DATA1234”.
Resultados
É fundamental que a detecção de hardware do
LinuxKidX funcione corretamente, pois todos os
drivers11 são configurados automaticamente sem
interação do usuário. Para verificar esse funcionamento
após o desenvolvimento, foram realizados diversos testes
com os mais variados computadores, a saber: Celeron
2.66MHZ com 1GB RAM, Pentium 4 3.0MHZ HT com
512MB RAM, Dual Core 1.83MHZ com 2GB RAM,
Duron 800MHZ com 256MB RAM, Athlon XP 2.2GHZ
com 512GB RAM, Pentium III 750MHZ com 256MB
RAM e Pentium M 2.0 com 1GB RAM. A idéia era
verificar se o LinuxKidX seria capaz de detectar os
dispositivos de som, vídeo e rede. Os resultados obtidos
estão ilustrados no Gráfico 1. Pode-se notar pelo Gráfico
1 que dentre os 7 computadores testados, envolvendo
as 3 tarefas de detecção (som, vídeo e rede), em apenas
um único caso a detecção não foi possível, ou seja, a
detecção de hardware foi efetiva em 95,24% dos casos.
Outra análise realizada foi quanto ao uso do
LinuxKidX. Para tanto, realizou-se uma pesquisa com
10 crianças com idade média de 7 anos de idade e 10
adultos entre 18 e 40 anos de idade, não mais pessoas
devido ao trabalho ter sido concluído recentemente. Foi
solicitado que utilizassem o LinuxKidX, sem um tempo
mínimo ou máximo como limitantes.
Constatou-se que as crianças:
• Utilizaram à distribuição por mais de 30 minutos.
• Passaram todo o tempo com a atenção retida.
• Trocaram de jogos sem auxílio de um adulto.
• Não questionaram sobre o uso do LinuxKidX.
• A maioria conseguiu utilizar o sistema sem
maiores dificuldades.
Constatou-se que os adultos:
• Interagirão facilmente com o sistema.
• Interessaram-se nos jogos educativos.
• Utilizaram ao menos por 1 hora.
• O visual não despertou o interesse por questões
técnicas, o que faz concluir que a interface
consegue distanciar bem o usuário do computador
enquanto ferramenta. É uma abstração do
computador.
Esses resultados ainda são incipientes e não foi
utilizado nenhum método estatístico que garanta
confiabilidade nos resultados. Os resultados foram
colocados como uma prévia do desempenho da
distribuição na detecção de hardware e da aceitação
pelos usuários. Pretende-se no futuro proceder com uma
análise mais criteriosa que considere métodos estatísticos
mais adequados, os quais, para o momento e nível de
maturidade do projeto não foram julgados necessários.
Considerações Finais
O trabalho descrito neste artigo teve como
77
propósito realizar um estudo sobre o sistema
operacional Linux e o desenvolvimento de uma
distribuição personalizada contendo softwares livres
com fins educativos. Como distribuição base foi escolhido
o Slackware, devido a suas características de robustez,
confiabilidade, rapidez e estabilidade. O fato do
Slackware ser uma distribuição complexa de ser utilizada,
despertou o interesse pelo desafio lançado, o que motivou
ainda mais o desenvolvimento deste trabalho.
As maiores contribuições do trabalho estão nos
scripts detecção de hardware que em conjunto com a
interface agradável tornaram a distribuição desenvolvida
bastante amigável. O usuário fica livre do tecnicismo
costumeiro do Linux para poder desfrutar de uma
distribuição que prima pela interface de fácil uso e
recheada de softwares educacionais. Os resultados de
detecção de hardware e uso do sistema, mesmo que
preliminares, mostram que o trabalho desenvolvido
alcançou seus objetivos.
Como trabalhos futuros, pretende-se continuar o
aprimoramento do LinuxKidX, adicionando novos
softwares educacionais, customizações e scripts para
detecção de hardware. Ainda, pretende-se fazer uma
avaliação da usabilidade com melhor confiabilidade
estatística, bem como tornar o LinuxKidX uma
distribuição possível de ser instalada no computador.
Referências Bibliográficas
BRICKNER, David. Test driving Linux: from Windows
to Linux in 60 seconds, Oreilly & Assoc, 2005.
CESATI, Marco; BOVET, Daniel Pierre. Understanding
the Linux kernel, Oreilly & Assoc, 2006.
COUDOIN, Bruno.Gcompris. Disponível em:
<http://gcompris.net> Acesso em: 10 nov. 2007
Kendrick,
Bill. Tuxpaint. Disponível em:
<http://www.tuxpaint.orgt> Acesso em: 10 nov. 2007
LAURENT, Andrew M. Understanding open source
and free software licensing, Oreilly & Assoc, 2004.
LEMOS, André. Cibercidade 2: A cidade na sociedade
da informação, Rio de Janeiro: E-papers, 2005.
LUNARDI, Marco Agisander. Dicionário de
informática. São Paulo: Ciência Moderna, 2006.
MAHFOUF, Anne Marie. Kdeedu. Disponível em:
<http://edu.kde.org> Acesso em: 10 nov. 2007
MATEJICEK, Tomas. Linux-live. Disponível em:
<http://linux-live.org> Acesso em: 21 ago. 2007.
MISHRA, Sanjaya; SHARMA, Ramesh. Interactive
multimedia in education and training, Idea Group
Publishing, 2004.
MORIMOTO, Carlos Eduardo. Linux: Ferramentas
técnicas, Porto Alegre: Meridional, 2006.
MORIMOTO, Carlos Eduardo. Linux: Entendendo o
78
sistema: guia prático, Porto Alegre: Sul Editores, 2005a.
MORIMOTO, Carlos Eduardo. Kurumin Linux:
Desvendando seus segredos, Rio de Janeiro: Alta Books,
2005b.
Quer dizer que a esquerda acabou: Revista caros amigos.
São Paulo: Casa Amarela, 1996-.
RIVERA, Antonio Rodríguez. JuegaLinEx: 142 Juegos
para Linux, Madrid: Nowtilus,2006.
ZYTKIEWICZ, Stas. Childsplay. Disponível em:
<http://childsplay.sourceforge.net> Acesso em: 10 nov.
2007
Notas
1
Conjunto de softwares desenvolvidos e disponibilizados
na plataforma Linux (MORIMOTO, 2006).
2
Nome atribuído à distribuição Linux desenvolvida neste
trabalho, a qual faz alusão ao Linux e ao fato de seu uso
ser destinado às crianças (kids em inglês). Por ser um
nome próprio de nossa criação, não utilizará neste artigo
o grifo que denota palavras em língua inglesa.
3
Um LiveCD é um CD que contém um sistema
operacional, não necessitando que o mesmo esteja gravado
no disco rígido.
4
No Linux, geralmente os aplicativos vêem em forma de
código-fonte, então o usuário tem que baixar e compilar.
Os pacotes servem justamente para facilitar o trabalho
do usuário, dando a ele um arquivo empacotado com o
código já compilado.
5
Um script é um arquivo de texto, com uma seqüência
de comandos que são interpretados linha a linha
(MORIMOTO, 2006).
6
O Xwindow, ou simplesmente “X” é a interface gráfica
usada em diversos sistemas Unix, incluindo o Linux.
7
Existe um site que trata de todos os passos para a
confecção de um LiveCD, indicando as personalizações
a serem feitas e dificuldades que devem ser enfrentadas,
as quais são muito particulares para cada distribuição a
ser criada (MATEJICEK, 2007).
8
Um link é uma entrada no diretório (vistos como um
arquivo/diretório) que apontam para um outro arquivo/
diretório. É comum se ter links simbólicos que apontam
para programas executáveis.
9
Extensões que adicionam novos recursos ao programa,
sendo os mais famosos aqueles para navegadores internet
(LUNARDI, 2006).
10
É uma biblioteca multimídia e multi-plataforma escrita
em C (mas diretamente compatível com C++ e tem
interfaces para outras linguagens de programação, como
Ada, Eiffel, Java, Lua, ML, Perl, PHP, Pike, Python, e
Ruby).
11
São arquivos de configuração responsáveis pelo
gerenciamento específico de hardware do computador.
Download