anterior ]

A ORIGEM E O VALOR DA LIVRE DISTRIBUIÇÃO DO LINUX

                                                            .~.
        -o)                                                 /V\
        /\\                                                // \\
       _\_V       LINUX - Don´t fear the penguin...       /(   )\  
                                                           ^^-^^

 Acho que a parte mais complicada deste artigo  foi  o  título.  Sempre
 tenho a impressão de que não corresponde de modo fiel ao que  está  no
 texto. Por  exemplo,  quando  digo  "valor",  na  realidade  estou  me
 referindo à qualidade e à significância, e não exatamente ao  custo...
 Bem, como sempre, comecemos pelo  princípio,  ou  seja,  vamos  tentar
 definir o que é exatamente e  de  onde  surgiu  esse  tal  de  sistema
 operacional chamado Linux...

 SEMPRE AS VELHAS DEFINIÇÕES...

 Primeiramente é preciso garantir que algumas definições básicas  sejam
 inteiramente compreendidas (os  experts  que  me  perdoem,  mas  tenho
 certeza de que ainda existem muitos leigos na platéia). De um ponto de
 vista simplista, temos que o objetivo  final  de  um  computador  é  o
 processamento de dados. Mas o que exatamente isso  significa?  Ora,  o
 PROCESSAMENTO DE DADOS vem a ser a realização de uma série de  tarefas
 de maneira ordenada, objetivando a solução de um problema. Dizendo  de
 outra maneira, isto  significa  que  chamamos  de  DADOS  a  série  de
 elementos inseridos no computador relativos ao problema que se  deseja
 solucionar; e de INFORMAÇÃO o resultado obtido  após  o  processamento
 destes dados.

 Assim,  damos  o  nome  de  COMPUTADOR  ao  dispositivo  empregado  no
 processamento de dados, visando a resolução de  problemas.  Pois  bem,
 esse dispositivo é composto de duas partes que se fundem integrando-se
 de maneira total no próprio equipamento, classificadas de  Hardware  e
 Software. HARDWARE designa o complexo físico do computador,  ou  seja,
 as peças e componentes do qual é constituído. Contudo, para que  possa
 funcionar, não é suficiente apenas a  existência  da  máquina,  faz-se
 necessário a presença do SOFTWARE,  que  são  sequências  de  comandos
 logicamente organizadas e  ordens  que  fazem  com  que  o  computador
 execute as tarefas desejadas.

 Numa analogia talvez até um pouco forçada, mas que  do  meu  ponto  de
 vista define bem a idéia que tento exprimir, tal qual o ser  humano  o
 computador possui corpo  e  alma,  hardware  e  software,  tangível  e
 intangível.

 Para o assunto que ora se descortina o que nos importa é a alma,  ops,
 o software do computador. Pelo que já deve ter  percebido,  a  máquina
 sem o software não é nada, é apenas um amontoado  de  componentes  que
 ainda pode acabar te  dando  um  pusta  choque.  Desse  modo,  dado  a
 ausência de vontade própria dos computadores, estes  somente  executam
 o que  lhes  é  ordenado,  sendo  que  tais  ordens  são  passadas  ao
 computador através de INSTRUÇÕES, ou seja,  comandos  que  definem  as
 operações básicas a serem realizadas dentro do equipamento.

 Finalmente, temos  que  essa  sequência  de  instruções  ordenadas  de
 maneira lógica recebe o nome de PROGRAMA, que sempre é executado passo
 a passo pelo computador, que vai cumprindo uma instrução por vez,  até
 encontrar o final  da  sequência.  É  bom  desde  já  observar  que  a
 definição de programa difere da de COMANDOS,  que  são  as  instruções
 passadas uma a uma e de resultado  imediato.  Por  exemplo  -  e  para
 aqueles que ainda se lembram de que  existe  vida  fora  do  Windows -
 quando se acessa  o  prompt  do  computador ( o famoso C:> ),  podemos
 facilmente distinguir programas e comandos: digitando-se EDIT ativamos
 um programa que carregará para  a  memória  uma  série  de  instruções
 visando  disponibilizar  ao  usuário  um  editor  de  textos;   porém,
 digitando-se DIR, ativamos um  comando  de  efeito  imediato  que  irá
 mostrar  o  conteúdo  armazenado  em  parte  da  memória   física   do
 computador.

 Bem, para garantir o funcionamento  básico  de  um  computador  faz-se
 necessário  a  presença  de  um  SISTEMA  OPERACIONAL  -  um  programa
 específico que tem por objetivo controlar as atividades principais  de
 um  equipamento  informático.  Apesar  da  hegemonia   da   Microsoft,
 principalmente com seu sistema operacional Windows 95  e  posteriores,
 existiram e ainda existem diversos outros no mercado, tais  como  OS2,
 CP/M, BeOS, Linux, Unix, etc.

 O BIG BANG DOS SISTEMAS OPERACIONAIS

 Para tentarmos entender  esse  multiverso  de  sistemas  operacionais,
 devemos voltar às origens, ao BIG BANG disso tudo. Tudo teve origem no
 Bell Laboratories, um dos maiores grupos de pesquisas do mundo que foi
 criado em 1925 como uma extensão para pesquisas e  desenvolvimento  da
 companhia AT&T dos Estados Unidos. Durante um breve período em 1969, o
 departamento de pesquisas  sobre  a  ciência  da  computação  do  Bell
 Laboratories  utilizou  um  computador  de  grande  porte  da  General
 Electric com um sistema operacional chamado Multics.

 Mas o Multics não atendia plenamente às exigências dos  programadores,
 principalmente com relação a alguns projetos  específicos.  Um  desses
 projetos, desenvolvido por Ken Thompson, era o  chamado  Space  Travel
 (Viagem  Espacial),  que  simulava  o  movimento  dos  maiores  corpos
 celestiais no sistema solar. Como o custo de interação desse  programa
 para um único computador de grande porte  seria  proibitivo,  Thompson
 adaptou-o para um minicomputador menos poderoso e de custo mais baixo,
 um PDP-7, da DEC - Digital Equipment Corporation.

 Embora fosse mais barato executar o Space  Travel  no  minicomputador,
 qualquer modificação no programa tinha de ser feita no  computador  GE
 de grande porte antes de  ser  executada  no  PDP-7.  Isso  gerava  um
 grande transtorno, pois o processo de carregar a  fita  de  papel  era
 lento e sujeito a erros. Para facilitar sua vida, Thompson  reescreveu
 o sistema operacional,  adaptando-o  para  a  linguagem  simbólica  do
 PDP-7. Estava criado o Unix,  que  recebeu  esse  nome  justamente  em
 alusão ao sistema Multics, do qual baseou muitos de seus conceitos.
 
 Porém esse sistema estava atrelado ao PDP-7, pois havia  sido  escrito
 especificamente para ele -  não  podia  ser  facilmente  portado  para
 nenhum outro equipamento. Para resolver isso Ken Thompson  desenvolveu
 uma linguagem que permitisse  a  "transportabilidade"  do  sistema,  e
 deu-lhe o nome de B.  Essa  linguagem  B  foi  modificada  por  Dennis
 Ritchie e teve seu nome alterado para linguagem  C  (familiar,  não?).
 Assim,  Ritchie,  Thompson,  e  outros  colaboradores  reescreveram  o
 software  Unix  em  linguagem  C,  de  um  modo  tal  que  podia   ser
 virtualmente adaptado para qualquer computador.

 CARACTERÍSTICAS BÁSICAS DO UNIX

 Uma das características marcantes de um  sistema  Unix,  além  de  sua
 estabilidade e confiabilidade,  é  a  capacidade  de  operar  em  modo
 multiusuário  e  multitarefa.  A  multitarefa   permite   a   execução
 simultânea de diversas tarefas, o que garante rapidez no processamento
 e liberação de recursos da máquina. O modo multiusuário diz respeito à
 possibilidade de que diversos usuários  utilizem  o  mesmo  computador
 simultaneamente, através da conexão através de uma rede  à  uma  mesma
 máquina que gerencia e monitora a atividade dos usuários, impedindo  a
 interferência entre os comandos de um e de outro.

 Um sistema Unix pode ser funcionalmente classificado em três níveis: o
 Kernel, o Shell e as Ferramentas e Aplicativos. O  Kernel  planeja  as
 tarefas e administra o armazenamento de dados, o Shell é  um  programa
 que permite a conexão entre o usuário e o kernel (interpreta e executa
 os comandos), e as Ferramentas e Aplicativos  são  programas  diversos
 que incorporam capacidades especiais ao sistema operacional.

 Particularmente o Kernel é, como o próprio nome já diz,  o  núcleo  de
 todo o  sistema  operacional,  controlando  o  hardware  e  ligando  e
 desligando partes do computador ao comando de um programa.

 E FEZ-SE O LINUX !

 Linux é um sistema operacional que a cada dia vem ganhando mais e mais
 adeptos. Trata-se  de  um  clone  do  Unix,  adepto  do  padrão  POSIX
 (Portable Operating System Interface  Unix),  um  conjunto  de  regras
 internacionais que define a  maneira  como  interfaces  e  aplicativos
 devem se comportar, de modo a garantir um alto grau de compatibilidade
 com o mercado.

 O criador do Kernel do Sistema Operacional Linux  foi  Linus  Benedict
 Torvalds,  um  estudante  do  curso  de  Ciências  da  Computação   da
 Universidade de Helsinque, Finlândia, que o escreveu com  a  ajuda  de
 vários programadores voluntários através da Internet. Se não fosse por
 algumas características específicas, que veremos a seguir, teria  sido
 apenas mais um programa criado por um jovem sonhador tentando mudar  o
 mundo.

 Inspirado  em  seu  interesse  no  Minix,  um  pequeno  sistema   UNIX
 desenvolvido por Andy Tannenbaum, Linus reescreveu o  kernel  como  um
 projeto particular, pois tinha a intenção de aproveitá-lo em  máquinas
 de pouca  capacidade.  Ele  se  limitou  a  criar,  em  suas  próprias
 palavras, "um Minix melhor que o Minix" ("a better Minix than Minix").
 E, depois de trabalhar sozinho por algum tempo  em  seu  projeto,  ele
 enviou a seguinte mensagem para a lista de discussão comp.os.minix :

 "Você suspira por melhores dias  do  Minix-1.1,  quando  homens  serão
 homens e escreverão seus próprios 'device drivers'? Você está  sem  um
 bom projeto e  está  morrendo  por  colocar  as  mãos  em  um  Sistema
 Operacional  no  qual  você  possa  modificar  de  acordo   com   suas
 necessidades? Você está achando frustrante  quando  tudo  trabalha  em
 Minix? Chega de atravessar noites para obter programas  que  trabalhem
 correto? Então esta mensagem pode ser exatamente para você.

 Como eu mencionei a um mês atrás,  estou  trabalhando  em  uma  versão
 independente  de  um  Sistema  Operacional  similar  ao   Minix   para
 computadores AT-386. Ele está, finalmente, próximo do estágio  em  que
 poderá  ser  utilizado  (embora  possa  não  ser  o  que  você  esteja
 esperando), e eu  estou  disposto  a  colocar  os  fontes  para  ampla
 distribuição. Ele está na  versão  0.02...  Contudo  eu  tive  sucesso
 rodando bash, gcc, gnu-make, gnu-sed, compressão, etc. nele."

 O dia 5 de outubro de 1991 será lembrado  como  o  dia  em  que  Linus
 Torvalds anunciou a primeira versão "oficial"  do  Linux  -  a  versão
 0.02. A grande jogada foi ter liberado na Internet o  código-fonte  de
 sua  criação,  pois  assim  teve  o  auxílio  de  algumas  dezenas  de
 programadores que criticaram, alteraram, decifraram, enfim, dissecaram
 o bichinho de ponta a ponta. Imediatamente  após  isso,  o  número  de
 colaboradores subiu para  alguns  milhares,  chegando  hoje  a  vários
 milhões de pessoas, entre  usuários  e  colaboradores,  que  formam  a
 "Comunidade Linux".

 Segundo Linus  Torvalds,  originalmente  o  nome  desse  novo  sistema
 operacional seria Freix (uma corruptela da palavra  freaks).  Acontece
 que para o sucesso do empreendimento era necessário  disponibilizar  o
 programa em um site de FTP (uma espécie de repositório de arquivos), e
 a única pessoa que tinha um site de FTP na  Finlândia  não  gostou  do
 nome Freix, sugerindo uma variação do próprio nome de Linus - "Linux".

 O curioso é que se  Torvalds  tivesse  determinado  o  recebimento  de
 roaylties  pelo  uso  do  sistema,  com  certeza  hoje  ele  seria  um
 frequentador da famosa lista da Forbes. Porém, talvez um  dos  motivos
 do sucesso  do  Linux  seja  justamente  o  fato  de  ser  um  sistema
 operacional  "comunitário",  onde  o  que  importa  é  a  melhoria  da
 comunidade como um todo e não o enriquecimento de uns poucos. Será que
 alguém já pensou em fazer um estudo sociológico para tentar definir  o
 que motiva esse povo todo a trabalhar - gratuitamente -  para  um  bem
 comum?  De  sua  parte,  Torvalds  mudou-se  para  Santa   Clara,   na
 Califórnia, onde hoje, do alto de seus 30 anos, dedica-se à criação de
 suas duas filhas, seu emprego em uma empresa chamada Transmeta e  -  é
 claro - ao monitoramento do núcleo do sistema Linux.

 Algumas pessoas perguntam: mas qual é,  afinal,  a  última  versão  do
 Linux? Depende. Depende justamente se estão se referindo ao kernel  do
 sistema ou a alguma distribuição específica. Vejamos isso a seguir.

 O kernel do sistema operacional ficou - e continua até hoje -  sob  os
 cuidados de seu criador, Linus Torvalds. É ele - em conjunto  com  uma
 seleta equipe - que recebe sugestões do mundo todo e decide o que  vai
 ser implementado ou não. Dessa maneira, aqueles que acusam que o Linux
 não é um  sistema  homogêneo  estão  redondamente  enganados,  pois  a
 manutenção do núcleo do  sistema  é  feita  de  uma  maneira  coesa  e
 equilibrada,  de  modo  que   somente   são   liberadas   atualizações
 consideradas estáveis.

 Outra coisa refere-se ao  sistema  de  distribuições.  O  Linux  é  um
 software de livre distribuição e protegido pela GNU GPL  -  veremos  o
 que exatamente é isso a seguir. Assim,  qualquer  pessoa  -  inclusive
 você - pode criar  sua  própria  distribuição  e  repassá-la  adiante.
 Normalmente as diferenças se dão pela  maneira  de  empacotamento  dos
 softwares,  aplicativos  disponíveis,  procedimento   de   instalação,
 existência ou não de suporte técnico, presença ou não  de  manuais,  e
 outras coisas do gênero. Ressalte-se que a expressão software de livre
 distribuição (free software) está relacionada à liberdade de  cópia  e
 não à gratuidade do programa.

 Como o software é de livre  distribuição,  ninguém  pode  cobrar  pelo
 programa  em  si,  entretanto  essa  proibição  não  diz  respeito   à
 mão-de-obra  de  preparar  o  produto  para  o   consumidor,   ou   ao
 fornecimento de outras facilidades, tais como suporte e manuais. Daí é
 que vem o lucro das empresas  que  distribuem  o  Linux  sob  as  mais
 variadas condições e custos, podendo ser encontradas distribuições que
 variam desde alguns poucos até algumas centenas de reais.  Numa  lista
 exemplificativa, temos as distribuições Slackware, Mandrake, Red  Hat,
 Suse, Corel, Debian, Conectiva, etc.

 E POR QUE USAR O LINUX ?

 Dentre os inúmeros motivos que levam as pessoas a  utilizar  o  Linux,
 temos, principalmente, os seguintes:

 - É um clone do Unix, ou seja, possui a maioria dos recursos do  Unix,
 sendo um sistema operacional que apresenta capacidades  multitarefa  e
 multiusuário, suporta diversos processadores, possui vários modelos de
 interface gráfica,  além  de  um  robusto  suporte  de  rede  -  sendo
 inclusive utilizado por inúmeras empresas e  provedores  de  acesso  à
 Internet;

 - É um sistema popular, pois  consegue  ter  um  desempenho  aceitável
 mesmo com poucos recursos de hardware, havendo quem o utilize mesmo em
 máquinas 386 com apenas 8 Mb de memória RAM;

 - Em suas distribuições  mais  recentes  apresenta  um  alto  grau  de
 compatibilidade com sistemas baseados em MS-DOS e Windows;

 - Em que pese seus detratores alegarem não haver suporte para o Linux,
 tal afirmativa não é verdadeira. Acho que para definir bem a diferença
 entre o suporte de outros sistemas operacionais pagos e o do Linux,  é
 válida a comparação entre um restaurante tradicional e um  restaurante
 self-service:  no  primeiro  você  paga  mais  caro  para   obter   um
 atendimento personalizado, mas deve ater-se tão-somente às  variedades
 de pratos existentes no menu; já no segundo apesar de ser  você  mesmo
 que deve montar seu prato, tem por compensação a enorme diversidade de
 alimentos e o preço mais barato. Assim é com o  Linux:  você  tem  uma
 base de informações gigantesca, dentre elas livros, apostilas,  listas
 de discussão, sites na Internet, e  outras  mais,  entretanto  é  você
 mesmo  quem  tem  de  correr  atrás  da  resposta  para  seu  problema
 específico.

 - É um sistema seguro. Não há que se falar que é suscetível de  falhas
 e invasões justamente por incluir seus códigos fonte e que qualquer um
 pode alterá-lo. Deve-se compreender que, graças ao  acesso  ao  código
 fonte, pode-se ter pleno controle de tudo aquilo que o computador faz,
 não havendo segredos ou  reações  incompreensíveis  da  máquina.  Para
 ilustrar essa afirmativa de que "existem mais coisas entre a CPU  e  o
 teclado que supõe nossa vã filosofia", pode  tranquilamente  atirar  a
 primeira pedra aquele que jamais recebeu a mensagem de "este  programa
 executou uma operação ilegal e será fechado"...

 A LICENÇA PÚBLICA UNIVERSAL GNU-GPL 

 O surgimento do Unix, no final da década de  60,  animou  bastante  os
 estudantes de diversas universidades, pois reconheceram o poder  desse
 sistema  e  as  novas  possibilidades  que  surgiriam  a   título   de
 desenvolvimento científico. Ocorre que, no final da década de 70, após
 amplamente  disseminado  e   consolidado   principalmente   no   mundo
 acadêmico, a AT&T decidiu que era  hora  de  reforçar  os  termos  dos
 direitos autorais sobre as distribuições do Unix.

 Para garantir e demarcar seu território, a comunidade  acadêmica,  por
 intermédio do MIT - Instituto de Tecnologia de Massachusetts,  iniciou
 em 1984 um movimento de suporte  ao  desenvolvimento  de  software  de
 livre distribuição, que resultou na  criação  da  FSF  (Free  Software
 Foundation - Fundação do Software de Livre Distribuição) e do  projeto
 GNU (acrônimo de Gnu´s Not Unix). 

 Essa última entidade criou a famosa GNU General Public License, também
 conhecida como GNU-GPL, ou mais  simplesmente  GPL.  Trata-se  de  uma
 Licença Pública Universal  que  especifica  basicamente  que  qualquer
 programa distribuído sob essa licença deve ter a  garantia  do  Código
 Aberto (Open Source). Em outras palavras, você recebe o  programa  com
 todos os códigos fonte que deram origem ao mesmo e não paga  nada  por
 isso, podendo inclusive alterá-lo  a  seu  bel-prazer.  Contudo,  caso
 queira repassá-lo adiante, somente poderá fazê-lo se incluir o  código
 fonte também das alterações efetuadas.

 Como se denota, não se trata de  uma  moda  passageira,  posto  que  o
 desenvolvimento de software livre remonta ao ano da criação do projeto
 GNU, em 1984. Os pontos em destaque são que todo  programa  licenciado
 pela GPL deve vir com seu código fonte; sempre que este for  utilizado
 deve-se  obrigatoriamente  mencionar  o  autor  original;  e  qualquer
 alteração efetuada deverá ser mantida  na  licença  GPL,  ou  seja,  o
 código fonte deve ser liberado também.  Dessa  maneira,  garante-se  a
 continuidade do processo e a longevidade  do  sistema,  pois  qualquer
 alteração será mantida dentro dos termos da licença.

 Por fim, é importantíssimo destacar que os programas  licenciados  sob
 os termos da GNU-GPL podem ser livremente distribuídos - E ISSO NÃO É
 PIRATARIA ! É, pura e simplesmente, LIVRE DISTRIBUIÇÃO.