You are on page 1of 16

Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.

com

CAPÍTULO 1

1.1 – Histórico do Unix


Em 1965, a Bell Laboratories (Laboratórios da AT&T), junto com o MIT e a
General Eletric uniram esforços para o desenvolvimento de um novo sistema
operacional chamado Multics (Multiplexed Information and Computing Service), o qual
forneceria características de multiusuário, multiprocessador, e um sistema de
arquivos com múltiplos níveis (hierárquico), entre muitas outras características que
eram procuradas.
Voltado inicialmente para o computador mainframe GE-645, o Multics se
mostrou um sistema muito grande e complexo. Além disso, ele exigia recursos demais
para os computadores da época. Por essas dificuldades, o Bell Labs se retirou do
projeto em 1969, infeliz com o progresso do Multics.
Alguns dos programadores que faziam parte do projeto como Ken Thompson,
Dennis Ritchie, Rudd Canaday, e Dough McIlroy aproveitando-se da experiência
adquirida no desenvolvimento do sistema operacional Multics, desenharam e
implementaram a primeira versão do Unix. Um sistema operacional que só era
empregado até então em máquinas PDP-7 (computador criado pela Digital), essa
versão, embora fosse monousuário, já implementava um sistema de arquivos, um
mecanismo para controle de processos, diversos utilitários, um interpretador de
comandos (shell) e operava somente nestes computadores que na época era utilizado
por 75% dos departamentos de informática e das universidades americanas. O nome
foi dado em 1970 por Brian Kernighan como um trocadilho ao Multics.
Em 1971, o sistema já rodava em um PDP-11, com 16 Kbytes de memória,
incluindo 8 Kbytes para os programas dos usuários e um disco rígido com 512 Kbytes.
O primeiro uso real do sistema foi como uma ferramenta de processamento de texto
para a área de patentes da Bell Labs. Esta utilização justificou futuras pesquisas de
desenvolvimento pelo grupo de programação que foi mantido por causa das
características como ambiente para os programadores, simples interface para os
usuários, simples utilidades que podiam ser combinadas e executar funções
poderosas, sistema de arquivos hierárquico, simples interface para os dispositivos
consistente com o formato do arquivo, arquitetura independente e transparente para
os usuários.
O Unix foi originalmente escrito em assembly sendo que por volta de 1973 ele
foi reescrito em C (linguagem desenvolvida por Dennis Ritchie), uma linguagem mais
avançada de alto nível, em um PDP-11, essa nova versão já oferecia o recurso de
multiprogramação, permitindo que o computador fosse compartilhado por um grupo
de pessoas e possibilitando uma maior portabilidade entre computadores de outros
fabricantes.
O primeiro artigo erudito sobre Unix foi apresentado pelos pesquisadores Ken
Thompson e Dennis Ritchie no Simpósio sobre Princípios de Sistemas Operacionais na
Universidade de Purdue em novembro de 1973. O artigo reluziu imediatamente
interesse por parte dos professores e estudantes de graduação na Universidade da
Califórnia (Berkeley), os quais instalaram a versão 4 do Unix em um PDP-11 em
janeiro de 1974. O sistema operacional se mostrou popular entre estudantes e o corpo
docente, e em breve, muitos na Universidade estavam usando, aperfeiçoando e
escrevendo softwares para ele.
As 5 primeiras versões do Unix eram parte de pesquisas internas dos
Laboratórios Bell, e continuaram sendo até sua sexta versão, chamada de Unix

Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com


Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com

Timesharing Sixth Edition V, justo quando Ken Thompson tirou seis meses de licença
(1976-77) dos Laboratórios da Bell para ensinar como um professor visitante no
Departamento de Ciência da Computação da Universidade da Califórnia (Berkeley). O
que ele ensinou foi o sistema Unix e enquanto estava lá também desenvolveu muito
do que eventualmente tornou-se a Versão 6. Notícias do sistema Unix já se
espalhavam pela comunidade acadêmica. Quando Thompson retornou aos
Laboratórios da Bell, os estudantes e professores continuaram a incrementar o Unix,
já que o mesmo tinha sido distribuído através de licenças acadêmicas que não eram
muito caras e também licenças para o governo e licenças comerciais em 1975.
Muito dessas melhorias feitas pelo pessoal de Berkeley, foram incorporadas
dentro do que se conhece como Berkeley Software Distribution (BSD) versão 4.2, além
de ser incluso também no Unix da AT&T. O Unix além de se expandir nos ambientes
acadêmicos, também se espalhava para outras máquinas da Digital como o VAX.
Inicialmente as edições do BSD consistiam principalmente de programas de
usuários, mas mudou drasticamente quando em 1980, a Universidade da Califórnia
(Berkeley) foi financiada pelo Departamento de Defesa (DARPA) para atualizar os
protocolos de comunicação das redes deles, ARPANET. Uma nova organização de
pesquisa, o Grupo de Pesquisa em Ciência da Computação ou CSRG, foi formado em
Berkeley para realizar esse trabalho. O novo protocolo ficou conhecido como o
Protocolo Internet e mais tarde como TCP/IP. A primeira implementação foi
amplamente distribuída como parte do BSD 4.2 em 1982. Tal implementação foi
incorporada dentro de outros sistemas operacionais marcando um modelo para o
futuro.
Como dito anteriormente, as modificações desenvolvidas em Berkeley como o
funcionamento em rede TCP/IP, sistema de arquivos, controle de tarefas e
melhoramento no código de gerenciamento de memória da AT&T levaram a uma
variedade de Unix conhecida como BSD, com isso o BSD manteve durante anos a sua
liderança em ambientes acadêmicos enquanto as versões da AT&T (que culminaram
na versão conhecida como System V) dominavam os ambientes comerciais. Isso se
dava a razões sociológicas, pois as universidades se sentiam confortáveis com a
versão não oficial BSD do Unix enquanto as empresas davam preferência à obtenção
de Unix a partir da AT&T.
Mesmo tendo criado e desenvolvido o Unix, a Bell Labs não podia comercializá-
lo na época devido as leis anti-monopólio nos EUA, que impediam seu envolvimento
no mercado de computadores. Apesar desta limitação, as universidades poderiam
licenciar o Unix, recebendo inclusive o código fonte do sistema. Como a maioria das
universidades utilizava computadores PDP-11, não existiam dificuldades para se
adotar o Unix como plataforma padrão no meio acadêmico. Em meados da década de
80, o Unix já podia ser encontrado não só no meio acadêmico, mas também na
indústria, sendo oferecido por inúmeros fabricantes.
Por ser dirigido a usuários e desenvolvido por usuários, a versão do Unix BSD
era geralmente a mais inovadora e rapidamente desenvolvida. Todavia, na época do
último Unix oficial da AT&T, o System V Release 4 (SRV4), absorveu grande parte dos
importantes avanços do BSD e adicionou alguns recursos por conta própria. Em
parte, devido ao fato de a AT&T ter se tornado capaz de vender comercialmente o
Unix em 1984, por ter sido dividida em várias empresas subsidiárias, os esforços de
desenvolvimento do Unix por parte do grupo de Berkeley definharam e morreram por
volta de 1993.
Alguns membros do grupo decidiram então publicar o código BSD (o qual era
aberto) sem o código proprietário da AT&T (mais ou menos 20% do kernel estava
faltando), e os esforços tinham sidos continuados por outros desenvolvedores que
mantém-os ativos até o momento. Pelo menos 4 ramos do desenvolvimento do Unix

Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com


Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com

