Linux Guia do Administrador Administrador do Sistema
Rubem E. Ferreira
Novatec Editora Ltda. www.novateceditora.com.br
1 O início de tudo
Entre os vários sistemas operacionais existentes, o Unix é um exemplo de maturidade e eficiência. Durante mais de trinta anos tem sido utilizado universalmente nas mais diversas aplicações e p lataform as de h ardware, e con tinu a aind a a ser um sistema o p eracion al po dero so, moderno e atual, em meio a um cenário de rápidas mudanças tecnológicas, tanto em hardware como em software. Ao longo dos anos, várias versões do Unix surgiram, tanto comerciais como Solaris, IRIX, HP-UX, AIX, e livres, com o FreeBSD e Linux, sen do o Linux o ob jeto de ste livro. O Linux é bem mais acessível que os Unix comerciais. Na essência, utilizar o Linux é p raticamen te o me smo q ue u tilizar os Unix comerciais, o q ue garante que , uma vez aprend en do a utilizar o Linux, e eventualmente precisando utilizar um Unix comercial, pode-se realizar essa tarefa facilmente.
O Unix O Unix é um sistema operacional multitarefa e multiusuário, disponível para diversas plataformas de hardware. O Unix foi criado no final da década de 1960 e início da de 1970, em uma época em que os comp utadores eram grandes, caros e de difícil acesso a p essoas com uns. Havia po ucos computadores e vários pesquisadores necessitando dos recursos destes para poderem dar andamento aos seus trabalhos, e os sistemas operacionais da época não satisfaziam às necessidades desses profissionais. Era, então, imprescindível desenvolver um sistema op eracional mu ltiusuário, mu ltitarefa, que p ud esse ser co nver tido p ara diferen tes plataform as de hardware. O Unix é um sistema op eracion al multiusuário, po is perm ite qu e vários usuários utilizem o m esmo com pu tador ao mesmo tempo, po r meio d e terminais remotos, e também u m sistema op eracion al mu ltitarefa, po is perm ite que vários p rogramas sejam execu tados simu ltaneamen te. Além disso, o Unix apresenta uma vasta gama de possibilidades relacionadas à rede, como sistema de cota d e d isco, FTP, e-mail, WWW, DNS, po ssibilidad e d e d iferen tes níveis de a cesso, de executar programas em background etc.
21
Linux – Guia do Administrador do Sistema Inicialme nte o Unix foi escrito em lingu agem Assemb ly, qu e varia muito de u m com p utado r para outro. A necessidade de converter o Unix para diversas plataformas de hardware levou à criação de uma linguagem de programação na qual qualquer programa pudesse ser convertido facilmente, com p ou ca ou nen hum a alteração, para qualque r uma das plataform as.Essa lingu agem foi den om inada C, qu e me smo n os dias de ho je, continua m od erna e p od erosa. Logo o Unix foi reescrito em C e convertido para as mais diversas plataformas de hardware, sendo executado atualmen te tanto em com pu tadores de b olso com o em supercomp utadores. No início, o Unix era distribu ído gratuitame nte pe la AT&T (em p resa que o de sen volveu) para as universidades. Mais tarde, p orém , perceb en do o su cesso do Unix no m eio com ercial, a AT&T logo passou a d ispon ibilizá-lo po r um preço muito alto. Logo em seguida, dep artamentos d e ciência da computação de diversas universidades no mundo inteiro começaram a desenvolver programas comerciais para o Unix, criando um grande número de usuários e desenvolvedores de utilitários e programas. Entre os vários pesquisadores que desenvolveram o Unix, destaca-se o grupo da Universidad e da Califór nia, em Berkeley, qu e em 1975 licenciou a ve rsão 6 da AT&T, fez diversos aprimoramen tos e relançou -o com o Unix BSD. Con seqü entem ente, os do is maiores centros de desenvolvimento do Unix são a AT&T e Berkeley. Com o adven to das wo rkstations (estações de trabalho ) na décad a de 1980, surgiram mu itas versõe s co me rciais d o Unix, como Sun OS e Solaris, da Sun Microsystem s, AIX, da IBM, OSF/ 1 (h o je ch am ad o D igital Unix), da Digital, IRIX, da Silico n G rap hics, e HP-UX, da H ew lett Packard . Todas essas versões são baseadas nas versões da AT&T e de Berkeley, freqüentemente com m uitos cruzamentos e acréscimo s, resultand o em um a confusão de versões do Unix; po rém, em 1990, o IEEE (Instituto de Engenheiros Elétricos e Eletrônicos) começou a desenvolver o padrão POSIX (Portable Operating System Interface Unix) para uniformizar as características dos sistemas Unix. Até meados da década de 1980, o Unix ainda não possuía uma interface gráfica própria. Porém, com o advento do X Window System (sistema de janelas X), desenvolvidor pelo MIT (Massachusets Institute of Tech no logy), ele passou a d isp or de u m sistema gráfico do tip o clien teservidor e indep ende nte da arquitetura do comp utador. Em 1988, o controle do XWindow System foi passado para o XConsortium (Consórcio X), organização sem fins lucrativos criada para garantir a evolução do X.
Cronologia do Unix Ano
1969 1970 1971 1973 1974
22
Evento
Ken Thompson cria o Unix, executado em um PDP-7 da DEC. Thompson e Dennis Ritchie instalam o Unix em um PDP-11/20 da DEC. Ritchie cria a linguagem C para ser portável em arquiteturas de hardware diferentes. É lançada a versão 1 do Unix, escrita em linguagem Assembly. Ritchie e Thompson escrevem o primeiro compilador C para o Unix. A versão 4 do Unix é escrita em linguagem C. A AT&T autoriza a distribuição do código-fonte do Unix para as universidades.
Capítulo 1 – O início de tudo Ano
Evento (continuação)
1975
É lançada a versão 6 do Unix. Sua distribuição é ampla nas universidades. A Universidade da Califórnia, em Berkeley, começa a trabalhar no BSD Unix. 1978 É lançada a versão 7 do Unix. São necessárias taxas de licença. 1979 A AT&T lança o Unix System III. 1983 A AT&T lança o Unix System V. A Universidade da Califórnia, em Berkeley, lança o BSD Unix 4.2 (a Sun o utiliza como base para a criação do SunOS). 1984 O servidor de janelas X Window começa a ser desenvolvido no MIT. 1986 Primeira implementação comercial do X Window, executado no VAXstation-II/GPX, o X10R3. 1987 A AT&T lança o Unix System V release 3. É lançado o BSD 4.3. A Sun e a AT&T concordam em fundir o BSD Unix e o Unix System V. 1988 Criação do X Consortium (Consórcio X), organização aberta para garantir a evolução do X. É lançado o X11R3. 1990 A AT&T lança o Unix System V release 4, que promove relativa unificação do BSD Unix e do Unix System V. O Minix é colocado à disposição na Internet. 1992 A Sun lança o Solaris, baseado no Unix System V release 4. É lançado o Linux 0.99pl5. 1992/ 1993 É lançada a primeira distribuição do Linux em um CD-ROM (Yggdrasil). 1994 É lançada a versão livre do X Window, o XFree86, pelo grupo XFree Project. A Microsoft lança o Windows NT 3.5. 1996 A Microsoft lança o Windows NT 4.0.
O Linux O Linux é um clone de Unix criado como uma alternativa barata e funcional para quem não e stá dispo sto a pagar o alto preço d e um sistema Unix com ercial ou n ão tem um com pu tador suficientem ente rápido. Em 1983, Richard Stallman fundou a Free Software Foundation (Fundação de Software Livre), cujo projeto, GNU, tinha por finalidade criar um clone melhorado e livre do sistema op eracion al Unix, mas qu e não utilizasse seu cód igo-fon te. O desafio do GNU era enorme. Havia a necessidade de desenvolver o kernel (núcleo do sistema operacional que controla o hardware), utilitários de programação, de administração do sistema, de rede, comand os-padrão etc.Porém, no final da décade de 1980,o projeto tinha fracassado: apenas os utilitários de programação e os comandos-padrão estavam prontos, e o kernel, não. Nessa mesma época, vários esforços independentes para desenvolver clones do Unix estavam em andamento. O Dr. Andrew Tanenbaum desenvolveu o Minix como instrumento de ensino, baseando-se no microprocessador Intel 8086, po r estar amplamente dispon ível e b arato. O Minix era ú til no ensino do s p rincípios estruturais do s sistemas op eracion ais. Entretanto, o 8086 não d ispun ha de me mória virtual ou d e mem ória protegida e só end ereçava 1MB de cada vez. Isso era uma eno rme barreira para um sistema op eracion al mo dern o, mu ltitarefa. Por isso, desde seu início, o Minix estava limitado a ser um instrumento de ensino. Linus Benedict Torvalds era aluno da Universidade d e Helsinq ue, na Finlândia, no final da década de1980. Ele percebeu que o Intel 80386 era o único m icroprocessador dispo nível na épo ca capaz d e executar um clone d o Unix. Além d isso, aind a que o 80386 não fosse barato, ele era o único dispon ível. A sua opção p or esse microp rocessador foi uma escolha correta, po is garantiu a ele, po steriormen te, o grande nú mero d e voluntários qu e tornou o de senvolvimen to do Linu x viável até hoje.
23
Linux – Guia do Administrador do Sistema Linus B. T. estava disposto a construir um kernel clone do Unix que possuísse memória virtual, multitarefa preemptiva e capacidade de multiusuários. Era um trabalho gigantesco e, na p rática, imp ossível p ara apen as uma p esso a conc luí-lo, aind a que e stivesse familiarizada com as complexidades dos sistemas operacionais. Na p rimavera de 1991, Linus B.T.iniciou seu p rojeto p articular, inspirado n o seu interesse pe lo Minix. Ele limitou-se a criar, em sua s próp rias palavras, “um Minix melho r qu e o Minix”. E de p ois de algum temp o de trabalho em seu p rojeto solitário, con seguiu criar um kern el capaz de execu tar os utilitários de programação e os comandos-padrão do Unix clonados pelo projeto GNU. Recon hecen do q ue não co nseguiria continuar a desenvolver sozinh o o Linux, ele enviou a seguinte mensagem (desafio) 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 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 há um mê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 as fontes para ampla distribuição. Ele está na versão 0.02... contudo, eu tive êxito rodando bash, gcc, gnu-make, gnu-sed, compressão etc. nele". Em 5 de outubro de 1991, Linus Torvalds lançou a primeira versão “oficial” do Linux: o Linux 0.02.A p artir dessa data, mu itos pro gramado res no mu nd o inteiro têm colaborado e ajudado a fazer do Linux o sistema op eracion al que é atualme nte.
Cronologia do Linux Ano
1969 1974 1983 1984 1988 1990 1991 1992 1993 1994 1995 1996 1998
24
Evento
Criação do Unix na AT&T. O Unix é distribuído para as universidades. É montado o cenário para o surgimento em todo o mundo de programadores de sistemas altamente capacitados. Richard Stallman cria a Free Software Foundation. O X Window é criado no MIT. Criação do Minix. Linus Torvalds assiste à sua primeira aula de linguagem C. Linus Torvalds inicia o desenvolvimento do Linux. A versão 0.01 é discutida na Internet. É lançada a versão 0.95 do Linux. A Yggdrasil lança a primeira distribuição do Linux em dezembro. A Yggdrasil libera a produção da distribuição do Linux. É lançada a versão 0.99pl15 do Linux. É lançado o Xfree86. A Yggdrasil lança o primeiro CD-ROM contendo uma distribuição do Linux. A Red Hat, a Slackware e outras distribuições surgem em CD-ROM. Surge a primeira versão modularizada do Linux. A Caldera lança a versão 1.0 com o Netscape incluso (e com o WordPerfect for X). A Conectiva lança a primeira distribuição brasileira do Linux, baseada no Red Hat.
Capítulo 1 – O início de tudo
Copyrights e numeração das versões do Linux O Linux não é um software de domínio público, mas licenciado sob a licença GPL(GNU Public License), e o cód igo-fon te do Linu x p od e p erman ecer livremen te dispo nível. As p essoas po dem cobrar pela cóp ia d o Linux, se desejarem, de sde q ue, com isso, não limitem a sua distribuição. Muitas pessoas pelo mundo inteiro têm trabalhado conjuntamente para continuar o de senvolvimen to d o Linu x, sob a direção d e Linu s Torvalds, o autor o riginal, e cada u ma delas mantém os direitos de copyright sobre o código que escreveram. A versão 1.0 do Linux foi libe rada n o d ia 14 de março de 1994 e, dep ois disso, foram feitas n u m e r o s as v e r s õ e s n o v as . Ain d a e x is te m b u g s n o s is te m a ( c o m o e m q u a lq u e r s is te m a op eracional) e novos bugs vêm sendo descobertos e corrigidos no decorrer do temp o. O Linu x segue o m od elo de desenvo lvimen to aberto e, po r isso mesmo, a cada no va versão liberada ao público, é considerado um “produto de qualidade”. Entretanto, para informar aos usuários se eles estão o btend o um a versão estável ou n ão, o esque ma abaixo foi imp lementado : •
Versões rr.x.y .x.y onde x é um núm ero par São versões e stáveis, e, enquanto o y é incrementado, apen as correções de bugs são efetuadas. Assim, da versão 2.0.2 p ara a 2.0.3 h ouve apen as correção de bugs, sem ne nh um a característica no va.
•
Versões rr.x.y .x.y onde x é um n úmero ímpar São versões b eta, destinad as ape nas a desen volvedo res, pod em ser instáveis e falhar, e estão sujeitas a alterações por tempo indeterminado. Periodicamente, quando o desen volvime nto do kerne l for con siderado “estável”, x é trocado p or um nú mero par, e o desenvolvimento continua com uma nova versão (x ímpar).
As distribuições do Linux Diversas emp resas e o rganizações d e vo luntários d ecidiram jun tar os p rogramas do Linux em “pacotes” próp rios aos quais elas fornecem suporte. Esses “pacotes” são chamados de distribuições e, entre as mais famosas e utilizadas, destacam-se: Red Hat, Mandrake, Conectiva (brasileira), Debian, Slackware, SuSE e Caldera.
LSB (Linux Standard Base) O Linux Standard Base é um conjunto de padrões cujo objetivo é compatibilizar e padronizar as diversas distribuições Linux, permitindo que qualquer software escrito para o Linux seja execu tado em q ualque r distribuição desen volvida de aco rdo co m o LSB.Este ajud ará a coo rden ar esforços p ara recrutar de senvolvedores d e software a con verter e a e screver prod utos p ara o Linux. Para mais informações sobre esses padrões, visite o site www.linuxbase.org.
25
Linux – Guia do Administrador do Sistema
Fontes de software do Linux Na realidade , o Linu x é ape nas o ke rnel do sistema op eracion al qu e é h oje con hecido co mo Linux. Desenvolvido inicialmente pelo programador finlandês Linus Torvalds, hoje milhares de co n tribuidores ativos, espalhados pelo mundo inteiro auxiliam, com Linus Torvalds, no seu desenvo lvimen to. Em uma distribu ição q ualquer, seja Slackware, Red Hat,De bian etc., temos vários ou tros “paco tes” (pro gramas) além do kerne l, que vêm de d iferentes fon tes, send o as p rincipais: •
Free Software Fou nd ation (ww w.fsf.org) e seus con tribu ido res. Desenvo lvem utilitários de pro gramação e comand os-padrão, com o: GCC (comp ilado r C), gmake, bison , flex, grep e ou tros p rogramas, normalmen te liberados com a licença GPL (Gen eral Pub lic License – Licença Púb lica Ge ral).
•
Universidade da Califórn ia, em Berkeley (BSD Unix), e seus con tribu ido res. Fornece a maioria das ferramentas de administração do sistema e de rede, liberadas com licenças m en os restritivas que o GNU, con hecidas com o BSD.
•
X Consortium (Consórcio X). Criou o sistema gráfico de janelas X (também con hecido com o X Wind ow ). A versão utilizada com o Linux normalmente provém de uma outra organização – com o nome Xfree86 (www.xfree86.org)– que o portou para os microcomputadores baseados nos microp rocessadores da família 80X86 d a Intel, mas igualmente existem servido res comerciais.
O que o Linux oferece O Linux oferece diversas vantagens para quem o utiliza. Entre elas, destacam-se: •
Sistema multitarefa e multiusuário de 32 ou 64 bits (dependente da plataforma de hardware ond e ele é executado).
•
Sistema gráfico X-Window.
•
Sup or te a diversas ling uage ns, co mo Java, C, C++, Pascal, Lisp , Prolog, e ntre ou tras.
•
Suporte aos protocolos de rede: TCP/IP, IPX, AppleTalk e NetBios.
•
Memó ria virtual.
•
Código-fonte do kernel.
•
Cen tenas d e pro gramas em GPL, incluind o com pilado res, editores, mu ltimídia, entre outros.
26
•
Sistema em constante aperfeiçoamento.
•
Estabilidade.
•
Permissão d e arqu ivos.
•
Eterno aprendizado.