( Publicado originalmente no e-zine CTRL-C nº 02, de março/2000 )
.~.
-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 desses 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, por meio 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.
( VOLTAR AO ÍNDICE )