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