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"

Toolkits Gráficos

Artigo originalmente escrito para a revista online da unicamp

Atenção, este artigo foi escrito em 1999!

Toolkits

Vimos em nosso último artigo que o Linux, como a maioria dos sistemas Unix, possui um ambiente gráfico baseado em arquitetura cliente-servidor chamado "X Window System". O X Window System provê a funcionalidade de rede do sistema gráfico, o controle dos dispositivos gráficos e de entrada (mouse, teclado) do sistema e algumas primitivas básicas de desenho (linhas, pontos, cores, etc).

Para uma apresentação completa ao usuário precisa-se uma definição do que se convencionou chamar de "Look and Feel" ou seja, a aparência e o comportamento do ambiente gráfico que são implementadas por duas camadas adicionais de software: os "Graphical User Interface toolkits" (ou simplesmente toolkits) e os "Window Managers". Neste artigo exploraremos os toolkits.

Os toolkits são ferramentas para a programação em ambiente gráfico. Quando um programador cria um novo programa para Windows ele não tem muita escolha além de usar os botões, barras de rolagem e outros "widgets" (recursos de interação com o usuário, como os já citados botões e barras de rolagem) fornecidos pelo sistema. Em Unix, existem várias bibliotecas que implementam o que será a aparência do programa. Dependendo do toolkit usado, a aplicação terá um "Look and Feel" diferente.

À primeira vista este esquema pode parecer confuso, mas lembre-se que os princípios de flexibilidade e de liberdade de escolha foram levados em conta no design dos sistemas Unix. Um programador pode escolher qual Toolkit utilizar para desenvolver sua aplicação de acordo com seus objetivos, necessidades ou qualificações e não ficar amarrado a um "look and feel" específico. O lado bom é que existem toolkits de todas as formas e para todos os gostos, o lado ruim é que a grande variedade de toolkits disponíveis tende a fazer com que não exista uma consistência de look and feel entre todas as aplicações Unix.

Alguns toolkits muito utilizados são:

GTK

GTK+ (The Gimp Toolkit) - http://www.gtk.org.
Originalmente escrito para se desenvolver o gimp (nota de rodapé 1) em substituição ao motif. É uma biblioteca com licença LGPL, ou seja, você pode usá-la, modificá-la e redistribuí-la livremente. É hoje uma das mais utilizadas para a produção de software livre, por ser muito completa e por ser LGPL, além de poder ser utilizada com várias linguagens de programação, como C/C++, Guile, Perl, Python, TOM, Ada95, Free Pascal, Eiffel e outras.

O Mozilla Group estará usando GTK na versão de desenvolvimento do Mozilla (a versão Open Source do Netscape)

Todo o desktop gnome (nota de rodape 2), http://www.gnome.org, e seus aplicativos foram escritos usando-se o Gtk para a interface gráfica.

Algumas telas de exemplos de widgets que GTK fornece:
Botões: http://www.gtk.org/screenshots/buttons.gif
Listas multicoluna: http://www.gtk.org/screenshots/clist.gif
Blocos de Notas: http://www.gtk.org/screenshots/notebook-standard.gif
Seleção de cores: http://www.gtk.org/screenshots/colorselection.gif

Uma lista mais completa de imagens dos widgets fornecidos pela biblioteca GTK pode ser encontrada em:
http://www.gtk.org/screenshots/index-all.html

Lesstif

Lesstif: Um clone livre do Motif 1.2 http://www.lesstif.org Motif é um toolkit comercial cujo padrão é mantido pelo Open Group http://www.opengroup.org (que em artigo anterior eu ja citei dizendo que não era tão "open" assim).

Existem várias implementações comerciais do Motif de vários fabricantes. Todas estas implementações utilizam código fonte escrito pelo Open Group, que precisa ser licenciado. As bibliotecas do Motif estão presentes na maioria dos sistemas comerciais, por isso, grande parte das aplicações comerciais são escritas usando-se Motif.