se derivam diretamente do 4.4 BSD-Lite, sem mencionar diversas versões comerciais


do Unix de diversos fabricantes como o HP-UX da Hewlett-Packard, todas total ou
parcialmente baseadas no BSD.
O BSD foi muito pouco utilizado, pois ele requer uma máquina poderosa de alto
custo. Mas a característica que contrapõe esse problema é o que chama atenção. O
BSD Unix é superior ao System V no que diz respeito a dinamismo e desempenho.
Mas, como os requerimentos de hardware eram muitos, vários desenvolvedores e
admiradores resolveram projetar seu próprio BSD. O objetivo era esclarecer ainda
mais a pesquisa e o desenvolvimento do BSD e prover soluções para os problemas
como plataformas de alto custo e suporte ao sistema.
O primeiro passo foi então transformar o BSD o mais acessível, baseando-se no
BSD 4.x. Primeiramente, Bill Jolitz, membro do CSRG, escreveu o código restante
(código fonte BSD) e publicou no início de 1992 o 386BSD. Ao mesmo tempo um
grupo de ex-membros do CSRG formaram uma companhia comercial chamada
Berkeley Software Design Inc (BSDI) que publicou uma versão beta de um sistema
operacional chamado BSD/386 (baseado nos mesmos fontes). O nome do sistema
mudou então para BSD/OS. Ambos os sistemas eram para plataforma IBM PC/Intel.
Nesse meio tempo a AT&T processou a Universidade e a BSDI por uso impróprio da
marca registrada UNIX e também por infringir direitos autorais, tal processo ocorreu
de 1992 até 1994, quando finalmente foi estabelecido quando foi revelado que a
AT&T tinha rompido alguns de seus acordos de licenciamento com a Universidade e
para a duração do processo judicial, o estado do BSD e dos projetos comercias e não
comerciais baseavam-se no que ainda estava em dúvida, e antecipando a resolução
do processo, muitas pessoas começaram a desenvolver seus sistemas operacionais
(com o código BSD) livres e sem as restrições da AT&T, como dito um pouco acima no
texto.
Em relação ao 386BSD, faltava ainda uma coisa: o suporte ao sistema, ou seja,
as correções. Enquanto os desenvolvedores se preocupavam em portar o sistema
para a plataforma IBM PC, não sobrava tempo para corrigir os erros. Foi então que 3
desenvolvedores, chamados Jordan K. Hubbard, Nate Willians e Rod Grimes,
resolveram criar um suporte através de remendos (patches), eles criaram então o
Unofficial 386BSD PatchKit. Como o 386BSD nunca se tornou um sistema operacional
estável, dois outros projetos dividiram-se em 1993: NetBSD e o FreeBSD.
Os dois projetos originalmente divergiam devido à diferença de paciência na
espera por melhoramentos no 386BSD. Tais projetos tinham seus propósitos e em
1996, um futuro projeto, se dividiu do NetBSD chamando-se OpenBSD, o qual focava
assuntos relacionados a segurança.
O BSD e o Unix não foram as únicas variações do Unix. Como o Unix era em sua
maior parte escrito em C, sendo relativamente fácil reescrevê-lo a partir do zero.
Estas qualidades tornaram o Unix uma opção popular para fabricantes que eram
dedicados à venda de hardware no mercado: Sun, HP, IBM (implementou o Unix mais
de uma vez), Digital Equipament Corporation, Amdahl e dezenas de outros. Um
fabricante poderia projetar e construir um novo hardware e depois simplesmente
portar o Unix para ele de forma a ser capaz de executar algo útil quando entregue.
Com o passar do tempo, cada um desses fabricantes ficou com sua própria
versão do Unix, e estas variações foram deliberadamente empurradas em diferentes
direções de forma a ajudar a prender consumidores. A confusão resultante deu origem
a vários esforços de padronização, sendo o mais importante a família de padrões
POSIX (Portable Operating System Unix), que definiu um padrão para a interface e
ferramentas do sistema operacional. O código compatível com o POSIX teoricamente
é portável para qualquer sistema operacional que também seja compatível com o
POSIX, e os conjuntos de testes rígidos contribuiram bastante para tornar a

Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com


Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com

