Você está na página 1de 17

Linux

A Bblia
Traduo da 8
a
Edio
Christopher Negus
com a colaborao de
Christine Bresnahan
Rio de Janeiro, 2014
PFCG_Book 1.indb 3 13/05/2014 16:48:11
PFCG_Book 1.indb 30 13/05/2014 16:48:13
xxxi
Introduo
V
oc no pode aprender Linux sem us-lo.
Cheguei a essa concluso depois de mais de uma dcada ensinando as pessoas
a aprenderem Linux. Voc no pode simplesmente ler um livro, voc no pode
simplesmente ouvir uma palestra. Voc precisa de algum para gui-lo e voc precisa
mergulhar no assunto e praticar.
Em 1999, a Wiley publicou a primeira edio do livro Linux A Bblia. O enorme
sucesso me deu a oportunidade de me tornar um autor de tempo integral e
independente sobre o Linux. Por cerca de uma dcada, escrevi dezenas de livros sobre
Linux e explorei as melhores maneiras de explicar Linux a partir da quietude no meu
pequeno escritrio domstico.
Em 2008, peguei a estrada. Fui contratado pela Red Hat, Inc. como um instrutor em
tempo integral, ensinando Linux para administradores de sistema profissionais que
procuram a certificao Red Hat Certified Engineer (RHCE). Em meus trs anos como
instrutor de Linux, aperfeioei minhas habilidades de ensino na frente de pessoas vivas
cuja experincia em Linux variava de zero a um profissional experiente.
Neste livro, espero aplicar minha experincia em texto transformando voc de algum
que nunca usou o Linux em algum com as habilidades para se tornar um profissional
em Linux.
Agora em sua oitava edio, este livro adquiriu um escopo muito amplo em edies
anteriores. O livro cobria vrias distribuies do Linux, descrevia como executar
aplicativos, tocava na questo da administrao de sistema e fornecia uma entrada
para o desenvolvimento de software em Linux. Apesar de ter sido eleito um dos cinco
melhores livros de todos os tempos do Linux h trs anos, Linux A Bblia tinha
perdido seu caminho.
Esta oitava edio de Linux A Bblia representa uma grande reviso. Quase todo o
contedo anterior foi reescrito ou, na maioria dos casos, completamente substitudo. O
novo foco do livro pode ser resumido das seguintes maneiras:
Iniciante a profissional certificado: Desde que voc tenha usado um computa-
dor, mouse e teclado, voc pode comear com este livro. Ns lhe dizemos como
obter o Linux e como comear a us-lo, passamos por temas crticos e, por fim,
chegamos a como dominar a administrao e segurana do sistema.
Focado no administrador de sistema: Quando tiver concludo a leitura deste
livro, voc no s vai saber como usar o Linux mas como modific-lo e mant-lo.
Todos os tpicos necessrios para se tornar um Red Hat Certified Engineer so
abordados neste livro.
nfase nas ferramentas de linha de comando: Embora a interface grfica de
janelas para gerenciar o Linux tenha melhorado significativamente nos ltimos
anos, muitos recursos avanados s podem ser utilizados digitando comandos e
editando arquivos de configurao manualmente. Ns ensinamos como se tornar
proficiente com o shell de linha de comando do Linux.
PFCG_Book 1.indb 31 13/05/2014 16:48:13
xxxii
Introduo
Destinado a menos distribuies do Linux: Em edies anteriores, descrevi
cerca de 18 diferentes distribuies do Linux. Com apenas algumas excees
notveis, distribuies do Linux mais populares so ou so baseadas no Red Hat
(Red Hat Enterprise Linux, Fedora, CentOS etc) ou no Debian (Ubuntu, Linux
Mint, Knoppix etc). Concentrei-me no Red Hat, porque onde esto os trabalhos
com Linux mais bem remunerados; abordo um pouco o Ubuntu porque com ele
que muitos dos maiores fs do Linux comeam.
Muitas, muitas demos e exerccios: Em vez de apenas dizer o que o Linux faz,
eu realmente mostro o que ele faz. Ento, para garantir que aprendeu o assunto,
voc tem a oportunidade de experimentar os exerccios sozinhos. Todos os pro-
cedimentos e exerccios foram testados para funcionar no Fedora ou no Red Hat
Enterprise Linux. Muitos vo funcionar no Ubuntu tambm.
Como este livro est organizado
O livro est organizado para que voc possa comear logo no incio com o Linux e
crescer para se tornar um administrador de sistema Linux profissional e um power
user, um usurio avanado.
A Parte I, Comeando, inclui dois captulos destinados a ajudar voc a entender o que
o Linux e apresenta um desktop Linux:
O Captulo 1, Comeando com o Linux, aborda temas como o que o sistema
operacional Linux, de onde ele vem e como comear a us-lo.
O Captulo 2, Criando o desktop perfeito em Linux, fornece informaes sobre
como voc pode criar um sistema desktop e usar alguns dos recursos de desktop
mais populares.
A Parte II, Tornando-se um usurio avanando do Linux, fornece detalhes em
profundidade sobre como usar o shell do Linux, trabalhar com sistemas de arquivos,
manipular arquivos de texto, gerenciar processos e usar scripts de shell:
O Captulo 3, Utilizando o Shell, inclui informaes sobre como acessar um
shell, executar comandos, recuperar comandos (usando o histrico) e usar o com-
pletamento de comando com a tecla Tab. O captulo tambm descreve como usar
variveis, aliases e pginas do manual.
O Captulo 4, Movendo-se pelo sistema de arquivos, inclui comandos para
listar, criar, copiar e mover arquivos e diretrios. Tpicos mais avanados neste
captulo incluem a segurana do sistema de arquivos, tais como a posse de arqui-
vo, permisses e listas de controle de acesso.
O Captulo 5, Trabalhando com arquivos de texto, inclui tudo, desde editores de
textos bsicos at ferramentas para encontrar arquivos e pesquisar texto dentro de
arquivos.
O Captulo 6, Gerenciando processos em execuo, descreve a forma de ver os
processos que esto em execuo no sistema e alterar esses processos. Maneiras
de alterar processos incluem eliminar, pausar e enviar outros tipos de sinais.
O Captulo 7, Escrevendo scripts de shell simples, inclui comandos e funes
de shell que voc pode reunir em um arquivo para ser executado como um nico
comando.
PFCG_Book 1.indb 32 13/05/2014 16:48:13
xxxiii
Introduo
Na Parte III, Tornando-se um administrador de sistema Linux, voc aprende a
administrar sistemas Linux:
O Captulo 8, Aprendendo administrao de sistema, fornece informaes
bsicas sobre ferramentas grficas, comandos e arquivos de configurao para a
administrao de sistemas Linux.
O Captulo 9, Instalando o Linux, aborda as tarefas de instalaes comuns,
como o particionamento de disco e a seleo inicial do pacote de software, assim
como ferramentas de instalao avanadas, como a instalao a partir de arquivos
kickstart.
O Captulo 10, Obtendo e gerenciando software, fornece uma compreenso de
como os pacotes de software funcionam e como obt-los e gerenci-los.
O Captulo 11, Gerenciando contas de usurio, discute ferramentas para adicio-
nar e excluir usurios e grupos, bem como a forma de centralizar o gerenciamen-
to de conta de usurio.
O Captulo 12, Gerenciando discos e sistemas de arquivos, fornece informaes
sobre a adio de parties, criar e montar sistemas de arquivos, bem como traba-
lhar com gerenciamento de volume lgico.
Na Parte IV, Tornando-se um administrador de servidor Linux, voc aprender a criar
servidores de rede poderosos e as ferramentas necessrias para gerenci-los:
O Captulo 13, Entendendo administrao de servidores, aborda o registro em
log remoto, ferramentas de monitoramento e o processo de inicializao do Linux.
O Captulo 14, Administrando redes, discute a configurao de rede.
O Captulo 15, Iniciando e parando servios, fornece informaes sobre como
iniciar e parar servios de rede.
O Captulo 16, Configurando um servidor de impresso, descreve como confi-
gurar impressoras para usar localmente no seu sistema Linux ou atravs da rede a
partir de outros computadores.
O Captulo 17, Configurando um servidor web, descreve como configurar um
servidor Web Apache.
O Captulo 18, Configurando um servidor FTP, aborda os procedimentos para
a configurao de um servidor FTP que pode ser usado para permitir que outros
baixem arquivos de seu sistema Linux atravs da rede.
O Captulo 19, Configurando um servidor de compartilhamento de arquivos do
Windows (Samba), abrange configurao do servidor de arquivos Windows com
o Samba.
O Captulo 20, Configurando um servidor de arquivos NFS, descreve como usar
os recursos de rede do sistema de arquivos para compartilhar pastas de arquivos
entre sistemas em uma rede.
O Captulo 21, Soluo de problemas do Linux, abrange ferramentas populares
para a soluo de problemas no seu sistema Linux.
Na Parte V, Aprendendo tcnicas de segurana do Linux, voc aprende a proteger seus
sistemas e servios Linux:
O Captulo 22, Entendendo a segurana bsica do Linux, aborda os conceitos e
tcnicas bsicas de segurana.
PFCG_Book 1.indb 33 13/05/2014 16:48:13
xxxiv
Introduo
O Captulo 23, Entendendo segurana avanada do Linux, fornece informaes
sobre o uso de Pluggable Authentication Modules (PAM) e ferramentas de cripto-
logia para reforar a segurana e autenticao do sistema.
O Captulo 24, Aprimorando a segurana do Linux com o SELinux, mostra como
ativar Security Enhanced Linux (SELinux) para garantir os servios do sistema.
O Captulo 25, Protegendo Linux na rede, abrange recursos de segurana de
rede, como firewalls iptables, para garantir a segurana dos servios do sistema.
A Parte VI contm dois apndices para ajudar voc a obter o mximo de sua
compreenso do Linux. O Apndice A, Mdia, fornece orientao sobre download de
distribuies do Linux. O Apndice B, Respostas dos Exerccios, fornece solues de
exemplo para os exerccios includos nos captulos 2 a 25.
Convenes utilizadas neste livro
Ao longo do livro, uma tipografia especial indica cdigo e comandos. Comandos e
cdigos so mostrados em uma fonte monoespaada:
This is how code looks.
No caso de um exemplo incluir tanto a entrada como a sada, a fonte monoespaada
ainda usada, mas a entrada apresentada em negrito para diferenciar um do outro. Eis
um exemplo:
$ ftp ftp.handsonhistory.com
Name (home:jake): jake
Password: ******
Quanto aos estilos no texto:
Novos termos e palavras importantes aparecem em itlico quando introduzidos.
Teclas de atalho aparecem assim: Ctrl+A
Nomes de arquivos, URLs e cdigo dentro do texto aparecem assim: persistence.
properties.
Os seguintes itens chamam a ateno para pontos que so particularmente importantes.
Nota
Uma caixa de Nota fornece informaes extras para as quais voc precisa dedicar uma ateno
especial.
Dica
Uma caixa de Dica mostra uma maneira especial de realizar uma tarefa em particular.
PFCG_Book 1.indb 34 13/05/2014 16:48:13
xxxv
Introduo
Ateno
Uma caixa de Ateno alerta para voc tomar cuidado especial ao executar um procedimento ou
seu hardware ou software pode ser danificado.
Mergulhando no Linux
Se voc iniciante em Linux, pode ter vagas ideias sobre o que ele e de onde veio. Voc
j deve ter ouvido algo sobre ele ser free no sentido de gratuito ou no sentido de
livre (como a liberdade de us-lo como voc quiser). Antes de comear a pr as mos
no Linux (o que faremos em breve), o Captulo 1 procura responder algumas de suas
perguntas sobre as origens e os recursos do Linux.
Dedique um tempo para estudar este livro a fim de entender o Linux e como voc pode
faz-lo trabalhar para atender suas necessidades. Esse o seu convite para entrar e dar o
primeiro passo para se tornar um especialista em Linux!
Visite o site Linux Bible
Para encontrar links para as vrias distribuies do Linux, dicas sobre como obter
a certificao Linux e correes para o livro medida que se tornam disponveis,
visite http://www.wiley.com/WileyCDA/.
PFCG_Book 1.indb 35 13/05/2014 16:48:13
Parte I
Comeando
NESTA PARTE
Captulo 1
Comeando com o Linux
Captulo 2
Criando o Desktop Perfeito em Linux
PFCG_Book 1.indb 3 13/05/2014 16:48:13
PFCG_Book 1.indb 4 13/05/2014 16:48:13
5
Comeando com o Linux
NESTE CAPTULO
Aprendendo o que Linux
Aprendendo de onde o Linux veio
Escolhendo distribuies Linux
Explorando oportunidades profissionais com o Linux
Tornando-se certificado em Linux
O
Linux um dos avanos tecnolgicos mais importantes do sculo XXI. Alm
de seu impacto sobre o crescimento da internet e do seu lugar como uma
tecnologia capacitadora para uma srie de dispositivos baseados em computador,
o desenvolvimento do Linux tem sido um exemplo de como projetos colaborativos
podem ultrapassar o que as pessoas e empresas individuais podem fazer sozinhas.
O Google roda milhares e milhares de servidores Linux para fornecer sua tecnologia de
busca. Seus telefones Android so baseados no Linux. Da mesma forma, quando voc
baixa e executa o Google Chrome OS, voc tem um navegador que apoiado por um
sistema operacional Linux.
O Facebook constri e implanta em seu site usando o que conhecido como uma pilha
LAMP (Linux, servidor web Apache, banco de dados MySQL e linguagem de script web
PHP) todos so projetos open source, isto , baseados em cdigo livre. Na verdade, o
prprio Facebook usa um modelo de desenvolvimento de cdigo-fonte aberto, tornando
o cdigo-fonte para os aplicativos e ferramentas que guiam o Facebook disponveis para
o pblico. Esse modelo tem ajudado o Facebook a eliminar bugs rapidamente, obter
contribuies de todo o mundo e impulsionar o crescimento exponencial dessa rede social.
Organizaes financeiras que tm trilhes de dlares dependendo da velocidade e da
segurana de seus sistemas operacionais tambm se baseiam muito no Linux. Essas
incluem as bolsas de valores de Nova York, Chicago e Tquio.
A ampla adoo do Linux em todo o mundo criou uma demanda enorme pelo seu
conhecimento. Este captulo inicia voc em um caminho para se tornar um especialista
em Linux, ajudando-o a entender o que o Linux , de onde veio e quais so suas
oportunidades por se tornar proficiente nesse sistema. O restante deste livro fornece
atividades prticas para lhe ajudar a ganhar essa experincia.
CAP T ULO
1
PFCG_Book 1.indb 5 13/05/2014 16:48:13
6
Parte I: Comeando
Entendendo o que o Linux
Linux um sistema operacional de computador. Um sistema operacional consiste no
software que gerencia seu computador e permite que voc execute aplicativos nele. O que
caracteriza os sistemas operacionais Linux e similares :
Detectar e preparar hardware Quando o sistema Linux inicializa (quando
voc liga seu computador), ele olha para os componentes em seu computador
(CPU, disco rgido, placas de rede etc.) e carrega os softwares (drivers e mdulos)
necessrios para acessar dispositivos de hardware especficos.
Gerenciar processos O sistema operacional deve manter o controle de vrios
processos em execuo ao mesmo tempo e decidir quais tm acesso CPU e
quando. O sistema tambm deve oferecer formas de iniciar, parar e alterar o
status dos processos.
Gerenciar memria Memria RAM e espao de troca (memria estendida)
precisam ser alocados para aplicativos conforme eles precisam de memria. O
sistema operacional decide como as solicitaes de memria so manipuladas.
Fornecer interfaces de usurio Um sistema operacional deve fornecer
maneiras de acessar o sistema. Os primeiros sistemas Linux eram acessados
a partir de um interpretador de linha de comando chamado shell. Hoje, as
interfaces grficas desktop esto comumente disponveis.
Controlar sistemas de arquivos Estruturas do sistema de arquivos so
incorporadas ao sistema operacional (ou carregadas como mdulos). O sistema
operacional controla a posse e acesso aos arquivos e diretrios que contm os
sistemas de arquivos.
Proporcionar acesso e autenticao de usurio Criar contas de usurios e
definir limites para eles uma caracterstica bsica do Linux. Separar contas de
usurio e de grupo permite o controle de seus prprios arquivos e processos.
Oferecer utilitrios administrativos No Linux, existem centenas (talvez
milhares) de comandos e janelas grficas para fazer coisas como adicionar
usurios, gerenciar discos, monitorar a rede, instalar softwares e, de maneira
geral, proteger e gerenciar seu computador.
Iniciar servios Para utilizar impressoras, tratar mensagens de log e fornecer
uma variedade de sistemas e servios de rede, processos rodam em segundo
plano, espera de pedidos por vir. H muitos tipos de servios que so
executados no Linux e ele fornece diferentes maneiras de iniciar e parar esses
servios. Em outras palavras, enquanto o Linux possui navegadores para exibir
pginas da web, ele tambm pode ser aquele que serve essas pginas a outros.
Recursos de servidores populares incluem servidores de web, e-mail, banco de
dados, impressora, arquivo, DNS e DHCP.
Ferramentas de programao Uma grande variedade de utilitrios de
programao para criar aplicativos e bibliotecas a fim de implementar interfaces
especiais esto disponveis com o Linux.
Como um gerenciador de sistemas Linux, voc precisa aprender a trabalhar com as
caractersticas descritas anteriormente. Embora muitos recursos possam ser gerenciados
usando interfaces grficas, uma compreenso da linha de comando do shell
fundamental para algum que administra sistemas Linux.
PFCG_Book 1.indb 6 13/05/2014 16:48:14
7
Captulo 1: Comeando com o Linux
1
Os modernos sistemas Linux agora vo muito alm do que podiam os primeiros sistemas
UNIX (em que o Linux se baseava). Recursos avanados no Linux, frequentemente
usados em grandes empresas, incluem os seguintes:
Clustering O Linux pode ser configurado para trabalhar em clusters, ou
aglomerados de computadores, de modo a fazer vrios sistemas aparecerem como
um sistema para o mundo exterior. Os servios podem ser configurados para se
distriburem entre os ns do cluster, enquanto, para aqueles que os utilizam,
paream estar funcionando sem interrupo.
Virtualizao Para gerenciar recursos de computao de forma mais eficiente,
o Linux pode funcionar como um servidor de virtualizao. Nesse servidor,
voc pode executar outros sistemas Linux, Microsoft Windows, BSD, ou outros
sistemas operacionais como convidados virtuais. Para o mundo exterior, cada
um dos convidados virtuais aparece como um computador separado. O KVM e o
Xen so duas tecnologias em Linux para a criao de mquinas virtuais. Red Hat
Enterprise Virtualization um produto da Red Hat, Inc. para gerenciar mltiplos
servidores de virtualizao, convidados virtuais e armazenamento de dados.
Computao em tempo real O Linux pode ser configurado para computao
em tempo real, em que os processos de alta prioridade possam esperar uma
ateno rpida e previsvel.
Armazenamento especializado Em vez de apenas armazenar dados no
disco rgido do computador, vrias interfaces especializadas de armazenamento
local e em rede esto disponveis em Linux. Dispositivos compartilhados de
armazenamento em Linux incluem o iSCSI, o Fibre Channel e o InfiniBand.
Muitos desses tpicos avanados no so abordados neste livro. Mas os recursos
abordados aqui para usar o shell, trabalhar com discos, iniciar e parar servios e
configurar uma grande variedade de servidores devem servir como uma base para
trabalhar com esses recursos avanados.
Entendendo como o Linux difere
de outros sistemas operacionais
Se voc novo no Linux, provvel que tenha usado um sistema operacional Microsoft
Windows ou Apple Ma c OS. Embora o Mac OS X tenha suas razes em um sistema
operacional de software livre, referido como Berkeley Software Distribution (mais sobre
isso mais adiante), os sistemas operacionais da Microsoft e da Apple so considerados
sistemas operacionais proprietrios. Isso significa que:
Voc no pode ver o cdigo usado para criar o sistema operacional.
Voc, portanto, no pode alterar o sistema operacional em seus nveis mais bsicos
se ele no atender suas necessidades e voc no pode usar o sistema operacional
para construir seu prprio sistema operacional a partir do cdigo-fonte.
Voc no pode verificar o cdigo para encontrar erros, explorar vulnerabilidades
de segurana, ou simplesmente saber o que o cdigo est fazendo.
Voc pode no ser capaz de facilmente conectar seu prprio software com
o sistema operacional se os criadores desse sistema no quiserem expor as
interfaces de programao que voc precisa para o mundo exterior.
PFCG_Book 1.indb 7 13/05/2014 16:48:14
8
Parte I: Comeando
Voc pode ler as declaraes sobre o software proprietrio e dizer: O que me importa?
Eu no sou um desenvolvedor de software. Eu no quero ver ou mudar o modo como
meu sistema operacional construdo.
Isso pode ser verdade. Mas o fato de que outros podem ter software livre e de cdigo-
fonte aberto e us-lo como quiserem tem impulsionado o crescimento explosivo da
internet, telefones celulares (pense no Android), dispositivos de computao especiais
(pense no Tivo) e centenas de empresas de tecnologia. O software livre baixou os custos
de computao e permitiu uma exploso de inovao.
Talvez voc no queira usar o Linux de forma semelhante a que o Google, o Facebook
e outras empresas tm usado para construir a fundao de uma empresa de bilhes
de dlares. Mas essas e outras empresas que agora contam com o Linux para conduzir
suas infraestruturas de computador esto precisando de cada vez mais pessoas com as
habilidades para rodar esses sistemas.
Voc pode se perguntar como um sistema de computador que to poderoso e flexvel
tornou-se livre tambm. Para entender como isso aconteceu, voc precisa ver de onde o
Linux veio. Assim, a prxima seo deste captulo descreve o caminho estranho e sinuoso
do movimento do software livre que levou ao Linux.
Explorando a histria do Linux
Algumas histrias do Linux comeam com essa mensagem postada por Linus Torvalds
no newsgroup comp.os.minix em 26 de agosto de 1991 (http://groups.google.
com/group/comp.os.minix/msg/b813d52cbc5a044b):
Linus Benedict Torvalds
Ol pessoal por a usando minix -
Estou criando um sistema operacional (livre) (apenas um hobby, no ser grande e
profissional como o gnu) para clones AT 386(486). Ele vem crescendo desde abril e est
comeando a ficar pronto. Eu gostaria de qualquer feedback das pessoas sobre o que
gostaram ou no no minix, uma vez que meu OS se parece um pouco com ele (mesmo
layout fsico do sistema de arquivos (devido a razes prticas, entre outras coisas)...
Quaisquer sugestes sero bem-vindas, mas no prometo que vou implement-las. :-)
Linus (torvalds@kruuna.helsinki.fi)
P.S.: Sim no contm nenhum cdigo minix e tem um fs multi-threaded. NO
portvel [sic] (usa alternncia de tarefas de 386 etc) e provavelmente nunca vai suportar
outra coisa seno discos rgidos AT, j que isso tudo o que tenho. :-(
O Minix era um sistema operacional tipo UNIX que rodava em PCs no incio da dcada de
1990. Assim como o Minix, o Linux tambm era um clone do sistema operacional UNIX.
Com poucas excees, como o Microsoft Windows, sistemas de computadores mais
modernos (incluindo Mac OS X e Linux) eram provenientes de sistemas operacionais
UNIX, criados originalmente pela AT&T.
Para apreciar verdadeiramente como um sistema operacional livre poderia ter sido
projetado com base em um sistema proprietrio dos Laboratrios Bell da AT&T, ajuda
entender a cultura em que o UNIX foi criado e a cadeia de eventos que tornaram possvel
reproduzir livremente a essncia desse sistema.
PFCG_Book 1.indb 8 13/05/2014 16:48:14
9
Captulo 1: Comeando com o Linux
1
Nota
Para saber mais sobre como o Linux foi criado, pegue o livro Just For Fun: The Story of an
Accidental Revolutionary, de Linus Torvalds (Harper Collins Publishing, 2001).
A cultura de fluxo livre do UNIX no Bell Labs
Desde o incio, o sistema operacional UNIX foi criado e nutrido em um ambiente de
comunidade. Sua criao no foi impulsionada por necessidades do mercado, mas por
um desejo de superar os obstculos na produo de programas. A AT&T, que detinha a
marca UNIX originalmente, acabou transformando o UNIX em um produto comercial,
mas a essa altura, muitos dos conceitos (e at mesmo grande parte do cdigo inicial) que
tornavam o UNIX especial tinham cado em domnio pblico.
Se voc no tem idade suficiente para lembrar quando a AT&T se dividiu, em 1984, voc
pode no se lembrar de uma poca em que a AT&T era a companhia telefnica. At
o incio de 1980, a AT&T no precisava pensar muito em competio, porque se voc
queria um telefone nos Estados Unidos, tinha de recorrer AT&T. Ela se dava ao luxo de
financiar projetos de pesquisa pura. A Meca para tais projetos era o Bell Laboratories, em
Murray Hill, Nova Jersey.
Depois que um projeto chamado Multics falhou por volta de 1969, os funcionrios da Bell
Labs Ken Thompson e Dennis Ritchie decidiram sair e criar por conta prpria um sistema
operacional que oferecesse um melhor ambiente para o desenvolvimento de software.
Naquela poca, a maioria dos programas era escrita em cartes perfurados que tinham de
ser inseridos em lotes em computadores mainframe. Em uma palestra em 1980 sobre A
Evoluo do Sistema de Compartilhamento de Tempo do UNIX, Dennis Ritchie resumiu
o esprito que iniciou o UNIX:
O que queramos preservar era no s um bom ambiente para fazer programao, mas
um sistema em torno do qual um companheirismo poderia se formar. Sabamos, por
experincia, que a essncia da computao em comunidade da maneira proporcionada
pelo acesso remoto e o compartilhamento de tempo de mquinas no apenas para
digitar programas em um terminal em vez de um furador de papel, mas para encorajar
a comunicao de perto.
A simplicidade e o poder do projeto UNIX comeou a quebrar as barreiras que, at esse
ponto, impediam os desenvolvedores de software. A fundao do UNIX foi criada com
vrios elementos-chave:
O sistema de arquivos UNIX Porque inclua uma estrutura que permitia nveis
de subdiretrios (os quais, para os usurios de desktop de hoje, parecem pastas
dentro de pastas), o UNIX poderia ser usado para organizar os arquivos e diretrios
de forma intuitiva. Alm disso, os complexos mtodos de acessar discos, fitas e
outros dispositivos foram significativamente simplificados, representando esses
dispositivos como arquivos de dispositivos individuais que voc tambm podia
acessar como itens em um diretrio.
Redirecionamento de entrada/sada Os primeiros sistemas UNIX tambm
incluam redirecionamento de entrada. A partir de uma linha de comando, os
usurios UNIX podiam direcionar a sada de um comando para um arquivo usando
uma tecla de seta para a direita (>). Mais tarde, o conceito de redirecionamento
(usando o caractere |, conhecido como pipe em ingls) foi ampliado fazendo
a sada de um comando ser direcionada para a entrada de outro. Por exemplo, o
PFCG_Book 1.indb 9 13/05/2014 16:48:14
10
Parte I: Comeando
comando a seguir concatena (cat) o arquivo1 e arquivo2, ordena (sort) as linhas
nesses arquivos alfabeticamente, pagina o texto classificado para a impresso (pr)
e direciona a sada para a impressora padro do computador (lpr):
$ cat file1 file2 | sort | pr | lpr
Esse mtodo de direcionar entrada e sada permitiu aos desenvolvedores criar
seus prprios utilitrios especializados que podiam ser vinculados com utilitrios
existentes. Essa modularidade tornou possvel que lotes de cdigo fossem
desenvolvidos por muitas pessoas diferentes. Um usurio poderia simplesmente
montar as peas para o que ele precisava.
Portabilidade Simplificar a experincia de usar UNIX tambm o tornou
extremamente porttil para rodar em diferentes computadores. Por ter drivers de
dispositivo (representados por arquivos na rvore de arquivos), o UNIX poderia
apresentar uma interface para aplicaes de tal forma que os programas no
precisavam saber sobre os detalhes do hardware subjacente. Para mais tarde
portar o UNIX para outro sistema, os desenvolvedores s precisavam mudar os
drivers. Os programas aplicativos no precisavam ser alterados para rodar em um
hardware diferente!
Para tornar a portabilidade uma realidade, era necessria uma linguagem de programao
de alto nvel a fim de implementar o software necessrio. Para esse fim, Brian Kernighan
e Dennis Ritchie criaram a linguagem de programao C. Em 1973, o UNIX foi reescrito
em C. Hoje, o C ainda o principal idioma usado para criar o kernel dos sistemas
operacionais Unix (e Linux).
Como Ritchie chegou a dizer em uma palestra, em 1979 (hhtp://.bell-labs.com/
who/dmr/hist.html):
Hoje, o nico programa UNIX importante ainda escrito em assembler o assembler
em si, praticamente todos os programas utilitrios esto em C e por isso so a maioria
dos programas, embora tambm existam locais com muitos em Fortran, Pascal e
Algol 68. Parece certo que a maior parte do sucesso do UNIX resulta da legibilidade,
modificabilidade e portabilidade do seu software que, por sua vez, resulta da sua
expresso em linguagens de alto nvel.
Se voc um entusiasta do Linux e est interessado nos recursos de seus primeiros dias
que sobreviveram at hoje, uma leitura interessante a reimpresso do primeiro manual
programador UNIX feito por Dennis Ritchie (datado em 3 de novembro de 1971). Voc
pode encontr-lo no site de Dennis Ritchie: http://cm.belllabs.com/cm/cs/who/
dmr/1stEdman.html. A forma dessa documentao a das pginas man (pgina
do manual) do UNIX que ainda o principal formato para documentar comandos de
sistema operacional UNIX e Linux e ferramentas de programao de hoje em dia.
O que fica claro quando voc l a documentao inicial e os relatos do sistema UNIX
que o desenvolvimento foi um processo de fluxo livre, sem ego, e se dedicou a tornar o
UNIX excelente. Esse processo levou a um compartilhamento de cdigo (dentro e fora da
Bell Labs), o que permitiu o rpido desenvolvimento de um sistema operacional UNIX de
alta qualidade. Isso tambm levou a um sistema operacional que a AT&T teria dificuldade
em recuperar mais tarde.
PFCG_Book 1.indb 10 13/05/2014 16:48:14
11
Captulo 1: Comeando com o Linux
1
O UNIX comercializado
Antes da alienao de participao societria da AT&T em 1984, quando ela foi dividida
em AT&T e sete empresas Baby Bell, a AT&T foi proibida de vender sistemas de
computador. As empresas que mais tarde se tornariam Verizon, Qwest e Alcatel-Lucent
eram todas parte da AT&T. Como resultado desse monoplio do sistema de telefonia,
o governo dos EUA estava preocupado com a possibilidade de que uma AT&T irrestrita
pudesse dominar a incipiente indstria de computadores.
Por causa disso, a AT&T foi impedida de vender computadores diretamente aos clientes
antes de sua alienao, o cdigo-fonte UNIX foi licenciado para universidades por um
valor simblico. No havia um sistema operacional UNIX para venda pela AT&T que voc
no tivesse de compilar por sua prpria conta.
Chega a Berkeley Software Distribution
Em 1975, o UNIX V6 tornou-se a primeira verso UNIX disponvel para uso generalizado
fora da Bell Laboratories. A partir desse cdigo-fonte UNIX inicial, a primeira variante
importante do UNIX foi criada na Universidade da Califrnia, em Berkeley, e foi batizada
como Berkeley Software Distribution (BSD).
Durante a maior parte da dcada seguinte, as verses BSD e UNIX da Bell Labs tomaram
direes distintas. O BSD continuou frente no estilo fluxo livre e compartilhado, que era
a marca do UNIX inicial da Bell Labs, enquanto a AT&T comeava a direcionar o UNIX
para a comercializao. Com a formao de um UNIX Laboratory separado, que saiu de
Murray Hill e se estabeleceu em Summit, Nova Jersey, a AT&T iniciou suas tentativas de
comercializar o UNIX. Em 1984, a alienao societria imposta pelo governo espreitava a
AT&T e ela estava pronta para realmente comear a comercializar o UNIX.
O UNIX Laboratory e a Comercializao
O UNIX Laboratory era considerado uma joia que no conseguia encontrar um lar ou
uma maneira de dar lucro. Enquanto se movia entre a Bell Laboratories e outras reas
da AT&T, seu nome mudou vrias vezes. Ele provavelmente melhor lembrado pelo
nome que tinha quando comeou sua proliferao a partir da AT&T: UNIX System
Laboratories (USL).
O cdigo-fonte do UNIX que saiu da USL, o legado que agora pertence em parte Santa
Cruz Operation (SCO), tem sido usado como base para os processos da SCO contra os
principais fornecedores do Linux (como a IBM e a Red Hat, Inc.). Por causa disso, acho
que os esforos de USL que contriburam para o sucesso do Linux so esquecidos pela
maioria das pessoas.
Durante a dcada de 1980, naturalmente, muitas empresas de informtica tinham
medo de que a recm-vendida AT&T representasse uma ameaa maior para o controle
da indstria de computadores do que seria uma empresa iniciante, em Redmond,
Washington. Para acalmar os temores da IBM, Intel, Digital Equipment Corporation e
outras empresas de informtica, o UNIX Lab fez os seguintes compromissos para garantir
a igualdade de condies:
Cdigo-fonte nico Em vez de produzir seu prprio conjunto de caixas
UNIX, a AT&T continuou a vender apenas o cdigo-fonte e torn-lo disponvel
igualmente a todos os licenciados. Cada empresa, ento, portaria o UNIX para seu
prprio equipamento. Mas foi s em 1992, quando o laboratrio foi desmembrado
PFCG_Book 1.indb 11 13/05/2014 16:48:14
12
Parte I: Comeando
como uma joint venture com a Novell (chamada Univel) e ento acabou sendo
vendido para a Novell, que um conjunto comercial em caixa do UNIX (chamado
UnixWare) foi produzido diretamente a partir daquele cdigo-fonte.
Interfaces publicadas Para criar um ambiente de justia e comunidade
para seus OEMs (fabricantes de equipamentos originais), a AT&T comeou a
padronizar o que os diferentes fornecedores de UNIX tinham de ser capazes de
fazer para continuar a ser chamado de UNIX. Para esse fim, o Portable Operating
System Interface (POSIX) e a AT&T UNIX System V Interface Definition (SVID)
eram especificaes que os fornecedores de Unix poderiam usar para criar
sistemas compatveis com UNIX. Esses mesmos documentos tambm serviram
como roteiros para a criao do Linux.
Nota
Em uma postagem inicial no grupo de notcias por e-mail, Linus Torvalds fez um pedido de uma
cpia, de preferncia online, do padro POSIX. Acho que ningum da AT&T esperava algum ser
realmente capaz de escrever seu prprio clone do UNIX a partir dessas interfaces, sem o uso de
qualquer parte do seu cdigo-fonte UNIX.
Abordagem tcnica Mais uma vez, at o fim da USL, a maioria das decises
sobre a direo do UNIX eram feitas com base em consideraes tcnicas. O
gerenciamento foi promovido entre o pessoal tcnico e, at onde eu sei, nunca
houve qualquer conversa sobre escrever um software para quebrar o de outras
empresas ou restringir o sucesso de parceiros da USL.
Quando por fim a USL comeou a contratar especialistas em marketing e criar um produto
desktop UNIX para usurios finais, o Microsoft Windows j tinha uma firme predominncia
no mercado de desktops. Tambm, porque a direo do UNIX tinha ido sempre no sentido
do cdigo-fonte de licenciamento destinado a sistemas de computao de grande porte, a
USL tinha dificuldades para precificar seus produtos. Por exemplo, em um software que
ela estava incluindo no UNIX, a USL era obrigada a pagar taxas de licenciamento por
computador que se baseavam em mainframes de US$ 100.000 em vez de computadores de
US$ 2.000. Adicione a isso o fato de que no havia programas aplicativos disponveis para o
UnixWare e voc pode ver por que o esforo falhou.
Mas um marketing de sucesso de sistemas UNIX da poca estava acontecendo com outras
empresas de informtica. A SCO tinha encontrado um nicho de mercado, principalmente
vendendo verses para PC do UNIX executando terminais burros em pequenos escritrios.
A Sun Microsystems estava vendendo um grande nmero de estaes de trabalho UNIX
(originalmente baseadas no BSD, mas fundidas com o UNIX no SVR4) para programadores
e aplicaes de tecnologia sofisticada (como bolsas de valores).
Outros sistemas UNIX comerciais tambm foram surgindo na dcada de 1980. Essa nova
afirmao de propriedade do UNIX estava comeando a cobrar seu preo ao esprito
das contribuies abertas. Comearam a surgir processos para proteger o cdigo-fonte
e marcas comerciais do UNIX. Em 1984, esse novo UNIX restritivo deu origem a uma
organizao que pavimentou uma estrada para o Linux: a Free Software Foundation
(Fundao do Software Livre).
PFCG_Book 1.indb 12 13/05/2014 16:48:14