Linux em casa, na escola e no trabalho

Republicação do artigo  Linux em Casa, na escola e no trabalho.


Este é um artigo especial, quebrando um pouco nossa sequência de artigos sobre o ambiente gráfico do Linux.

Eu o estou publicando com o intuito de semear uma idéia nova. Sabemos que a educação tem sofrido cada vez mais por falta de verbas. Sabemos que temos um déficit tecnológico muito grande, se comparado aos países desenvolvidos. Somos consumidores de tecnologias às quais não temos acesso, especialmente em informática.

Será que um sistema de livre distribuição e aberto como o linux, robusto e eficiente, com uma vasta gama de aplicativos prontos para serem usados, aperfeiçoados e modificados de acordo com nossos próprios interesses não poderia ajudar a amenizar o problema? É o que proponho nesta palestra, e neste artigo. Segue o texto que foi enviado por e-mail a todos os participantes da palestra do dia 25/03/199 na Unicamp, entitulada "Linux: em casa, na escola e no trabalho":


Este é um resumo do que foi apresentado e dos links interessantes que motivaram a palestra, indo um pouco além e acrescentando algumas idéias motivadas pela discussão do tema.

Este texto será publicado como um artigo especial na seção de Linux da Revista de Informação e Tecnologia da Unicamp, http://www.revista.unicamp.br . Gostaria que este artigo fosse visto, lido e considerado por todos aqueles que têm preocupação com a educação e com informática, podendo ser entendido como uma carta aberta a educadores, educandos e seus responsáveis, bem como aos responsáveis pela criação de uma estrutura mais democrática de ensino de informática no país.

Este artigo será publicado na Core News/Artigos especiais: http://thecore.com.br/artigos/