portabilidade hipotética a uma realidade prática.


Atualmente, quase todos os sistemas operacionais sérios almejam tal
compatibilidade. Desde que a Universidade da Califórnia (Berkeley) não produziu mais
publicações do código BSD, a última publicação foi o 4.4 BSD-Lite (em junho de 1995).
Nesse meio tempo todo, um outro sistema operacional, chamado Linux veio à tona.
Baseado no kernel Minix (escrito por um cientista de computador - professor Andrew
Tanenbaum) o sistema foi desenvolvido pelo Finlandês Linus Torvalds. Este sistema
ganhou prestígio e ficou conhecido pela distribuição gratuita como um sistema
operacional Unix (Unix-like).

Dica – Visite o site abaixo para visualizar a linha do tempo do desenvolvimento


do Unix:

http://www.levenez.com/unix/

1.2 – Histórico do Linux


O Linux é um sistema operacional, sendo um dos mais famosos exemplos de
software livre (free software) e desenvolvimento open-source. Este sistema foi escrito
como um passatempo por um estudante de Ciências da Computação da Universidade
de Helsinki na Finlândia, chamado Linus Torvalds (Linus Benedict Torvalds), em 1991.
No início este sistema baseava-se no Minix que era uma simples versão do Unix
utilizado para fins educacionais (o Minix foi escrito por Andrew Tanenbaum que é um
dos maiores especialistas em sistemas operacionais). Ele se limitou a criar, em suas
próprias palavras, "um Minix melhor que o Minix" ("a better Minix than Minix"). Depois
de algum tempo de trabalho em seu projeto, sozinho, ele enviou a seguinte
mensagem para 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 esta
morrendo por colocar as mãos em um S.O. 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 S.O. 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.”

A primeira versão do Linux foi lançada na Internet em setembro de 1991 e no


dia 5 de outubro de 1991 Linus Torvalds anunciou a primeira versão "oficial" do Linux,
a versão 0.02. Desde então milhares de desenvolvedores em torno do mundo tem
contribuído neste projeto, sendo que no começo foi auxiliado por poucos e atualmente
é auxiliado por um verdadeiro exército de voluntários espalhados pelo mundo todo.
O sistema de Linus foi desenvolvido porque ele sentiu a necessidade de um
sistema operacional como o Unix e que pudesse rodar na sua própria máquina (PC
386), pois as versões de Unix existentes tinham altíssimos preços e só funcionavam
em máquinas de grande porte (Claro que Linus não tinha dinheiro bastante para
comprar uma máquina dessas e por isso decidiu fazer seu próprio SO, iniciando pelo

Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com


Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com

Kernel).
O Linux de Linus Torvalds, não contem nenhuma linha de código do Unix. O
Linux foi escrito a partir do zero para estar de acordo com o padrão API POSIX
(Portable Operating System Interface), o mesmo padrão que os Unices seguem (uma
espécie de ISO ou ABNT – uma padronização que foi criada devido aos vários tipos de
Unices, e porque não existia um padrão entre os vários fornecedores ). Por causa da
API POSIX, do conjunto de utilitários e do uso do X-Window, o Linux é tão parecido
com o Unix que existem empresas que usam o Linux para desenvolver para Unix que
não seja o dela mesma (por exemplo, a IBM).
Inicialmente foi desenvolvido e usado amplamente por entusiastas, e desde
então o Linux tem conquistado o suporte das grandes indústrias de peso como IBM e
HP. Muitos analistas atribuem este grande sucesso e crescimento devido a
independência de fornecedor, baixo custo de implementação, segurança e
confiabilidade.

1.3 – O que é um Sistema operacional ?


É um sistema responsável pelo controle direto e gerenciamento do hardware e
operações básicas do sistema, é a primeira camada de software carregada na
memória do computador quando o mesmo inicia. Desta forma, todos os outros
softwares que são carregados posteriormente dependem deste primeiro que irá
fornecê-los vários serviços comuns como acesso ao disco, gerenciamento de
memória, escalonamento de tarefas, interface com o usuário, acesso a rede e
segurança.
Como o sistema operacional fornece estes serviços básicos, não existe a
necessidade de reimplementá-los nos outros softwares.
Um sistema operacional como Unix/Linux possuem três componentes muito
importantes: o kernel – o shell – o sistema de arqivos. Veja:

• O kernel, também chamado de “núcleo ou cerne”, é a porção de código que


executa muitos serviços básicos do sistema operacional, este componente é
sempre carregado durante o “boot” do sistema. É o componente central de
qualquer sistema operacional e que contém as principais tarefas e funções para
um bom funcionamento !

• O shell é um programa que é colocado para o usuário sempre depois que o


mesmo faz login no sistema. O shell age como um interpretador de comandos,
obtendo os comandos que o usuário insere no sistema e repassando-os para o
kernel do sistema para que sejam executados, e então mostra o resultado dos
comandos na tela do usuário. Existem vários tipos de shells disponíveis, cada um
oferecendo suas características próprias.

• Sistema de arquivos é um método lógico para organizar e armazenar grandes


quantidades de informações de forma que o gerenciamento de todas estas
informações seja fácil. Um sistema de arquivos em Unix/Linux possui vários tipos
de arquivos, possui estrutura própria, permissões de acesso e etc.

Resumindo, o sistema operacional (SO) certifica que outras aplicações