O Lesstif é um clone livre, escrito completamente do zero e sem se basear no código do Open Group. Ele usa a Licensa LGPL e foi feito por um grupo autoentitulado "The Hungry Programmers" (Os programadores famintos, talvez uma piada com o fato do grupo não produzir software comercial) http://www.hungry.org .

A idéia é que muito software havia sido produzido usando-se Motif como toolkit em outros sistemas Unix e mesmo que o código fonte destas aplicações estivesse disponível estes programas não poderiam ser livres se não existisse uma versão free consistente do motif. Nenhum software é livre se depender de componentes comerciais.

Treeps, um visualizador gráfico de processos escrito usando Lestiff (ou Motif)
http://24.1.97.22/gmd/tps/treepsfm.html
http://24.1.97.22/gmd/graphics/treeps/userdem.gif

Qt

Qt http://www.troll.no/products/qt.html , um Toolkit comercial, feito pela empresa Norueguesa Troll Tech http://www.troll.no .

Existem duas versões desta biblioteca, uma gratuita para fins não comerciais e outra comercial (que inclui qualquer uso em Windows ou Macintosh).

Muitas aplicações foram escritas para Linux (nota de rodapé 3) usando esta biblioteca, o que gerou polêmica pois ela nem sempre foi Completamente Livre (pelo menos até a escrita deste artigo).
Ela desde o início foi gratuita para o desenvolvimento de software livre, mas alguns detalhes de sua licensa impedia a livre distribuição da biblioteca em distribuições de linux, e por consequência, todos os programas que dela dependiam.

Qt é orientado a objetos, e escrita completamente em C++. Um programa escrito usando-se Qt pode ser recompilado em um computador com Windows, pois existe também uma versão (comercial) da biblioteca disponível para este sistema.