A idéia desta palestra é semear a discussão sobre o uso do Linux na Educação, a exemplo do que está acontecendo em outros países. O Brasil possui seu programa de informatização escolar, chamado Proinfo (http://www.proinfo.gov.br), seu site é muito informativo e interessante, ao apresentar dados relacionando a importância do domínio da informação e da democratização do acesso à internet e tecnologia de informação.

O início da palestra incluiu uma leitura comentada dos trechos mais interessantes para iniciar a discussão. Existe também, no site do Proinfo, um quadro explicativo dos recursos destinados à execução do projeto que deveria levar à informatização de 48 mil escolas da rede pública de primeiro e segundo graus.

Das páginas do Proinfo, gostaria de ressaltar:

Do Item 2: Justificativa

"Especialistas afirmam que a maioria dos empregos que existirão nos próximos dez anos ainda não existem hoje, porque o conhecimento especializado está tendo uma vida média cada vez menor e será, muito provavelmente, substituído ou complementado por outro a curto e médio prazos. Isto faz crescer a importância da capacitação de recursos humanos, porque os indivíduos não devem ser formados apenas uma vez durante sua vida profissional: novas qualificações em função de novas necessidades impõem constantes aperfeiçoamentos."

No item "Estratégia" versando sobre as diretrizes estratégicas do programa:

"fomentar a mudança de cultura no sistema público de ensino de 1º e 2º graus, de forma a torná-lo apto a preparar cidadãos capazes de interagir numa sociedade cada vez mais tecnologicamente desenvolvida"

E finalmente, nas especificações técnicas:

"A utilização de microcomputadores compatíveis com o padrão IBM/PC predomina no Brasil. Em quase todos estes computadores operam, em várias versões, uma interface gráfica do tipo MS-Windows e um conjunto integrado de software para automação de escritórios composto, em geral, por editor de textos, planilha de cálculo eletrônica, gerenciador de banco de dados relacional e gerador de apresentações. O momento atual da informatização no Brasil também é caracterizado pelo crescimento da interligação de computadores em rede e à Internet e do uso de recursos sofisticados, como impressão em cores e multimídia. O modelo tecnológico disponibilizado pelo MEC para a rede pública de ensino, deverá ser o mais próximo possível do predominante nas organizações informatizadas do Brasil, pois estas constituem importante fatia do mercado de trabalho dos egressos das escolas públicas. Por isto, o MEC deverá adquirir:

1.microcomputadores compatível com o padrão IBM/PC;
2.impressoras policromáticas com tecnologia ink jet;
3.interface gráfica do tipo MS-Windows;
4.conjunto integrado de software para automação de escritórios;
5.hardware e software necessários para interligar os computadores fornecidos entre si, à Internet e à TV-ESCOLA;
6.kits multimídia;
7.software simulador de uso da Internet (destinado a escolas em que não há serviços de comunicação ou recursos financeiros para contratá-los).

Os microcomputadores, em princípio, deverão ter processadores da categoria Pentium, atualmente bottom line de processadores Intel. As especificações dos equipamento que o MEC entregará aos estados, para serem instalados nas escolas públicas, destinam-se a permitir:

- o uso de software educativo por um período mínimo de cinco anos (sem custos significativos de atualização tecnológica);
- a utilização de recursos de informática com características ergonômicas e de segurança adequadas à preservação da integridade do educando;
- a formação da Rede Nacional de Informática na Educação;
- a otimização do processo de gestão escolar e de avaliação educacional; a interação escola/comunidade, inclusive através de cursos da área de informática abertos à comunidade;
- a maximização do tempo de funcionamento contínuo (hardware e software), decorrente do uso de tecnologia robusta e amplamente dominada (isto determina existência de suprimentos e assistência técnica em um grande número de localidades).

A velocidade da evolução tecnológica e a variação da relação custo/benefício em função da tecnologia empregada não recomendam, neste momento, um completo detalhamento do conjunto hardware/software que será adquirido neste programa."

O Proinfo tem a preocupação com a defasagem da tecnologia. Ao definir características técnicas de software e equipamento durante a elaboração do projeto, corre-se o risco (que sabemos ser quase certo) de que os componentes já estarão obsoletos ao chegar às escolas. Alem disso, existe a preocupação de que o conhecimento específico se torne obsoleto rapidamente. Não basta ensinarmos alguém a usar o editor de textos X, o que deve ser feito é ensinar às pessoas o que é um editor de textos, criar uma vivência com editores de texto, de forma genérica. Não vou evitar aqui a tentação de usar um clichê, "não dar o peixe, ensinar a pescar".

É unânime que precisamos criar nas pessoas a intimidade com computadores e com tecnologia de comunicação, ensinar as pessoas a usar e ousar com computadores, ter uma postura ativa perante a máquina, dominá-la e não temê-la.

Ao mesmo tempo que o texto do Proinfo aponta todas estas necessidades ele se contradiz ao basear toda sua estrutura em tendências de mercado. Em um ponto, afirma que o conhecimento específico tem vida muito curta, em seguida determina que a estrutura educacional em informática deve ser baseada em tendências que evoluem na mesma velocidade que os ditos conhecimentos específicos.

Seria prático, ou mesmo factível, um programa de ensino de informática que se mantivesse constantemente atualizado em matéria de software com o que está em uso no mercado? Pode ser, mas os custos de atualizações constantes inviabilizariam tal projeto. Aqui começa a aparecer aquela que sempre foi propagandeada como a principal vantagem do uso do Linux (Software Livre em geral): seu custo. Ao meu ver existem vantagens ainda maiores que podem ser aproveitadas, que discutiremos a seguir.

Eu gostaria de citar o programa de informatização do México que tem por objetivo informatizar 140 mil escolas de ensino médio e fundamental no país em um prazo de 5 anos e criar a rede nacional de ensino. Objetivos muito semelhantes aos do Proinfo, tanto em prazo quanto em estrutura. Centros regionais interligados entre si e à internet, escolas com redes locais, laboratórios com PCs , interligando-se às regionais via linha discada (dial-up) onde não houver recursos para manutenção de linhas de dados. A diferença está basicamente no software. O México escolheu usar Linux em todos os computadores, servidores ou desktop, ao passo que o Brasil padronizou Windows como sistema operacional, tendo em vista o chamado "Padrão" de informatização do mercado brasileiro.

Vale lembrar que o Linux exige conhecimentos específicos para sua instalação e manutenção e que esta estrutura estaria nas mãos de professores que, em sua maioria, não necessitam dominar os conceitos necessários para instalar e configurar um Linux para funcionar em rede. Mais uma vez, vou citar o que se pretende fazer no México. Linux é um sistema livre e aberto. Pode-se copiá-lo à vontade, modificá-lo e redistribuí-lo.

O plano no México é criar CDs "Master" com toda a customização comum previamente feita, com programas instaladores que necessitassem apenas dos parâmetros específicos, como endereços de rede, e etc. Estas "masters" seriam disponibilizadas às escolas e em sites de ftp nas regionais.

O fator determinante do uso de Linux no México foi o custo, mas existem outras vantagens em se usar Unix (qualquer um) para educar um iniciante em informática ao invés do Windows.

O Sistema operacional Windows foi feito de forma a tornar a computação segura para leigos, produzir o máximo sem exigir conhecimento de informática e com uma curva mínima de aprendizado, por isso é tão popular.

O sistema praticamente aboliu a linha de comando, optando pela interface gráfica para todas as tarefas de manutenção da máquina e de produtividade. Tudo pode ser feito através do uso de algumas primitivas básicas, por exemplo o click e o duplo click dos botões do mouse, combinações de teclas, e o drag'n'drop , o ato de se arrastar um ícone e posicioná-lo sobre outro na tela.

Embora esse artifício aumente consideravelmente a produtividade em determinadas tarefas, cria uma dependência do usuário com a interface. Quando um programador cria uma interface gráfica, ele deve prever quais serão as atividades que o usuário deverá desempenhar e quais os problemas que podem ocorrer, criando opções de menu ou outro artifício para que a tarefa seja desempenhada de maneira simples.

Essa forma de interação com o computador cria uma experiência passiva para o usuário, que reage ao que o sistema apresenta. Quando executamos uma ação inválida frequentemente o sistema nos apresenta uma caixa de diálogo com as opções que a interface oferece para a solução do problema (por exemplo: Cancelar, Ignorar e Ok) e nossa faixa de ação será limitada por ela. Devemos assumir a postura passiva e escolher a opção que parece mais conveniente quando a postura de determinar o problema e buscar soluções alternativas foi assumida pelo próprio sistema operacional.

Refletindo veremos que esse padrão se repete em diversas outras áreas, como na arte. De início, músicas eram vendidas em partituras, as pessoas precisavam saber tocar um instrumento para ter a experiência da música. Com a música gravada mais pessoas tiveram acesso à musica, mas saber música tornou-se cada vez menos necessário (hoje nem mesmo músicos precisam conhecer música).

A literatura e a imprensa escrita perderam muito espaço para a televisão e o cinema, as pessoas lêem cada vez menos. A informação é transmitida de forma cada vez mais visual, as imagens chegam prontas e privam as pessoas do exercício da imaginação. Somos limitados à interpretação que o diretor do filme teve da obra literária. Para aqueles que lêem o livro antes, o filme sempre peca por sintetizar em demasia ou ignorar detalhes saborosos da peça.

Por outro lado, temos os sistemas Unix (categoria na qual se encaixa o Linux) sistemas feitos por cientistas e pesquisadores, para cientistas e pesquisadores.

O Unix tem na linha de comando uma tradição muito forte, chegando a existir o mito de que não existe uma interface gráfica consistente e fácil de usar para Unix. Ela de fato existe, e apresenta recursos muito mais poderosos em rede do que as interfaces gráficas dos sistemas que evoluiram a partir do conceito do "microcomputador pessoal".

Na lista de links eu acrescentei alguns links para artigos que tenho escrito no assunto, acessiveis via www.

No Linux toda a configuração é feita através de arquivos texto, que podem ser editados manualmente. Existem programas gráficos para efetuar a maioria destas configurações, mas o que eles fazem é editar estes arquivos texto modificando-os de acordo com as vontades expressadas pelo usuário. Os arquivos texto com as definições completas estarão sempre presentes, caso precisemos de ajustes finos ou de cópias de segurança.

Com as ferramentas em mãos, podemos atacar de forma mais efetiva as situações imprevistas. Linux proporciona a praticidade, conforto e eficiência de uma interface gráfica (semelhante à do Windows, caso se deseje) , aliada ao poder proporcionado pelo seu rico conjunto de ferramentas e arquivos de configuração. Não que outros sistemas não disponibilizem tais ferramentas, o problema é que a informação só se torna acessível mediante pagamento de altas taxas. No Linux todos os pacotes de desenvolvimento estão inclusos no sistema sem custo adicional e a informação de como usar, ou mesmo modificá-los, está disponível para todos que dela precisem.

O design do Unix é consistente, os aplicativos e arquivos de configuração são instalados em locações bem definidas. A modularização é a característica principal, cada módulo é responsável por fazer o que se propõe, e fazer bem feito, isso se estende dos comandos básicos aos servidores web e ambiente de janelas.

Se ensinarmos às crianças, adolescentes e profissionais de informática apenas a usar interfaces para a resolução dos problemas estaremos limitando os problemas que podem ser resolvidos àqueles previstos pela interface gráfica, e privando estas pessoas do exercício da lógica.

Linux seria então em nossa analogia, o culto à palavra escrita. Existe um alfabeto básico a ser aprendido, palavras com significados e conceitos associados. Conceitos que o usuário irá estender, combinando-os como blocos de montar para construir algo maior, aprendendo a ver problemas grandes como sendo compostos por partes menores, dividindo-os para solucioná-los. Expressando-se através de ferramentas e do uso da lógica, lidando com conceitos que o tornarão um profissional mais versátil e generalista, como o mercado demonstra que precisa.

Linux possui a facilidade da interface gráfica aliada ao poder e flexibilidade de um conjunto de comandos rico e bem estruturado, não temo em afirmar que o uso de Linux como base para o entendimento da informática cria usuários com conhecimento sólido de conceitos importantes que irão servir em vários sistemas operacionais e pacotes de aplicativos.

É fato que se um usuário de Linux tiver seu papel subitamente trocado com o de um usuário de Windows, o primeiro conseguirá começar a produzir em muito menos tempo no novo sistema do que o último, pelas razões que discuto aqui. Incluí, ao final deste artigo, um exemplo técnico de como uma situação imprevista poderia ser resolvida com alguns comandos básicos de Unix. Este trecho é de leitura opcional neste artigo servindo como complemento para aqueles com uma maior vivência técnica em informática.

As redes TCP/IP (como o caso da Internet) praticamente nasceram no Unix, que tem tradição de sistema operacional de rede. Desde a época em que rede significava um servidor central com vários terminais texto acoplados.

O Linux tem suporte nativo à redes TCP/IP, terminais seriais, ftp, e-mail e muito mais. Isso faz parte do dia-a-dia dos usuários de redes Unix há muito tempo e só passou a fazer parte do cotidiano dos sistemas operacionais para micros pessoais quando a Internet deixou de ser exclusivamente um meio de comunicação entre acadêmicos.

A WWW (World Wide Web) nasceu como um meio de comunicação para que físicos pudessem disponibilizar resultados de experimentos para os demais físicos. E em seu início, o browser netscape (à época com licença por unidade) não tinha versão para Windows, nem se cogitava a criação de uma.

Pode-se ter a experiência de uso da internet com apenas um computador com Linux. Para uma experiência mais completa, dois computadores, ligados em rede seriam suficientes. Um pequeno laboratório com (digamos) cinco micros com Linux seria um universo tão grande como a internet para experimentação, mesmo se isolado desta. Por exemplo, para uma escola muito pobre, que teria no máximo condições de adquirir (ou receber por doação) um ou dois micros 486. Não se pode ensinar muito sobre e-mail, Web e internet com isso, certo? Errado! Com Linux pode-se criar a ilusão de existirem dois sites internet, e de se enviar e-mail entre eles, assim uma criança poderia ver como tudo acontece dos dois lados.

Pode-se executar servidores WWW nos dois micros, criar múltiplos domínios (domínios virtuais) nestes dois servidores, dando a ilusão de que existem mais computadores em rede. Se não houver recursos para se criar uma rede entre estes dois micros? Linux provê nativamente protocolos que permitem a utilização de rede TCP/IP sobre linha paralela, a mesma usada para conectar impressoras, ou mesmo através da porta serial, usada pelo Mouse.

Na internet tudo ocorre entre dois computadores, um agindo como servidor e um como cliente, e este é o mínimo que se necessita para dar a experiência completa de uso da internet, com os dados viajando através de um cabo entre os dois, se houver apenas um computador disponível essa virtualização pode ser feita localmente, tendo o mesmo computador agindo como cliente e servidor.

No caso de um computador apenas, os dados não viajariam até um computador remoto, mas ainda assim a experiência será completa e real, sem uso de "simuladores de acesso à internet", usando apenas software que é usado em alguns dos principais servidores na própria internet em uma situação tão extrema que não seria viável sequer a utilização de outros sistemas operacionais.

A propósito, sim, tudo isso é viável com máquinas tão obsoletas quanto um 486.

Um outro aspecto negativo do uso de software comercial: Se esta escola pobre não comprar licensas de software comercial para estas máquinas estará cometendo o crime da pirataria. Se não pagar por atualizações o software se tornará obsoleto.

Além do uso em ambientes onde há severas restrições financeiras como o descrito, Linux tem muito a oferecer para grandes laboratórios e empresas e para a pesquisa e desenvolvimento de tecnologia. Não podemos descartar o fato de que todos os segredos do sistema operacional são abertos. Se um pesquisador nacional precisa modificar características de seu sistema operacional ou se inspirar nas soluções adotadas por outras pessoas na resolução de problemas semelhantes ao seu, Linux oferece a oportunidade. Oportunidade essa negada pela maioria dos sistemas e ferramentas comerciais.

Não seria esta uma excelente oportunidade para amenizarmos o distanciamento tecnológico que temos perante os países de primeiro mundo? Uma oportunidade de criarmos nossas próprias soluções ao invés de nos limitarmos a consumidores da tecnologia estrangeira? Porque países em situações tão diferentes como México, França e Estados Unidos começam a usar de maneira tão intensa ferramentas de Software Livre em escolas de primeiro e segundo graus? Seria prudente ignorar este potencial?

As pessoas têm ouvido falar de Linux em seus ambientes de trabalho, começam a utilizá-lo em casa em seu dia-a-dia, não seria a hora de estendermos seu uso também às escolas, mesmo que de maneira gradual? Fica aqui a mensagem, usemos software livre e aproveitemos dos benefícios indiretos além do baixo custo. E por que não usá-lo "Na escola, em casa e no trabalho?".

Coloco-me à disposição para discutir o assunto, ou solucionar qualquer dúvida pertinente a esta palestra (texto). [email protected]


Exemplo técnico

Um exemplo: No Unix cada usuário tem um diretório próprio, considerado sua casa (de fato este diretório é conhecido como home) onde ele se organiza e guarda seus arquivos. No Linux tradicionalmente temos todos os diretórios dos usuários sob o diretório '/home' , assim o diretório do usuário 'macan' seria '/home/macan'. Caso um usuário de Linux (digamos o administrador do sistema) deseje saber quais os usuários que mais consomem espaço em disco ele poderia fazer isso da seguinte forma:

cd /home
du -sk * | sort -nr | head

O comando du (de Disk Usage) se propõe a apresentar a ocupação de disco de arquivos e diretórios, indicando em cada linha o espaço total ocupado e o diretório ou arquivo que o ocupa. Ele oferece diversas opções para oferecer uma grande flexibilidade dentro de sua função, a opção 's' (de summarize) apresenta apenas o total ocupado pelo diretório sem mostrar quanto ocupa cada arquivo dentro dele, a opção 'k' determina que queremos o resultado em Kilobytes. A lista será apresentada, um diretório por linha, na forma "NNNNN dirdirdir", onde NNNNN é a ocupação em Kbytes, e "dirdirdir" é o nome do diretório.

O resultado obtido está desordenado, então usaremos o comando "sort" (ordenação) para ordenarmos nossa lista. Mais uma vez, este comando se propõe a ordenar as linhas de um arquivo, e a oferecer um grande número de opções para isso. A opção "n" usada no exemplo, diz que queremos que a ordenação seja por ordem numérica (para que ele considere o valor na ordenação e não os caracteres, senão 1200 viria antes de 200 por exemplo, por que 1 é menor que 2). A opção "r" indica que queremos que a ordenação seja reversa, ou seja, do maior para o menor, assim o que ocupar mais disco aparece no topo da lista.

Por fim, gostaríamos de limitar nossa lista, já que poderíamos ter centenas de usuários e queremos saber apenas os maiores consumidores de disco, o comando "head" se propõe a mostrar as linhas iniciais de um arquivo, se um número de linhas não for especificado, ele mostra as dez primeiras por default, o nosso caso.

A combinação destes comandos através do | (pipe, lê-se "paip" e significa cano) faz com que a saída do comando à esquerda seja utilizada como dado de entrada para o comando à direita do pipe , uma sequência arbitrariamente grande de comandos podem ser encadeados desta forma. Digamos que o resultado deva ser enviado para alguém pela internet, poderíamos encadear mais um comando...

du -sk * | sort -nr | head | mail [email protected]

Agora, o resultado está sendo enviado por e-mail para outra pessoa. Caso quisessemos que isto ocorresse semanalmente de forma automática poderíamos agendar a execução periódica deste comando, através de uma facilidade do Unix chamada "cron".

Se não dispuséssemos destes recursos de comandos teríamos de depender de um programa específico que executasse esta operação, ou de um programa de administração que dispusesse desta característica.

Desta forma estamos amarrados quando nos dedicamos exclusivamente à interface gráfica, pois dependemos da existência da inteface para a execução de nossa tarefa. Muito provavelmente uma interface de administração iria nos prover dos relatórios de uso, mas dificilmente teríamos como agendar a execução semanal e o envio de e-mail (citando nosso exemplo) com esta interface.

Mesmo que tivessemos funcionalidades equivalentes na interface gráfica estariamos desprezando toda a lógica da execução de comandos. Para chegar ao comando final, raciocinamos da seguinte forma:

"Preciso de um relatório do espaço ocupado por todos os usuários" e chegamos ao comando "du -sk * no diretório /home".

"Gostaria que esta lista fosse ordenada do maior valor para o menor valor" e chegamos ao " | sort -nr".

"Gostaria que apenas os dez primeiros elementos fossem mostrados" e chegamos ao "| head".

Veja que para chegar à resposta do problema tivemos que dividi-lo em partes bem definidas, encontrar soluções para cada uma destas partes e montar o comando final, quando simplesmente resolvemos o problema através de selecionar um botão do menu ou algo semelhante, não estamos nos preocupando com a lógica.


Links interessantes e/ou que motivaram a palestra:

Linux Brasil -- Página principal
"http://linux.unicamp.br/"

Core News, notícias em português sobre Linux.
"http://thecore.com.br"

Revista da Unicamp - artigos de Linux.
"http://ww.revista.unicamp.br"

Debian GNU/Linux -- The Universal Operating System
"http://www.debian.org/index.pt.html

LinUSP - Linux @ Universidade Estadual de São Paulo
"http://www.linusp.usp.br/"

Debian GNU/Linux -- The Universal Operating System
"http://www.debian.org/index.pt.html"

Slashdot:Unix as an element of literacy
"http://slashdot.org/articles/98/12/22/196214.shtml"

Performance Computing - Features - The Elements Of Style: UNIX As Literature
"http://www.wenet.net/~scoville/PCarticle.html"

Linux Today: Mexican project plans to deploy 140,000 Linux labs in schools
"http://linuxtoday.com/stories/462.html"

Technology News from Wired News
"http://www.wired.com/news/news/technology/story/16107.html"

K-12 Linux in Schools Project
"http://www.riverdale.k12.or.us/linux/k12linux/"

Slashdot:Linux's status in Education
"http://slashdot.org/articles/98/11/06/2213248.shtml"

Slashdot:Significance French Education's Linux move
"http://slashdot.org/articles/98/11/02/1659247.shtml"

[linux-br] 140,000 Mexican school labs to be outfitted with Linux and GNOME.
"http://www.linux.unicamp.br/linux-br/arquivo/msg03406.html"

[linux-br] Re: 140,000 Mexican school labs to be outfitted with Linux and GNOME
"http://linux.unicamp.br/linux-br/arquivo/msg03414.html"

[linux-br] Mal-entendido sobre MEC...
"http://linux.unicamp.br/linux-br/arquivo/msg03432.html"

[linux-br] Re: Mal-entendido sobre MEC...
"http://www.linux.unicamp.br/linux-br/arquivo/msg03436.html"

Slashdot:World Without Walls
"http://slashdot.org/features/99/02/25/1253222.shtml"

PROINFO - Quadro II
"http://www.proinfo.gov.br/prf_diret_qii.htm"

PROINFO - Diretrizes do PROINFO
"http://www.proinfo.gov.br/prf_diretrizes.htm"

PROINFO - Quadro I
"http://www.proinfo.gov.br/prf_diret_qi.htm"

Comente de volta!