consigam ser capazes de usar a memória do computador, dispositivos de entrada e
saída, inserir comandos, acesso ao sistema de arquivos e etc.
Kernel (núcleo ou cerne) é o componente central de qualquer sistema

Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com


Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com

operacional e que contém as principais tarefas e funções para um bom


funcionamento !

1.3 – Estrutura de um sistema operacional Unix/Linux

O Unix/Linux é um sistema operacional constituído de camadas, a camada mais


interna é o “Hardware” que fornece os serviços para o sistema operacional. O sistema
operacional referenciado neste caso é uma parte dele, o kernel. O kernel interage
diretamente com o hardware e fornece os serviços ao usuários do sistema todo. Os
usuários não necessitam saber nada sobre o hardware, apenas necessitam saber
como interegir com o kernel do sistema, desta forma os programas escritos podem
ser facilmente portados para outras arquiteturas.
Os programas dos usuários interagem com o kernel do sistema através de um
conjunto padrão de system calls ou chamadas do sistema. Estas chamadas do
sistema requisitam serviços a serem fornecidos pelo kernel, estes serviço incluem
tarefas como acesso a um arquivo (abrir, ler, fechar, escrever, linkar, executar),
mudar o proprietário de um arquivo ou diretório, mudar para um novo diretório, criar-
suspender-matar um processo, habilitar acesso ao hardware, configurar limites do
sistema.
O Unix/Linux por ser um sistema multiusuário e multitarefa, pode ter muitos
usuários logados no sistema simultaneamente, cada um rodando muito programas.

1.4 – Linux – O Kernel


Conforme visto no item acima, o kernel é a parte central de um sistema
operacional. Em termos técnicos, o nome Linux refere-se somente ao kernel, ou seja,
Linux é o kernel. Acontece que a palavra “Linux” é comumente usada pra descrever
um sistema operacional “Unix-like”.
O kernel foi desenvolvido originalmente para o processador Intel 80386 e desde
então tem sido portado para várias outras plataformas, é quase inteiramente escrito
na linguagem C e algumas partes na linguagem Assembly. Todo o desenvolvimento
está licenciado sobre a licença GNU GPL e o código fonte está livremente disponível
para todos.

Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com


Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com

Principais características do Linux

Multiusuário: Permite que vários usuários possam rodar o sistema operacional


simultaneamente, utilizando integralmente os recursos de multitarefa. Usuários
podem acessar um servidor Linux através da rede local e executar aplicativos no
próprio servidor.

Multiplataforma: O Linux roda em diversos tipos de arquiteturas de


computadores, sejam RISC ou CISC.

Multitarefa: Permite que diversos programas rodem ao mesmo tempo


simultaneamente (de forma concorrente), ou seja, você pode estar digitando um texto
enquanto trabalha na planilha de gastos, por exemplo. Sem contar os inúmeros
serviços disponibilizados pelo sistema que estão rodando em background e você
provavelmente nem sabe.
Multiprocessador: Permite o uso de mais de um processador. Já é discutida,
há muitos anos, a capacidade do Linux de poder reconhecer mais de um processador
e inclusive trabalhar com SMP, clusters de máquinas, na qual uma máquina central
controla os processadores das outras para formar uma só máquina.

Protocolos: Pode trabalhar com diversos protocolos de rede (incluindo o TCP/IP


que é nativo Unix).

Sistemas de arquivos: Suporta diversos sistemas de arquivos, incluindo o


HPFS, DOS, CD-ROM, Netware, Xenix, Minix, Ext2, ext3, Jfs, Xfs e etc.

O kernel tem sido amplamente portado rodando em diversos sistemas como


iPAQ (Handheld), IBM S/390. Nos dias de hoje Linux roda nas seguintes arquiteturas:

• PC's baseados na arquitetura x86 32 bits (386 e posteriores)


• Sun SPARC, UltraSPARC
• PowerPC, PowerPC64
• ARM
• MIPS
• HP PA-RISC
• Intel IA-64
• AMD x86-64

A facilidade para se portar o kernel para outras arquiteturas é uma das


variantes que ajudou o Linux a se tornar popular.

1.5 – O sistema GNU/Linux


Acontece que um kernel não é um sistema operacional completo, o kernel
sozinho não faz absolutamente nada. Você precisa de um conjunto de aplicativos e
bibliotecas para poder formar um sistema operacional. Boa parte desse "restante" já
existia, muitos deles provenientes do projeto GNU.
O projeto GNU foi iniciado em 1983 com a intenção de desenvolver um sistema
operacional “Unix-like” completo desde os aplicativos para desenvolvimento,
aplicativos para usuários ao kernel do sistema, mas totalmente livre. Em 1991,

Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com


Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com

quando a primeira versão do kernel tinha sido escrita, o projeto GNU já tinha criado
muitos dos componentes para um sistema operacional livre, mas o kernel deste
projeto (GNU Hurd) ainda estava incompleto e indisponível, e o sistema operacional
“BSD” passava por problemas de licenças.
Linus e os outros desenvolvedores, adaptaram o kernel para trabalhar com os
componentes do projeto GNU e criar um sistema operacional completo.
Portanto, o usuário deve saber que embora muitos chamam de "Sistema
Operacional Linux”, o mais correto é que deveria chamar-se “Sistema Operacional
GNU/Linux”, ou seja, um sistema operacional GNU baseado no kernel Linux.
Todo este trabalho é fruto do trabalho e dedicação de muitas pessoas e de
muitas organizações independentes entre si, e não somente do Linus e seus
seguidores. Não confunda Linux com GNU/Linux !
Os sistemas GNU/Linux possuem hoje inúmeras ferramentas e utilitários como
ferramentas de desenvolvimento, banco de dados, servidores Web (Apache),
servidores de email (Postfix), ambientes desktop completo (KDE e GNOME), suítes de
escritório (OpenOffice). Além disso, este sistemas são aplicados em computadores
pessoais, supercomputadores, sistemas embarcados (como telefones móveis) e em
muito outros ambientes.