A versão do Browser Opera ( http://www.operasoftware.com) para linux usará a biblioteca Qt.
Uma aplicação exemplo do Qt: http://www.troll.no/gif/widgets-cpp.gif
Outros links com exemplos do Qt: http://www.troll.no/exprog.html

Motif

Motif : http://www.opengroup.org/motif
Motif é o toolkit usado por grande parte das aplicações comerciais, como por exemplo o browser netscape em sua versão não-free.
O Open Group controla o padrão e vários revendedores o implementam, pagando uma taxa considerável para licenciar a tecnologia. Para linux, um dos fabricantes que vendem licensas do Motif é a Metro Link:
http://www.metrolink.com/products/motif/

Caso você queira escrever software comercial para linux e não disponibilizar seu código fonte (que coisa feia!) as melhores escolhas são os toolkits Motif e Qt, mas lembre-se das sábias palavras de Linus Torvalds: "Software is like sex. It's better when it's free". ("Software é como sexo, é melhor quando é livre/de graça.").

WxWindows

Um toolkit de nível mais alto do que os demais, com Licença derivada da LGPL, sendo ainda mais liberal e permitindo que software comercial também seja escrito, caso o toolkit com o qual você está ligando o WxWindows também o permita.

O WxWindows é uma biblioteca escrita em C++ que visa ser completamente portável, assim, um programa escrito no Solaris com wxwindows pode ser recompilado no Linux ou no windows com alguma ou nenhuma modificação.

Ele consegue isso sendo uma camada adicional de software sobre vários outros toolkits, criando assim uma interface de programação única tanto para Unix como para Windows, independente do toolkit escolhido.

A biblioteca wxwindows uniformiza outras interfaces, além da gráfica, como a de programação de sockets (rede). Aplicações escritas usando-se WxWindows podem variar seu look and feel ligeiramente entre plataformas, dependendo do toolkit utilizado na plataforma em questão.

Existe a possibilidade de se utilizar WxWindows com algumas linguagens interpretadas, como CLIPS, Python, Scheme, XLisp e Perl.

A Home Page do WxWindows: http://web.ukonline.co.uk/julian.smart/wxwin/


Para aqueles que querem conhecer outros toolkits disponíveis um bom começo pode ser esta lista mais extensa de toolkits, em: http://www.linuxlinks.com/Software/Programming/toolkits/
Outro link muito bom: "The GUI Toolkit, Framework Page" http://home.pacbell.net/atai/guitool/

Agradecimentos:

- a Marcelo de Gomensoro Malheiros <[email protected]> da Core Technologies, http://thecore.com.br , pela revisão prévia e valiosas sugestões e correções a este artigo.

- programa de manipulação gráfica poderosíssimo semelhante ao PhotoShop que terá em breve um artigo só seu aqui na revista: http://www.gimp.org.

- o Desktop GNOME também terá um artigo só seu na revista da Unicamp, após os artigos sobre Window Managers.

- em especial o desktop KDE, que terá também o seu artigo na revista em breve.

O X Window System

O X Window System

A intenção deste artigo é servir de introdução ao X Window System e aos próximos artigos. O X Window System é fonte de constante confusão para grande parte dos usuários que estão acostumados a sistemas operacionais monousuário. A maior parte desta confusão vem do fato do X Window System (ou simplesmente "X") ser um sistema gráfico baseado em arquitetura cliente-servidor. Este será o segundo e o mais "carregado" artigo desta série, mas com informação de fundamental importância.

No MS-DOS não havia um padrão que ditasse a maneira como os programas se comportariam em modo gráfico, cada programa era responsável por entrar em modo gráfico, cuidar de saber qual placa de vídeo você tinha, que resolução era suportada, além de desenhar botões, barras de rolagem, etc. O Windows surgiu como uma solução para este tipo de problema, provendo uma interface comum de programação em ambiente gráfico que garantia consistência de aparência a todas as aplicações. O Windows era um programa que rodava sobre o DOS. Posteriormente, o Windows 95 veio a estreitar as relações entre o Sistema operacional e o ambiente gráfico, de forma a serem indistinguíveis por um usuário comum. Para o usuário do Windows, o ambiente de janelas e o sistema operacional são a mesma coisa(*).

No Unix, o sistema de janelas segue a risca a tradição de se escrever sistemas modulares com funcionalidade rica e bem definida. O X é uma aplicação do usuário e não parte integrante do sistema operacional em si. Voce pode muito bem sobreviver no Unix na completa ausência do sistema de janelas ou escolher um outro sistema de janelas que atenda melhor suas necessidades, caso você o encontre. Esta escolha, como várias outras não existe para usuários Windows.

O X foi desenvolvido no Massachussets Institute of Technology com suporte da Digital Equipment Corporation. O nome e algumas idéias originais de design foram retiradas de um outro sistema chamado "W" desenvolvido em Stanford. Os principais objetivos do projeto eram criar um ambiente gráfico distribuído e independente de hardware. Inicialmente adotado apenas pelo MIT e pela Digital, o X passou a fazer parte de praticamente todas as versões de Unix presentes no mercado, o que inclui o Linux.

O Linux possui várias versões comerciais do X, como o da Xi  Graphics ou da Metro Link, mas a versão que faz parte de quase todas as distribuições é conhecida como XFree86, um projeto que visava criar um ambiente gráfico baseado nas especificações do X de livre distribuição (daí o XFree do nome) para a arquitetura Intel x86 (daí o "86"), mas que hoje roda em várias outras arquiteturas e sistemas, incluindo o OS/2.

Afinal de contas, o que é o X? Em termos simples, o X é um programa servidor de rede (em Unix, conhecidos como daemons) cujas atribuições principais são entrar em modo gráfico, criar janelas (áreas geralmente quadradas na tela) e responder a eventos dos dispositivos de entrada (geralmente Mouse e Teclado) que atuem nestas áreas da "tela", desenhar texto em diversos tamanhos e fontes e fornecer primitivas para desenho (linhas, pontos, cores, etc.).

O X fornece as funcionalidades de rede, gráfica e de controles básicos. A tarefa de "decorar" as janelas (adicionar bordas, criar ícones, etc) são responsabilidade de duas camadas adicionais de software que abordaremos nos próximos artigos, os Window Managers e os "toolkits".

Revisando: eu disse que o X é distribuído e independente de hardware ou plataforma. Isso é conseguido através de sua arquitetura cliente-servidor. A confusão agora ocorre porque tendemos a entender como "servidor" a máquina remota na rede e como "cliente" a máquina que estamos utilizando. No caso do X, o "servidor" é a máquina que está mostrando os gráficos, enquanto a máquina cliente é a que está efetivamente executando a aplicação. OPA! Que história é essa de executar a aplicação em uma máquina e mostrar os gráficos em outra? É aí que está a graça.

Imagine que você tem uma empresa e que você tem poucos recursos para investir (este último não é difícil de imaginar). Você precisa que 30 funcionários utilizem estações de trabalho para desenvolver projetos e simulações de turbinas. Ao invés de comprar 30 estações de trabalho poderosas, você concentra seus recursos em uma única máquina com capacidades superiores de processamento e compra 30 máquinas "menores" que serão utilizadas apenas como "display" (guarde bem esta palavra) para que seus usuários possam interagir com os programas, que serão executados na máquina "parruda". No caso, as máquinas menores são "servidores de gráficos".

Como exemplo imagine duas máquinas, uma, chamada "kingkong" que é responsável por executar os programas e uma outra, chamada "chita" que será seu desktop. Em uma seção comum, um usuário usando a máquina "chita" faria:

chita$ telnet kingkong (vamos nos conectar ao kingkong)
kingkong login: tarzan (entremos usuario e senha)
password: IluvJane

kingkong% (estamos remotamente na kingkong agora)
kingkong% export DISPLAY=chita:0.0 (dizemos que o servidor de display será a chita)
kingkong% meucad & (executamos nosso programa hipotético)

Ao executar estes passos, o usuário da máquina chita estaria vendo a tela do programa "meucad" (CAD = Desenho Auxiliado por Computador) e estaria interagindo com ela. Os clicks de mouse e teclado são transmitidos pela rede na forma de "eventos X" que serão processados na máquina "kingkong". Os resultados destes eventos são enviados ao servidor X (chita) que irá mostrá-los em seu "display" e assim o ciclo de interação entre o usuário e o programa se desenvolve em máquinas separadas. Como estas mensagens são independentes de sistema operacional ou de hardware, voce pode estar executando o programa em uma máquina Sun (por exemplo) e vendo a tela do programa em um Pentium rodando Linux (ou mesmo OS/2, Windows ou Mac, veja a seção de links no final do artigo).

De fato, os clientes X são tão independentes de seus servidores que o primeiro cliente X (o xterm, um equivalente ao DOS prompt do Windows, só que sério) ficou pronto um mês antes do primeiro servidor X estar disponível para testes

Parece complicado, não? Realmente o é a primeira vista, as pessoas estão acostumadas a instalar um editor de texto, planilha e software de apresentação em cada computador. Aproveite este tempo para relaxar um pouco, e vamos aos detalhes cabeludos (você pensou que tinha acabado?).

Eu pedi que você prestasse atenção à palavra "display" e, se você estava realmente prestando atenção, notou que ela apareceu na linha de comando (export DISPLAY=chita:0.0) que apresentamos acima. Esta linha de comando irá funcionar em interpretadores derivados  da Bourne Shell (sh), como a ksh (Korn SHell) ou a bash (Bourne Again SHell, default na maioria dos Linux). O uso freqüente deste comando ajudou a cunhar a expressão "exportar o DISPLAY", no nosso caso para a máquina chita. Isso é apenas força de expressão, este comando não está fazendo nada senão criando uma variável global chamada DISPLAY, com o valor "chita:0.0". Esta variável é consultada por todos os clientes X (programas) para saberem para qual servidor direcionar suas saídas de tela. Se ela não estiver definida, o programa irá tentar encontrar um servidor X rodando na própria máquina.

Geralmente temos uma única placa de vídeo no computador e um único monitor, mas isso não precisa ser necessariamente verdade. Nada nos impede de instalarmos várias placas de vídeo e consequentemente vários monitores em um único computador, se tivermos software capaz de gerenciar isso. Um servidor X pode gerenciar vários "displays" (dispositivos de saída).  Um mesmo computador pode também ter vários servidores X rodando simultaneamente. A possibilidade existe, muito embora seja raramente utilizada. Daí, ao informarmos aos clientes X qual será o endereço do dispositivo de saída usamos a sintaxe host:N.M , onde "N" é o N-ésimo servidor X (começando com 0) rodando na máquina "host" e "M" é o M-ésimo display (também a partir de 0) controlado por este servidor. Como no caso geral teremos um único servidor X rodando na máquina e um único display, o mais comum é termos a designação "host:0.0" para identificá-lo.

Esta característica é chamada de "Multiheaded display" ou display com múltiplas cabeças (alguns devem estar pensando "de sete cabeças" a esta altura). E está presente em alguns servidores X comerciais, como por exemplo o da Xi graphics. O XFree86 tem suporte precário a multiheaded displays, o suporte mais completo está previsto para a próxima versão do servidor.

Quando você instala um linux e configura seu ambiente gráfico você está automaticamente habilitando estas características. Caso você esteja em rede (mesmo através de um provedor de acesso) você pode se utilizar dos recursos do X para abrir aplicativos em máquinas remotas na rede e visualizá-los em sua própria máquina (claro, voce precisa ter acesso a estas máquinas remotas). O visual do seu ambiente gráfico é o trabalho de um pacote complementar de software chamado "window manager" ao qual dedicarei os próximos artigos, que prometo, serão mais leves, incluindo várias imagens coloridas dos vários "look and feel" disponíveis para Linux.

Se você não conseguiu absorver de uma vez toda esta informação não se preocupe, a intenção é mostrar que há muito mais entre o sistema operacional e o ambiente gráfico do que supõe a filosofia do usuário (perdão, Shakespeare!) e alertá-lo para a potencialidade do desktop Unix em rede, que vai muito além dos jogos de paciência.

Como curiosidade, vale dizer que recentemente (meados de 1998) o Open Group, detentor dos direitos do padrão X, tentou alterar a licença das novas versões do protocolo, que impediria que o XFree86 continuasse fiel a tais versões sem ter que pagar (caro) por isso.  A força dos padrões abertos como o Linux fez com que o Open Group, (que de "Open" não tem tanto assim) voltasse atrás. A ameaça era que o XFree86, por ser desenvolvido pela comunidade e ser completamente aberto, passasse a ditar os padrões, ao invés do próprio Open Group. Mais um ponto a favor do Free Software.

(*) Nota do autor: Fica evidente que não são quando você examina de perto os arquivos de inicialização do sistema, e também pela existência do "modo DOS" de inicialização.

Alguns links:

Os atuais "donos" do padrão X:
Open Group: http://www.opengroup.org

Alguns Servidores X para Linux (livre e comerciais):

Projeto XFree86 (livre): http://www.xfree86.org
Xi Graphics: http://www.xi.com
MetroLink: http://www.metrolink.com

Alguns Servidores X para Windows e Mac:

M/IX server (não é "livre" mas é gratuito e quebra o galho): http://www.microimages.com
Xwin32 (versão demo para download, bastante completo): http://www.starnet.com

O Portuguese-HOWTO contém informações interessantes sobre o X Window System (em portugues):
http://metalab.unc.edu/LDP/HOWTO/Portuguese-HOWTO-2.html#ss2.2

As distribuições Linux

Artigo originalmente publicado na Revista da Unicamp

Atenção, isso foi em 1998.

Tendo o Linux o caráter de livre distribuição que tem, é natural que várias pessoas ou organizações passassem a distribuí-lo. Nasceram assim as distribuições de Linux. "Mas que diferença faz qual distribuição eu escolho, se é tudo Linux?", voce deve estar se perguntando. Para um usuário comum, que vai precisar editar um texto, fazer um programa, editar uma imagem, acessar a internet, entrar e sair do ambiente gráfico, etc, as diferenças serão realmente poucas e por vezes imperceptíveis.

As grandes diferenças entre as distribuições estão nas ferramentas de manutenção do software instalado, em sua filosofia e no seu público-alvo.

A maioria das pessoas se assusta no primeiro contato com o Linux, pois não estavam acostumadas a ter um grande leque de escolha no mundo de software e sistemas operacionais proprietários de onde vieram. O primeiro susto é que existe uma dezena (isso mesmo, aproximadamente dez) distribuições diferentes, ao menos na época em que este artigo foi escrito. A próxima pergunta é se esta grande variedade não irá levar ao caos e à incompatibilidade entre distribuições e, conseqüente, a auto-destruição do Linux. A resposta para esta dúvida ao meu ver é bastante simples: "Não". Muito já foi discutido a esse respeito, destas discussões nasceu o trabalho conjunto entre vários distribuidores para regulamentar as distribuições de Linux, e criar um núcleo comum para evitar a tão temida incompatibilidade, este esforço é chamado de LSB (Linux Standard Base) que visa criar a plataforma "padrão" de Linux a ser seguida por todos os distribuidores.

O segundo fator é que estas distribuições também são diferenciadas pela sua filosofia e público-alvo, o que faz com que elas não compitam diretamente por usuários. Uma nova distribuição nasce quando as existentes não atingem as necessidades de um novo grupo de usuários, e estes decidem criar a sua própria distribuição. Para ilustrar, irei comentar as diferenças filosóficas entre as distribuições mais famosas:

Slackware Linux

Uma das distribuições mais antigas mas ainda em evidência, apesar de ser pouco atrativa para os novatos. Esta distribuição, organizada por Patrick Volkerdig tem pouca ou nenhuma organização no que diz respeito a gerenciamento de dependência de pacotes, ou seja, você pode inadvertidamente remover um pacote de software do qual outros pacotes necessitam para funcionar sem sequer ser avisado disso. É uma das poucas (senão a única atualmente) que pode ser instalada a partir de diskettes.

A slackware é atraente para pessoas que têm bastante experiência em administração Unix, e que gostam de baixar o código fonte de programas, compilá-los, instalá-los, configurá-los e gerenciá-los com as próprias mãos, à moda antiga. É, no entanto, a distribuição que dá mais liberdade ao administrador por não impor restrições e que exige mais conhecimento dos utilitários e pacotes de software do sistema.

Não existe uma forma simples de fazer upgrade em Slackware, o modo comum é fazer backup de dados de usuários e configurações e instalar um novo slackware do zero.

O uso prolongado de Slackware tende a criar um administrador mais experiente do que os demais, e com menos cabelos.

Open Linux

A distribuição da empresa norte-americana Caldera, responsável pela manutenção de diversos produtos comerciais para Linux. O Open Linux, apesar do nome, é a distribuição que possui mais pacotes de código fechado, tendo um visual bem familiar ao mundo comercial, voltado para pessoas de gravata.

A distribuição Caldera foi a primeira a distribuir o Netscape quando este ainda era um produto fechado. O servidor Oracle lançado para Linux foi disponibilizado primeiro para esta distribuição. A Caldera também detém (entre outros) os direitos de comercialização do servidor Novell para Linux. O Caldera Open Linux tem pouco compromisso com o software livre, incluindo em sua distribuição pacotes polêmicos, como o KDE (desktop com cara de Windows95 para Linux) que é livre, mas obriga o usuário a instalar uma biblioteca comercial no sistema.

Se você não dá a mínima para o que é Free Software, quer ter o Linux para fazer sua empresa andar sem ter que rebootar os servidores a cada 12h sem se desfazer de toda a filosofia comercial à qual você está acostumado e ainda pagar um bom dinheiro para a distribuidora do software, então o Open Linux é para você.

Red Hat Linux

A Red Hat é a distribuição mais popular nos dias de hoje. Além de contar com o RPM, o gerenciador de pacotes mais difundido na internet, é mantido por uma empresa que se preocupa com Free Software, mantendo vários funcionários com a tarefa única e exclusiva de escrever software que será disponibilizado através da internet, com código fonte e tudo.

Vários projetos foram adotados pela Red Hat, como o Gnome e o Enlightenment, o primeiro, resumindo drasticamente, é um protocolo para a integração entre aplicações e o segundo um gerenciador de janelas com características extremamente avançadas e inovadoras, juntos os dois são concorrentes diretos do KDE.

O Red Hat Linux é muito preocupado com o usuário leigo, sendo a distribuição de instalação mais simples e rápida e que conta com uma das melhores interfaces. Recentemente a Intel, a Netscape e outras empresas passaram a investir na Red Hat, o que tende a torná-la ainda mais popular. A Red Hat é hoje a distribuição de Linux que suporta mais plataformas de Hardware.

Se você é um novo usuário de Linux, considere a Red Hat como a melhor escolha para começar a se aventurar com Unix.

Debian GNU/Linux

A Debian começou como um projeto da FSF (Free Software Foundation, a fundação responsável pelo projeto GNU e pelo início de toda esta onda de Free Software), posteriormente houve o desligamento entre os dois projetos e a Debian tomou vida própria.

A mais preocupada com Free Software de todas as distribuições e a mais aberta. Apenas pacotes que tenham código-fonte disponível sem restrições podem fazer parte da distribuição principal Debian.

Se você quiser fazer parte do time Debian, basta que você escolha um pacote de software que ainda não faz parte da distribuição, estude as normas e mecanismos impostos e anuncie seu interesse de empacotá-lo e incluí-lo, automaticamente você ganhará o status de "developer" e passará a ser responsável por cuidar de seu pacote, fazer atualizações de versão e etc.

Graças a esta filosofia, a Debian é hoje a distribuição com o maior número de pacotes de software (perto de 2000) e com o maior time de desenvolvimento (mais de 300 pessoas). Seu sistema de controle de pacotes é extremamente robusto (alguns afirmam ser melhor do que o da Red Hat) e confiável.

Fazer um upgrade do sistema Debian geralmente se resume a colocar o novo CD na máquina e pedir o upgrade, que será feito sem que os usuários percebam e sem ter que rebootar o computador.

As desvantagens existem. Até o presente momento a instalação da Debian é um pouco confusa para quem começa, principalmente porque o usuário fica obrigado a escolher um por um entre todos os pacotes disponíveis, mas a promessa é que nas próximas versões um novo gerenciador de pacotes será integrado, que irá facilitar em muito a vida do usuário.

Quando você escolhe Debian, você tem certeza de que você tem liberdade total com o software que você adquiriu, sem ter que se preocupar com licenças, pois elas foram todas avaliadas antes de serem incluídas na distribuição. Uma parte dos usuários de Red Hat migra para Debian depois de algum tempo de uso.

Debian é a minha distribuição preferida. Se você é alguém que se preocupa com a liberdade de Software, torce o nariz para software comercial, precisa administrar uma rede e já tem experiência, considere o Debian como uma alternativa prática.

Monkey Linux

Para aqueles que têm medo de criar partições de disco e instalar mais de um sistema na mesma máquina, que por algum motivo não podem instalar um novo sistema no computador, ou para aqueles que querem apenas experimentar o Linux, a distribuição Monkey Linux é a escolha, já que esta distribuição pode ser instalada numa partição DOS/Windows. O Linux tem um mecanismo que o permite funcionar sobre uma partição FAT (DOS/Windows) como se estivesse sobre o EXT2FS (a formatação do Linux) claro, sob o custo da eficiência, já que a FAT é muito pobre em recursos que acabam tendo que ser emulados.

Se você tem medo do que é novo para você e quer experimentar o Linux de que tanto tem ouvido falar, instale o Monkey Linux, inicialize seu Windows em modo DOS, rode o programa de inicialização e assista o Linux substituir o Windows completamente na memória e se inicializar utilizando uma partição DOS como se fosse um filesystem Unix. Depois que você começar a se perguntar o que o DOS/Windows ainda faz em sua máquina considere uma das distribuições citadas anteriormente neste artigo 😉