Dica - Visite o site abaixo para visualizar a linha do tempo do desenvolvimento do


Linux

http://en.wikipedia.org/wiki/Timeline_of_Linux_development

Tux – O mascote do Linux

Em 1996, várias pessoas estavam conversando na lista de emails linux-kernel


sobre um mascote para o Linux. Depois de muitas sugestões e brincadeiras com logos
de outros sistemas acabaram entrando em um consenso quando Linus Torvalds
mencionou em um email que era afeiçoado por pinguins e que o mesmo deveria ser
um pinguim esperto, atraente e bem alimentado, imaginar um pinguim um pouco
acima do peso e relaxado após ter devorado vários peixes, estar sentado com um
sorriso de satisfação e pensando em como o mundo é um lugar bom para se viver.
O fato de ser um pinguim é que houve uma vez que Linus foi passear em um
zoológico na Austrália onde um pequeno pinguim lhe deu uma tímida mordida no
dedo e era melhor ter um logo como um pinguim que poderia ser modificado do que
ter um triângulo como logo, passando a idéia de liberdade ao usuário. Quanto ao
pinguim escolhido, houve na verdade um campeonato para escolha do logo e o
vencedor foi o logo de Larry Ewing.

Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com


Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com

Quanto ao nome Tux, foi sugerido por James Hughes e foi derivado de Torvalds
Unix, embora há outras explicações como se o pinguim estivesse usando um tuxedo
(um tipo de terno para homens).

Dica - Visite o site abaixo para maiores detalhes sobre a história do mascote do Linux

http://www.sjbaker.org/tux/

1.6 – Movimento GNU (Movimento do Software Livre)


Em 1971 quando Richard Stallman começou a trabalhar no Laboratório de
Inteligência Artificial do MIT, ele passou a fazer parte de uma comunidade que
compartilhava programas, isso não era exclusividade desse grupo de
desenvolvedores, na verdade compartilhar seus códigos fontes com os membros do
grupo era tão natural quanto compartilhar uma receita de culinária com alguém ! Os
programas criados no laboratório do MIT não eram chamados de software livre (free
software) porque o termo ainda não existia, mas sempre que alguma pessoa quisesse
utilizar aquele código fonte para fazer alguma adptação bastava solicitar uma cópia
do mesmo.
Nos anos 80, quase todo o software era proprietário, o que significa que ele
tinha donos que proibiam e impediam a cooperação entre os usuários. Isto tornou o
Projeto GNU necessário, pois o conceito de software livre já não era mais o mesmo,
nem todo mundo participava deste tipo de grupo. Stallman então pensou numa forma
de fazer com que o conceito fosse como antes, que muitas pessoas participassem
desse tipo de atividade novamente e chegou à conclusão de que criar um sistema
operacional seria a primeira tarefa a ser executada pois, isto era essencial para o
funcionamento de um computador.
Com um sistema operacional livre seria possível fazer com que a comunidade
''hacker'' cooperasse uns com os outros e seria possível convidar qualquer pessoa a
participar. (O uso do termo hacker é relacionado a pessoa que conhece
profundamente um sistema).
Nesta época os produtores de software proprietário diziam que se você
compartilhasse software com seus amigos, conhecidos e etc, você era considerado
um “pirata” e anti-social.
Como o sistema que dominava naquela época era o Unix, nada mais
interessante que desenvolver um sistema operacional compatível com o Unix porque
o design geral já era testado e portável, e desta maneira os usuários poderiam
facilmente migrar pra o novo sistema. Então, foi escolhido o nome GNU seguindo
uma tradição hacker, como um acrônimo recursivo para GNU is Not Unix.
Um sistema operacional não significa apenas um kernel, mas é o bastante para
rodar um programa. Em 1970, qualquer sistema operacional digno de nome incluía
processadores de comandos, assemblers, compiladores, interpretadores, debuggers,
editores de texto, programas de correio eletrônico, e muito mais, então o novo
sistema que seria construído também deveria ter.
Em Janeiro de 1984, Richard Stallman deixou seu trabalho no MIT e começou a
escrever software GNU. O primeiro software para o projeto GNU, escrito por Stallman,
foi um editor de texto, o Emacs. Logo em 1985 este editor estava sendo usado em
sistemas Unix e outras pessoas começaram a usá-lo. Foi com este software que
Stallman começou a ganhar dinheiro com software livre.
O intuito da criação do sistema operacional livre faz uma relação de livre (free)
com liberdade e não com preço. A liberdade é específica para a utilização como

Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com


Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com

liberdade para copiar para outras pessoas, amigo e colegas, a liberadade também se
aplica para a modificação do programa de acordo com as necessidades do usuário e
consequentemente, o acesso completo aos fontes do programa e por último a
liberdade de distribuir versões modificadas (cobrando ou não pela transferência) e
ajudando a construir a comunidade.
O Projeto GNU não está limitado a criar apenas um sistema operacional, mas
sim uma gama completa de softwares para todos os níveis de usuários, como jogos e
ambientes desktop.

1.7 – O que é Sofware Livre


Software livre não é um produto diferente, é um programa como qualquer outro
que você está acostumado a utilizar em seu computador. As características que o
tornam livre são que, além de usá-lo, você também pode copiá-lo, distribuí-lo e alterá-
lo. Essas liberdades são responsáveis por uma série de benefícios, como a
possibilidade de pesquisar, estudar, mudar e aperfeiçoar os programas a fim de que
eles sejam adaptados à realidade de cada usuário. E tudo isso é possível porque o
software livre possui o código-fonte aberto, algo que o torna publicamente acessível !

Free as in Freedom (Livre como em Liberdade)

“Software Livre” é uma questão de liberdade, não de preço. Para entender o


conceito, o usuário deve pensar em “liberdade de expressão”, não em “cerveja
grátis”.
Mais precisamente, ele se refere a quatro tipos de liberdade para os usuários do
software:

(1) A liberdade de executar o programa, para qualquer propósito

(2) A liberdade de estudar como o programa funciona, e adaptá-lo para as suas


necessidades. O acesso ao código-fonte é um pré-requisito para esta liberdade

(3) A liberdade de redistribuir cópias de modo que o usuário possa ajudar ao seu
próximo

(4) A liberdade de aperfeiçoar o programa e liberar os seus melhoramentos, de


modo que toda a comunidade se beneficie. O acesso ao código-fonte é um
pré-requisito para esta liberdade

Um programa é software livre se os usuários tem todas essas


liberdades.

O usuário deve ser livre para redistribuir cópias, seja com ou sem modificações,
seja de graça ou cobrando uma taxa pela distribuição, para qualquer um em qualquer
lugar. Ser livre para fazer essas coisas significa (entre outras coisas) que o usuário
não tem que pedir ou pagar pela permissão.

O usuário deve também ter a liberdade de fazer modifcações e usá-las


privativamente no seu trabalho ou lazer, sem nem mesmo mencionar que

Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com


Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com

elas existem.

Se o usuário publicar as modificações, o mesmo não é obrigado a avisar a


ninguém em particular, ou de nenhum modo em especial.

A liberdade de utilizar um programa significa a liberdade para


qualquer tipo de pessoa física ou jurídica utilizar o software em qualquer
tipo de sistema computacional.

Para qualquer tipo de trabalho ou atividade, sem que seja necessário comunicar
ao desenvolvedor ou a qualquer outra entidade em especial.

A liberdade de redistribuir cópias deve incluir formas binárias ou


executáveis do programa, assim como o código-fonte, tanto para as versões
originais quanto para as modificadas.

Está tudo bem se não for possível produzir uma forma binária ou executável
(pois algumas linguagens de programação não suportam este recurso), mas deve ser
concedida a liberdade de redistribuir essas formas caso seja desenvolvido um meio de
criá-las.

De modo que a liberdade de fazer modificações e de publicar versões


aperfeiçoadas, tenha algum significado, deve-se ter acesso ao código-fonte do
programa. Portanto, o acesso ao código-fonte é uma condição necessária ao
software livre.
Software Livre não significa “não-comercial”. Um programa livre deve estar
disponível para uso comercial, desenvolvimento comercial, e distribuição comercial.

O desenvolvimento comercial de software livre não é incomum, tais softwares


livres comerciais são muito importantes.

No projeto GNU é usado o termo copyleft para proteger estas liberdades


legalmente para todos. Mas também existe software livre que não é copyleft.

Quando se tratar de software livre, é melhor evitar o uso de termos como


“dado” ou “de graça”, porque estes termos implicam que a questão é de preço, não
de liberdade.

O Copyleft

O modo mais simples de tornar um programa livre é colocá-lo em domínio


público, sem copyright. Isto permite que as pessoas compartilhem o programa e suas
melhorias, se elas estiverem dispostas a tal. Mas isto também permite que pessoas
não-cooperativas transformem o programa em software proprietário. Elas podem
fazer modificações, poucas ou muitas, e distribuir o resultado como um produto
proprietário. As pessoas que receberem esta forma modificada do programa não tem
a liberdade que o autor original havia lhes dado pois o intermediário eliminou estas
liberdades.
No Projeto GNU, o objetivo é dar a todos os usuários a liberdade de redistribuir
e modificar o software GNU. Em vez de colocar o software GNU em domínio público,
“nós o tornamos copyleft”. (copyleft é um trocadilho com o termo “copyright”.

Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com


Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com

Traduzindo literalmente, copylef significa “deixamos copiar”). O copyleft diz que


qualquer um que distribui o software, com ou sem modificações, tem que passar
adiante a liberdade de copiar e modificar novamente o programa. O copyleft garante
que todos os usuários tenham liberdade.
Desenvolvedores de software proprietário usam o copyright para retirar a
liberdade dos usuários e o Projeto GNU utiliza o copyright para garantir a liberdade
deles. É por isso que o nome é revertido, mudando de “copyright” para “copyleft” !
Copyleft é um conceito genérico pois existem várias formas de preencher os
detalhes. Os termos específicos sobre distribuição de software estão contidos nas
licenças do Projeto GNU.

1.8 – Licenças do Projeto GNU


Abaixo estão algumas licenças de software livre e documentação livre que
fazem parte do Projeto GNU:

• GNU General Public License ou GNU GPL


GPL – Licença Pública Geral
É uma licença de software livre recomendada para muitos dos pacotes de
software.

• GNU Lesser General Public License ou GNU LGPL


LGPL – Licença Pública Menos Geral
É uma licença de software livre, menos restritiva que a GPL, pois permite a
ligação com programas não livres.

• GNU Free Documentation License ou GNU FDL


FDL – Licença de Documentação Livre
É uma licença pretendida para uso em documentação livre, como também
para dicionários e livros.

Além dessas licenças do Projeto GNU, existe muitas outras licenças que são
consideradas como software livre compatíveis com a GPL ou não. Existem também
licenças de software não livre e licenças de documentação livre ou não.

Dica- Visite o site abaixo para maiores informações sobre licenças:

http://www.gnu.org/licenses/license-list.html

1.9 – Free Software Foundation (FSF)


Com o interesse em usar o Emacs estava crescendo e outras pessoas estavam
envolvidas no Projeto GNU, em 1985 foi fundada a Free Software Foundation para
cuidar dos negócios do projeto como venda de CD's com os softwares e manuais.
Uma das missões da FSF é preservar, proteger, e promover a liberdade para
usar, estudar, copiar, modificar, redistribuir software de computador e defender os
direitos de software livre dos usuários.
Esta organização promove o desenvolvimento e o uso de software livre em
todas as áreas da computação mas, particularmente ajudando a desenvolver o
sistema operacional GNU. Muitas organizações distribuem qualquer software livre que

Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com


Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com

por ventura esteja disponível. Em contraste, a Fundação para o Software Livre se


concentra no desenvolvimento de novos softwares livres e em tornar estes softwares
em um sistema coerente que possa eliminar a necessidade de se utilizar softwares
proprietários.
Além de desenvolver o GNU, a FSF distribui cópias do software GNU e manuais
por uma taxa de distribuição e aceita doações dedutíveis sobre os impostos para
suportar o desenvolvimento do GNU. A maior parte dos fundos da FSF vem deste
serviço de distribuição.

1.10 – O que é o Movimento Open Source


Em 1998, algumas pessoas da comunidade do software livre começaram a usar
o termo “Software Open Source” ao invés de “Free Software” para descrever o que
elas faziam. O termo rapidamente tornou-se associado com diferentes características,
filosofia, valores e diferentes critérios para a qual as licenças eram aceitáveis.
O movimento open source é um desdobramento do movimento do software
livre que defende software open source como um rótulo alternativo ao software livre,
primeiramente com fundamentos mais práticos do que filosóficos. O movimento foi
fundado em 1998 por John Maddog Hall, Larry Augustin, Eric S. Raymond, Bruce
Perens e outros.
Eric Raymond é provavelmente a única pessoa mais identificada com o
movimento, ele foi e permanece auto-descrito como o principal teórico, mas não
afirma guiar este movimento. Em contraste ao movimento do software livre, o qual
tem sido essencialmente liderado por Richard Stallman, o movimento open source é
dirigido por um livre conselho diretor de anciãos que incluem Raymond e outros co-
fundadores.
O grupo adotou a Definição de Open Source (Open Source Definition) que é
usada pela “Open Source Initiative” para determinar se uma licença de software
possa ser considerada open source. Esta definição foi baseada no “Debian Free
Software Guidelines”, escrito e adaptado primeiramente por Bruce Perens.
Abaixo, na definição de open source, a licença deve encontrar 10 condições em
ordem para ser considerada uma licença open source.

Open Source Definition:

1) O programa deve poder ser redistribuído sem a exigência de pagamentos de


qualquer espécie

2) Todos os programas devem incluir o código fonte. Caso não seja distribuído
com o código fonte, deve haver indicações claras de como obtê-lo

3) A licença deve permitir modificações e trabalhos derivados, que devem poder


ser distribuídos nos mesmos termos da licença original do software

4) A licença pode restringir a distribuição de trabalhos cujo original seja


diretamente modificado, desde que garanta a distribuição de arquivos de
correção que possam ser aplicados no momento da compilação. Isso visa
permitir que o desenvolvedor do programa original tenha a opção de exigir
que seu código original não seja modificado. Nesse caso, os arquivos de
correção podem ser distribuídos, e alterar o programa original somente no
momento da tradução para o código de máquina entendido pelo computador.

Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com


Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com

E o autor pode também exigir que o trabalho derivado seja distribuído sob
uma nova nomenclatura ou sob um diferente número de versão

5) A licença não pode discriminar nenhum tipo de pessoa ou grupo

6) A licença não pode restringir qualquer tipo de uso do programa

7) Os direitos sobre o programa devem ser definidos somente através da licença,


não sendo permitido nenhum mecanismo adicional. Isso visa evitar que o
programa tenha uma licença livre, mas que o usuário seja obrigado, por
exemplo, a concordar com um termo de não divulgação

8) A licença não pode ser condicional à presença do programa numa


determinada distribuição ou conjunto de outros programas. Se o programa
licenciado for retirado dessa distribuição, a licença deve permanecer válida
mesmo que ele esteja atuando separadamente

9) A licença não deve exigir que outro programa distribuido em conjunto siga a
mesma licença. Um programa de código aberto pode, portanto, ser distribuído
em conjunto com um proprietário sem que este tenha que se tornar livre

10)A licença deve ser tecnologicamente neutra, não devendo exigir o uso de uma
tecnologia específica ou tipo de interface

Não é feita, então, na definição de código aberto, qualquer referência a


aspectos políticos, sociais e de liberdade, ao contrário das licenças de software livre
da FSF, onde o aspecto de liberdade é fundamental. Além da questão política, existe
uma outra grande diferença: num software licenciado pela GNU GPL da FSF, todo o
trabalho derivado necessariamente também deve ser software livre. No entanto, a
definição do Código Aberto dá abertura para que sejam criadas licenças que permitam
que um software aberto seja fechado e passe a ser distribuído como software
proprietário, deixando portanto de ser livre.

Devido a essa diferença de posições, chegaram a haver embates públicos entre


as duas correntes, notadamente tendo a FSF e a Open Source Initiative como
protagonistas. Stallman já reiterou em várias oportunidades que o objetivo do Código
Aberto é produzir software poderoso e de alta qualidade, e que isso é um objetivo
louvável, mas não o mais importante: o mais importante é a liberdade. E a questão
ficou mais complicada a partir do momento em que grande parte da comunidade
usuária passou a não mais utilizar o termo software livre, mas sim código aberto.

Isso tinha o objetivo de tornar os termos mais palatáveis a executivos e


usuários comerciais que não se importam com questões sociais e de liberdade, e
também para evitar a confusão que sempre existiu entre software livre e software
grátis , uma vez que no inglês os dois termos são designados pela mesma palavra –
free.

Muitas pessoas reconhecem o benefício qualitativo ao processo de


desenvolvimento de software quando o código fonte é aberto e pode ser usado,
modificado e redistribuído pelos desenvolvedores. O movimento do software livre
coloca primeiramente ênfase nos aspectos morais e éticos do software, vendo a
excelência técnica como desejável pelo produto de padrão ético, enquanto que o

Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com


Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com

movimento open source vê a excelência técnica como o primeiro ponto, respeitando o


compartilhamento do código fonte e tendo em vista como um fim.

Para esse movimento, o software deve ser aberto não por questões de
liberdade, mas sim porque consideram o modelo aberto de desenvolvimento mais
eficiente tanto técnica quanto economicamente. A idéia central é que quando os
programadores podem ler, modificar e distribuir o código, naturalmente surgem
melhorias, adaptações e correções, que têm como conseqüência, a evolução do
programa.

As pessoas da comunidade open source aprenderam que o rápido processo


evolucionário produz melhores softwares do que o tradicional modelo fechado
(modelo de software proprietário), no qual poucos programadores podem ver o código
fonte.

A Iniciativa Open Source existe para trazer este tipo de caso ao mundo
comercial !

1.11 – Eric Raymond, A Catedral e o Bazar


A Catedral e o Bazar é um livro experimento de Eric S. Raymond sobre os
métodos de engenharia de software open source, baseados nas observações dele
sobre processo de desenvolvimento do kernel Linux e as experiências dele no
gerenciamento de projetos open source. Basicamente neste livro é mostrado os
modelos de desenvolvimento de software proprietário (A Catedral) e o modelo de
desenvolvimento de software open source (O Bazar).

1.12 – Diferenças entre os movimentos de Software


Livre e Open Source
As definições oficiais de software livre e open source são levemente diferentes,
a definição de software livre é geralmente mais restrita.
Como consequência disso, “free software” é “open source” mas software “open
source” pode ser ou não “free software”. Na prática, aproximadamente todas as
licenças open source satisfazem também a definição de software livre, e a difrença é
mais um problema de ênfase filosófica.
A diferença fundamental entre os dois movimentos está nos valores deles, na
forma deles olharem o mundo. No movimento open source, a questão se o software é
ou não open source é uma questão prática e não ética.

Open source é uma metodologia de desenvolvimento enquanto que


Free Software é um movimento social.

Para o movimento open source, software não livre é uma solução secundária
enquanto que, para o movimento software livre, software não livre é um problema
social e software livre é a solução.

Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com


Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com

CAPÍTULO 2

2.1 – O que é uma Distribuição GNU/Linux ?


Nos primeiros anos de existência do Linux, Linus Torvalds simplesmente
disponibilizava o kernel e alguns comandos bem básicos. O usuário tinha que arranjar
todos os demais programas, compilá-los, configurá-los, etc. Ao usuário Linux era
requerido ser algo como um expert em Unix, não somente conhecendo quais
bibliotecas e executáveis que eram necessários para bootar e rodar o sistema com
sucesso, mas também era importante preocupar-se com detalhes de configuração e a
colocação destes arquivos no sistema.
Como isso é trabalhoso até mesmo para um hacker, alguém teve a brilhante
idéia de disponibilizar os programas principais pré-compilados, de tal forma que o
usuário só precisasse pegá-los e instalá-los. Assim nasceu a primeira distribuição
GNU/Linux (ou distro), a MCC (Manchester Computer Centre) Interim Linux, da
Universidade de Manchester, em fevereiro de 1992.
Depois disso, surgiram e desapareceram várias distribuições, com diferentes
características. Neste momento o usuário deve estar perguntando: " Qual a melhor
distribuição ? ". Esta é uma pergunta impossível de ser respondida: depende muito do
gosto do usuário e do conhecimento sobre o Linux.
Cada uma das várias distribuições tem seu público-alvo e finalidades
específicas. Existem diferentes grupos e empresas que pegam os pacotes, pegam o
kernel, e colocam tudo para funcionar de forma harmoniosa, com um sistema de
instalação de pacotes, ferramentas de configuração amigáveis, programas de
instalação do sistema operacional, ferramentas de atualização pela Internet e etc.
Cada um desses grupos e empresas usam uma versão diferente de cada um
dos pacotes. Imagine então a infinidade de combinações de pacotes de diferentes
versões, como é complicada a tarefa de juntar vários deles e fazê-los funcionar juntos.
Existem também as mini-distribuições que têm como objetivo desde a recuperação de
um sistema danificado até o monitoramento de uma rede de computadores.
Hoje em dia, as principais diferenças entre as distribuições são:

• Tipo de instalador da distribuição (Ambiente gráfico ou texto)


• Sistema de gerenciamento de pacotes
• Ferramentas de configuração do sistema que a distribuição oferece
• Posição dos arquivos no sistema
• Aderência ao padrão LSB – Linux Standard Base
• Aderência ao padrão FHS – Filesystem Hierarchy Standard
• Alguma otimização para um arquitetura específica

Apesar das diferenças entre as distribuições, uma pessoa mais experiente pode
realizar a mesma tarefa em qualquer distribuição, talvez demorando um pouco mais
para familiarizar-se com a distribuição que está sendo utilizada, mas o resultado será
o mesmo. Toda distribuição Linux permite realizar as mesmas coisas, atingir os
mesmos objetivos, realizar as mesmas tarefas. É realmente uma questão de gosto
pessoal e adaptação.

Autor: Eduardo de Oliveira Hernandes MSN/MAIL/GTALK: tuxstrike@gmail.com

You might also like