Linux Introducao

Embed Size (px)

Citation preview

Linux: Instalao e IniciaoMatt Welsh Phil Hughes David Bandel Boris Beletsky Sean Dreilinger Robert Kiesling Henry Pierce Gleydson Mazioli da Silva

Traduo Oficial AlfamdiaFernando Miguel de Alava Soto Rodrigo de Losina Silva Alexandre Folle de Menezes

Verso 1.3, julho/2002.

Os Captulos 3, 5 e 8 so adaptaes do texto: Guia Foca GNU/Linux Copyleft 1999-2002 - Gleydson Mazioli da Silva. Fonte: http://focalinux.cipsga.org.br O restante do texto uma adaptao do original: Linux Installation and Getting Started Copyright 1992-1996 Matt Welsh Copyright 1998 Specialized Systems Consultants, Inc (SSC) P.O. Box 55549 Seattle, WA 98155-0549 USA Phone: +1-206-782-7733 Fax: +1-206-782-7191 E-mail: [email protected] URL: http://www.ssc.com/ Traduo autorizada pelo autor. As marcas registradas utilizadas no decorrer deste documento so usadas unicamente para fins didticos, sendo estas propriedade de suas respectivas companhias. A Alfamdia no assume qualquer responsabilidade por erros ou omisses, ou por danos resultantes do uso das informaes contidas neste livro. Traduo para portugus - Brasil, 2002: Alfamdia Ltda Rua Flix da Cunha, 818 Porto Alegre - RS - Brasil Fone/Fax: +55 (51) 3346-7300 E-mail: [email protected] URL: http://www.alfamidia.com.br Traduo para portugus: Fernando Miguel de Alava Soto ([email protected]) Rodrigo de Losina Silva ([email protected]) Alexandre Folle de Menezes ([email protected]) Permisso para copiar, distribuir, alterar, conforme licena GNU, desde que sejam mantidos os crditos acima, incluindo nome e dados da empresa e nome dos tradutores. NOTA DO TRADUTOR: FORAM TRADUZIDOS OS CAPTULOS 1 a 3 do Guia "Linux Installation and Getting Started", de Matt Welsh. O sinal (......) marca onde partes do texto foram suprimidas na traduo. Basicamente, foram suprimidos textos considerados pelo tradutor como partes que necessitam uma atualizao mais profunda ou partes que fazem referncia aos demais captulos ou partes no traduzidas.

Linux Installation and Getting Started is a free document; you may reproduce and/or modify it under the terms of version 2 (or, at your option, any later version) of the GNU General Public License as published by the Free Software Foundation. This book is distributed in the hope it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details, in Appendix C. The authors encourage wide distribution of this book for personal or commercial use, provided the above copyright notice remains intact and the method adheres to the provisions of the GNU General Public License (see Appendix C). In summary, you may copy and distribute this book free of charge or for a profit. No explicit permission is required from the author for reproduction of this book in any medium, physical or electronic. Note, derivative works and translations of this document must be placed under the GNU General Public License, and the original copyright notice must remain intact. If you have contributed new material to this book, you must make the source code (e.g., LaTeX source) available for your revisions. Please make revisions and updates available directly to the document maintainers, Specialized Systems Consultants. This will allow for the merging of updates and provide consistent revisions to the Linux community. If you plan to publish and distribute this book commercially, donations, royalties, and/or printed copies are greatly appreciated by the authors and the Linux Documentation Project. Contributing in this way shows your support for free software and the Linux Documentation Project. If you have questions or comments, please contact SSC.

3

CONTEDOCONTEDO ...............................................................................................................4 1. INTRODUO ...................................................................................................11 1.1 SOBRE ESTE LIVRO .............................................................................................11 1.2 UMA BREVE HISTRIA DO LINUX ......................................................................12 1.3 RECURSOS DO SISTEMA ......................................................................................14 1.4 RECURSOS DE SOFTWARE ..................................................................................15 1.4.1 FERRAMENTAS E LINGUAGENS DE PROGRAMAO ............................................16 1.4.2 INTRODUO AO SISTEMA X-WINDOWS ............................................................17 1.4.3 INTRODUO S REDES ....................................................................................18 1.4.4 TELECOMUNICAES E SOFTWARES DE BBS .....................................................19 1.4.5 WORLD WIDE WEB ..........................................................................................19 1.4.6 INTERFACE COM O MS-DOS .............................................................................19 1.4.7 OUTRAS FERRAMENTAS ....................................................................................20 1.5 QUESTES DE COPYRIGHT .................................................................................20 1.6 O PROJETO E A FILOSOFIA DO LINUX ................................................................21 1.7 DIFERENAS ENTRE O LINUX E OUTROS SISTEMAS OPERACIONAIS ...................23 1.7.1 PORQUE USAR O LINUX ? ...................................................................................23 1.7.2 LINUX VS WINDOWS .........................................................................................23 1.7.3 LINUX VS OUTRAS IMPLE MENTAES DE UNIX .................................................24 1.8 EXIGNCIAS DE HARDWARE ..............................................................................24 1.8.1 PLACA-ME E CPU...........................................................................................24 1.8.2 EXIGNCIAS DE MEMRIA ................................................................................25 1.8.3 CONTROLADORES DE DISCO RGIDO ..................................................................25 1.8.4 ESPAO EM DISCO ............................................................................................25 1.8.5 OUTROS DISPOSITIVOS ......................................................................................25 1.9 FONTES DE INFORMAO SOBRE O LINUX ..........................................................26 1.9.1 DOCUMENTAO ONLINE .................................................................................26 1.9.2 LINUX NA WEB .................................................................................................26 1.9.3 LIVROS E OUTROS TRABA LHOS PUBLICADOS ......................................................26 1.9.4 GRUPOS DE DISCUSSO D A USENET ...................................................................27 1.9.5 LISTAS DE E -MAIL POR INTERNET ......................................................................27 1.10 BUSCANDO AJUDA SOBRE LINUX ......................................................................28

2 TUTORIAL SOBRE LINUX ......................................................................302.1 INTRODUO ......................................................................................................30 2.2 CONCEITOS BSICOS DO LINUX .........................................................................30 2.2.1 CRIANDO UMA CONTA .......................................................................................31 2.2.2 LOGANDO .........................................................................................................31 2.2.3 CONSOLES VIRTUAIS. .......................................................................................31

2.2.4 SHELLS E COMANDOS ........................................................................................32 2.2.5 LOGOUT ...........................................................................................................33 2.2.6 MUDANDO SUA S ENHA ......................................................................................33 2.2.7 ARQUIVOS E DIRETRIOS ..................................................................................33 2.2.8 A RVORE DE DIRETRIO S ................................................................................34 2.2.9 O DIRETRIO DE TRABAL HO CORRENTE .............................................................35 2.2.10 REFERINDO -SE A DIRETRIOS HOME ................................................................36 2.3 PRIMEIROS PASSOS NO LINUX ............................................................................36 2.3.1 PASSEANDO POR A ...........................................................................................36 2.3.2 VISUALIZANDO O CONTE DO DE DIRETRIOS .....................................................37 2.3.3 CRIANDO NOVOS DIRETR IOS............................................................................39 2.3.4 COPIANDO ARQUIVOS .......................................................................................39 2.3.5 MOVENDO ARQUIVOS .......................................................................................40 2.3.6 EXCLUINDO ARQUIVOS E DIRETRIOS ................................................................40 2.3.7 VISUALIZANDO ARQUIVOS ................................................................................40 2.3.8 BUSCANDO AJUDA ONLINE ................................................................................41 2.4 COMANDOS BSICOS DO UNIX ..........................................................................42 3 COMANDOS PARA MANIPULAO DE DIRETRIOS .............................43 3.1 O COMANDO LS ..................................................................................................43 3.2 O COMANDO CD ..................................................................................................44 3.3 O COMANDO PWD .................................................................................................44 3.4 O COMANDO MKDIR .............................................................................................44 3.5 O COMANDO RMDIR .............................................................................................45 4 EXPLORANDO O SISTEMA DE ARQUIVOS ................................................46 5 COMANDOS PARA MANIPULAO DE ARQUIVOS.................................50 5.1 O COMANDO RM ..................................................................................................50 5.2 O COMANDO CP ..................................................................................................50 5.3 5.4 5.5 5.6 5.7 O COMANDO MV ..................................................................................................51 O COMANDO LN ..................................................................................................52 O COMANDO CAT .................................................................................................53 O COMANDO TAC .................................................................................................53 O COMANDO MORE ...............................................................................................54

5.8 O COMANDO LESS ...............................................................................................54 5.9 O COMANDO HEAD ...............................................................................................54 5.10 O COMANDO TAIL .............................................................................................55 5.11 O COMANDO TOUCH ...........................................................................................55 5.12 O COMANDO WC.................................................................................................56 5.13 O COMANDO SORT .............................................................................................56 5.14 O COMANDO DIFF .............................................................................................58 5

6 PERMISSES DE ARQUIVOS .........................................................................60 6.1 CONCEITOS DE PERMISS ES DE ARQUIVOS .........................................................60 6.2 INTERPRETANDO PERMISS ES DE ARQUIVOS .....................................................60 6.3 DEPENDNCIAS DE PERMISSES .........................................................................61 6.4 MODIFICANDO PERMISSE S ...............................................................................62 7 GERENCIANDO LINKS DE ARQUIVOS........................................................63 7.1 LINKS RGIDOS ..................................................................................................63 7.2 LINKS SIMBLICOS ............................................................................................64 8 COMANDOS DE BUSCA...................................................................................65 8.1 O COMANDO GREP ...............................................................................................65 8.2 8.3 8.4 O COMANDO FIND ...............................................................................................65 O COMANDO WHICH .............................................................................................67 O COMANDO WHEREIS ........................................................................................68

9 USANDO O EDITOR VI ....................................................................................69 9.1 CONCEITOS . .......................................................................................................69 9.2 INICIANDO O VI ..................................................................................................70 9.3 INSERINDO TEXTO ..............................................................................................70 9.4 APAGANDO TEXTO .............................................................................................72 9.5 MODIFICANDO TEXTO ........................................................................................73 9.6 COMANDOS PARA MOVIMEN TAR O CURSOR .......................................................74 9.7 SALVANDO ARQUIVOS E S AINDO DO VI ...............................................................75 9.8 EDITANDO OUTRO ARQUIV O ...............................................................................75 9.9 INCLUINDO OUTROS ARQU IVOS ..........................................................................76 9.10 RODANDO COMANDOS DO S HELL ......................................................................77 9.11 AJUDA NO VI .....................................................................................................77 10 ACESSANDO ARQUIVOS MS-DOS.................................................................78 11 O SHELL .............................................................................................................79 11.1 TIPOS DE SHELL ................................................................................................79 11.2 CARACTERES CORINGA ...................................................................................80 11.3 REDIRECIONAMENTOS E P IPES .........................................................................82 11.3.1 ENTRADA PADRO E SAD A PADRO ................................................................82 11.3.2 REDIRECIONANDO ENTRAD A E SADA ..............................................................83 11.3.3 REDIRECIONAMENTO DE S ADA NO -DESTRUTIVO ............................................84 11.3.4 USANDO PIPES ................................................................................................85 11.4 PERSONALIZANDO SEU AM BIENTE ....................................................................86 11.4.1 VARIVEIS DO SHELL E O AMBIENTE ................................................................86 11.4.1.1 A varivel de ambiente PATH .....................................................................88 11.4.2 SCRIPTS DE INICIALIZA O DO SHELL..............................................................89

6

12 CONTROLE DE TAREFAS...............................................................................91 12.1 TAREFAS E PROCESSOS ....................................................................................91 12.2 FOREGROUND AND BACKGR OUND ....................................................................92 12.3 COLOCANDO TAREFAS EM SEGUNDO PLANO E ABOR TANDO TAREFAS ..............92 12.4 PARANDO REINICIANDO T AREFAS ....................................................................94 13 OBTENDO E INSTALANDO O LINUX ...........................................................97 13.1 INSTALAO GENRICA ...................................................................................97 13.1.1 PRINCIPAIS DISTRIBUIE S LINUX ...................................................................97 13.1.2 PLANEJAMENTO BSICO ..................................................................................98 13.1.3 HARDWARE ....................................................................................................98 13.1.4 PLANEJAMENTO ..............................................................................................99 13.1.5 PLANILHA PARA PLANEJA MENTO DO SISTEMA ..................................................99 13.1.6 MOUSE .........................................................................................................101 13.1.7 DISCOS RGIDOS (HDS) E CD-ROMS ............................................................101 13.1.8 DISCOS NO LINUX .........................................................................................102 13.1.9 INSTALANDO O X WINDOW ...........................................................................102 13.1.10 HARDWARE DE REDE .....................................................................................103 13.1.11 PLANEJAMENTO , PARTE 2 .............................................................................103 13.1.12 ESTRATGIAS DE PARTIC IONAMENTO ............................................................103 13.1.13 A PARTIO DE SWAP ...................................................................................106 13.1.14 REPARTICIONAMENTO ...................................................................................106 13.1.15 FAZENDO CPIA DE SEGU RANA DE SEU SISTEMA ANTIGO ..............................107 13.1.16 FIPS.EXE ....................................................................................................107 13.1.17 PREPARANDO O LINUX PARA INICIALIZA R ......................................................108 13.1.18 CRIANDO UM DISQUETE D E INICIALIZAO DO LINUX NO DOS.......................108 13.1.19 CRIANDO UM DISQUETE D E INICIALIZAO NO LINUX ....................................109 13.1.20 PARTICIONANDO O DISCO RGIDO : FDISK E CFDISK. ...........................................109 14 DISTRIBUIES LINUX ................................................................................112 14.1 DEBIAN GNU/LINUX ......................................................................................112 14.1.1 CARACTERSTICAS DA IN STALAO DO DEBIAN GNU/LINUX.........................112 14.1.2 OBTENDO AS IMAGENS DO DISQUETE .............................................................112 14.1.3 FAZENDO O DOWNLOAD DOS PACOTES ..........................................................113 14.1.4 INICIALIZANDO DOS DIS QUETES E INSTALANDO O DEBIAN GNU/LINUX ..........114 14.1.4.1 O disco de rescue ......................................................................................114 14.1.4.2 A caixa de dilogos colorido ou monocromtico .......................................115 14.1.4.3 O Menu Principal......................................................................................115 14.1.4.4 Configurao do teclado............................................................................116 14.1.4.5 O shell ......................................................................................................116 14.1.4.6 Particionando seus discos..........................................................................117 14.1.4.7 Inicializando e Ativando a Partio de Swap.............................................117

7

14.1.4.8 Inicializando uma partio Linux ..............................................................117 14.1.4.9 Instalando o sistema base ..........................................................................118 14.1.4.10 Instalando o kernel do sistema operacional................................................118 14.1.4.11 Instalando os drivers de dispositivos .........................................................118 14.1.4.12 Configurando o sistema base.....................................................................119 14.1.4.13 Configurando a rede..................................................................................119 14.1.4.14 Tornando seu disco rgido inicializvel .....................................................120 14.1.4.15 Criando um disquete de inicializao ........................................................120 14.1.4.16 O momento da verdade .............................................................................120 14.1.4.17 Add a user account and password..............................................................120 14.1.4.18 Log in .......................................................................................................121 14.1.5 RODANDO O DEBIAN GNU/LINUX.................................................................121 14.1.5.1 Classificao dos Pacotes..........................................................................121 14.1.5.2 Relacionamento entre Pacotes...................................................................122 14.1.6 DSELECT .........................................................................................................122 14.1.6.1 Access (Acesso)........................................................................................123 14.1.6.2 Update (Atualizao) ................................................................................123 14.1.6.3 Select (Selecionar) ....................................................................................123 14.1.6.4 Install (Instalar).........................................................................................124 14.1.6.5 Configure (Configurar) .............................................................................124 14.1.6.6 Remove (Remover)...................................................................................124 14.1.6.7 Quit ..........................................................................................................124 14.1.7 DPKG ............................................................................................................124 14.1.7.1 Instalando ou atualizando pacotes novos ou existentes ..............................124 14.1.7.2 Configurando pacotes instalados ...............................................................125 14.1.7.3 Removendo pacotes instalados..................................................................125 14.1.7.4 Relatando a situao dos pacotes...............................................................125 14.1.7.5 Listando pacotes disponvies.....................................................................125 14.1.7.6 Listando arquivos pertencentes por pacotes...............................................126 14.1.7.7 Encontrando o pacote que detem um arquivo ............................................126 14.1.7.8 Sumrio ....................................................................................................126 14.1.8 SOBRE O DEBIAN GNU/LINUX ......................................................................126 14.2 LINUX RED HAT.........................................................................................127 14.2.1 PROPRIEDADES DA INSTA LAO DO LINUX RED HAT LINUX ..........................127 14.2.2 O SISTEMA DE GERENCIA MENTO DE PACOTES RPM........................................127 14.2.2.1 Convenes de nome dos pacotes..............................................................128 14.2.3 UMA NOTA SOBRE ATUALI ZAO DO RED HAT ..............................................128 14.2.4 CRIANDO DISQUETES DE INSTALAO ...........................................................128 14.2.5 MDIA DE INSTALAO .................................................................................129 14.2.5.1 Instalao por NFS....................................................................................129 14.2.5.2 Instalao por disco rgido ........................................................................129

8

14.2.6 PERSONALIZANDO SUA IN STALAO POR DISCO R GIDO OU NFS ....................130 14.2.6.1 O arquivo comps.......................................................................................130 14.2.7 INSTALAO MNIMA REC OMENDADA ...........................................................132 14.2.8 QUANTO ESPAO VOC RE ALMENTE PRECISA ? ...............................................133 14.2.9 INSTALAO .................................................................................................133 14.2.10 AINDA SOBRE A MDIA D E INSTALAO .........................................................133 14.2.10.1 Instalao por CD-ROM ...........................................................................134 14.2.10.2 Instalao a partir do disco rgido..............................................................134 14.2.10.3 Instalao por NFS....................................................................................134 14.2.10.4 Instalao por FTP ....................................................................................135 14.2.11 PASSANDO PELO RESTO DA INS TALAO ........................................................135 14.2.12 APS A INSTALAO .....................................................................................137 14.2.12.1 Entendendo o prompt do LILO .................................................................137 14.2.12.2 Logando no sistema pela primeira vez.......................................................137 14.3 SLACKWARE ...................................................................................................138 14.3.1 O SLACKWARE NO PARA VOC. (OU TALVEZ SEJA .) ..................................138 14.3.2 UMA BREVE HISTRIA ...................................................................................138 14.3.3 POR QU , ENTO ? .........................................................................................138 14.3.4 ATUALIZAO ? PENSE DUAS VEZES ! .............................................................139 14.3.5 SELECIONE UM MTODO D E INSTALAO .......................................................139 14.3.6 DISCOS DE INICIALIZA O: SEMPRE UMA BOA IDIA .......................................139 14.3.7 PLANILHA PARA INSTALA O DO SLACKWARE ..............................................140 14.3.8 FAZENDO O SLACKWARE ACONTECER ...........................................................146 14.3.9 CRIANDO ALGUNS DISCOS DE BOOT ...............................................................147 14.3.9.1 Escolha seu kernel! ...................................................................................147 14.3.10 ENTRANDO EM AO ....................................................................................150 14.3.11 O PROGRAMA DE INSTALA O (SETUP ) SLACKWARE ......................................150 14.3.12 ISSO TUDO ?................................................................................................151 14.3.13 SOLUCIONANDO PROBLEMAS DE INSTALA O ...............................................151 14.3.13.1 FAQs de instalao do Slackware .............................................................151 14.3.13.2 Suporte na Web para o Slackware .............................................................151 14.3.13.3 Grupos de News Usenet Para Slackware ...................................................151 14.3.13.4 Listas de discusso sobre Slackware..........................................................152 14.3.13.5 Voc recebe pelo que paga (suporte comercial).........................................152 14.3.14 NO BAIXE A GUARDA ..................................................................................152 14.3.15 CONSIDERE A REINSTALAO ! ......................................................................152 14.3.16 TORNE O SISTEMA SEGUR O ............................................................................152 14.3.16.1 Saia da rede de uma vez ............................................................................152 14.3.16.2 Cadastre uma senha de root.......................................................................152 14.3.16.3 Crie uma conta para voc..........................................................................153 14.3.16.4 Proiba Logins de root................................................................................153

9

14.3.16.5 Verifique se h patches disponvies...........................................................153 14.3.16.6 Mantenha-se informado ............................................................................153 14.3.17 BACK UP .......................................................................................................154 15 ENFRENTANDO DIFICULDADES DE INSTALAO ...............................155 15.1 PROBLEMAS INICIALIZAN DO ATRAVS DA MDIA DE INSTALA O . ................155 15.2 PROBLEMAS DE HARDWARE ..........................................................................157 15.2.1 ISOLANDO PROBLEMAS DE HARDWARE ..........................................................157 15.2.2 PROBLEMAS NO RECONHEC IMENTO DE UM DISCO R GIDO OU CONTROLADOR ...159 15.2.3 PROBLEMAS COM DISPOSI TIVOS E CONTROLADORE S SCSI..............................160 15.3 PROBLEMAS INSTALANDO SOFTWARE ............................................................161 15.4 PROBLEMAS APS INSTAL AR O LINUX ............................................................163 15.4.1 PROBLEMAS AO INICIALI ZAR O LINUX DO DISQUETE .......................................163 15.4.2 PROBLEMAS INICIALIZA NDO O LINUX DE SEU DISCO R GIDO ...........................163 15.4.3 PROBLEMAS PARA ENTRAR NO SISTEMA (LOGIN ) ............................................165 15.4.4 PROBLEMAS USANDO O SI STEMA ...................................................................165

10

1. INTRODUOO Linux possivelmente o mais importante software livre produzido desde o Space War ou, mais recentemente, o Emacs. Ele evoluiu para um sistema operacional completo para negcios, educao e uso pessoal. O Linux no esta mais restrito ao universo de hackers que ficam horas na frente de um monitor (embora muitos de seus usurios se enquadrem neste grupo). O Linux um sistema operacional UNIX que executa em uma variedade de plataformas, principalmente computadores pessoais com processadores 80386 ou seus sucessores. Ele suporta uma vasta gama de softwares, como o TeX, o Sistema X-Windows, o compilador GNU C/C++, e o TCP/IP. uma implementao verstil e confivel do UNIX, distribuda livremente nos termos da Licena Geral de Uso GNU (GNU General Public License). O Linux pode transformar qualquer computador 386 ou superior em uma estao de trabalho que coloca em suas mos todo o poder e flexibilidade do UNIX. Empresas instalam Linux em suas redes de computadores, e usam o sistema operacional para gerenciar sistemas financeiros e hospitalares, ambientes de computao distribuda e telecomunicaes. Universidades do mundo inteiro utilizam o Linux para ministrar cursos de definio e implementao de sistemas operacionais. Entusiastas por computadores usam o Linux em casa para programao, como ferramenta de produtividade, e uma infinidade de outros usos. O que torna o Linux to diferente de outras opes de sistema operacional que ele uma implementao gratuita do UNIX. Ele foi e ainda est sendo desenvolvido cooperativamente por um grupo de voluntrios, principalmente atravs da Internet, que trocam cdigos, relatam bugs e resolvem problemas em um ambiente aberto. Todos so bem vindos ao esforo de desenvolvimento do Linux. Tudo que necessrio o interesse em mexer em uma implementao do UNIX e algum conhecimento de programao.

1.1

Sobre este livro

Este livro um guia de instalao e iniciao ao Linux. O propsito iniciar novos usurios consolidando tanto material quanto possvel em um s livro. Ao invs de cobrir detalhes tcnicos volteis, que tendem a mudar rapidamente, damos a voc uma excelente base para que possa descobrir mais por conta prpria. O Linux no difcil de instalar e usar. Entretanto, assim como qualquer implementao do UNIX, h freqentemente uma magia negra envolvida para fazer com que tudo funcione corretamente. Esperamos que este livro seja seu ingresso para a excurso no mundo Linux e que mostre quo incrvel um sistema operacional pode ser. Neste livro, cobrimos os seguintes tpicos: O que o Linux? O projeto e filosofia deste sistema operacional exclusivo, e o que ele pode fazer por voc.

Detalhes da execuo do Linux, incluindo sugestes e recomendaes de configurao de hardware. Instrues especficas para instalar vrias distribuies Linux, como Debian, Red Hat e Slackware. Um breve tutorial introdutrio ao UNIX para usurios sem experincia anterior em UNIX. Esse tutorial deve fornecer material suficiente para que iniciantes encontrem seu caminho pelo sistema. (......)

Este livro para usurios que queiram iniciar no Linux. No assumimos qualquer experincia prvia em UNIX, mas esperamos que os iniciantes busquem outras fontes de referncia ao longo do aprendizado. (......). Em geral, este livro feito para ser lido juntamente com outro livro sobre conceitos bsicos de UNIX.

1.2

Uma Breve Histria do Linux

O UNIX um dos sistemas operacionais mais populares do mundo devido enorme base instalada do mesmo. Ele foi originalmente desenvolvido na dcada de 70 na AT&T como um sistema multitarefa para minicomputadores e mainframes, mas desde ento cresceu para se tornar um dos sistemas operacionais mais utilizados, apesar de sua interface s vezes confusa e a falta de uma padronizao centralizada. Muitos hackers acreditam que o UNIX a "coisa certa", o nico sistema operacional de verdade. Da, conseqentemente, o desenvolvimento do Linux se d, em grande parte, por uma comunidade de hackers que desejam "sujar" suas mos mexendo no seu prprio sistema operacional. Verses do UNIX existem em muitos sistemas, de computadores pessoais a supercomputadores como o Cray. A maioria das verses do UNIX para computadores pessoas, porm, so caras e difceis de utilizar. O Linux uma verso gratuita do UNIX desenvolvida inicialmente por Linus Torvalds na Universidade de Helsinque, na Finlndia, com a ajuda de muitos programadores UNIX espalhados pela Internet. Qualquer um com conhecimento suficiente e vontade pode alterar e melhorar o sistema. O kernel (ncleo) do Linux no utiliza nenhum cdigo da AT&T ou de qualquer outra fonte proprietria, e muito do software disponvel para Linux foi desenvolvido como parte do projeto GNU da Free Software Foundation, em Cambridge, Massachusetts, nos Estados Unidos. Entretanto, programadores do mundo inteiro contriburam para o crescente conjunto de softwares para Linux. O Linux foi originalmente desenvolvido como um projeto de passatempo por Linus Torvalds. Foi inspirado no Minix, um pequeno sistema UNIX desenvolvido por Andy Tanenbaum. As primeiras discusses sobre o Linux se realizaram no grupo de discusso da Usenet comp.os.minix. Estas discusses eram centradas no desenvolvimento de uma verso acadmica do UNIX para usurios do Minix que queriam um sistema operacional com mais recursos.

12

O desenvolvimento inicial do Linux - na poca feito todo em assembly lidou principalmente com os recursos multitarefa da interface de modo protegido do 80386. Linus escreveu: "Depois desta etapa ficou bem mais simples: um cdigo complicado, ainda, mas a depurao era bem mais fcil. Eu comecei a utilizar C neste ponto, e isto certamente acelerou o desenvolvimento. Foi tambm ento que comecei a pensar seriamente nas minhas idias megalomanacas de criar um Minix melhor que o Minix. Eu tinha a esperana de que conseguiria recompilar o gcc em cima do Linux algum dia." "Foram pouco mais de dois meses para eu ter um driver de disco rgido (cheio de bugs, mas que pelo menos na minha mquina funcionava) e um pequeno sistema de arquivos. Foi nesta poca que liberei a verso 0.01 (perto do final de agosto de 1991): no era algo bonito, no tinha driver para disquete e no podia fazer muita coisa. Duvido que algum tivesse chegado a compilar esta verso. Mas ento eu j estava envolvido, e no iria parar enquanto no superasse o Minix". Nenhum anncio jamais foi feito do lanamento da verso 0.01. Os cdigos fonte no eram sequer executveis. Continham apenas os rudimentos do kernel e assumiam que voc tinha acesso a uma mquina Minix para compilar e experimentar com eles. Em outubro de 1991 Linus anunciou a primeira verso "oficial" do Linux, que era a verso 0.02. Nesta fase, Linus conseguia rodar o bash (o Bourne Again Shell do GNU) e o GCC (o compilador C do GNU), mas bem pouco alm disto. Novamente, tratava-se de um sistema para hackers. O foco principal era o desenvolvimento do kernel - questes como suporte a usurios, documentao e distribuio nem haviam sido levantadas. Hoje, a comunidade Linux ainda tende a tratar estas questes como secundrias perante a "verdadeira programao": o desenvolvimento do kernel. Como Linus escreveu no comp.os.minix : "Voc ainda sente falta dos saudosos dias do Minix-1.1, quando os homens eram homens e escreviam seus prprios drivers de dispositivo? Est sem um projeto legal e morrendo de vontade de cravar seus dentes em um sistema operacional que voc pode modificar como quiser? Est ficando frustrado quando tudo funciona no Minix? Com saudades de perder noites tentando fazer um programa difcil funcionar? Ento esta mensagem para voc." "Como havia mencionado um ms atrs, eu estou trabalhando numa verso gratuita de um sistema parecido com o Minix para computadores 386. Ele finalmente atingiu o estgio em que talvez seja at usvel (embora talvez no, dependendo do que voc quer), e eu estou disposto a disponibilizar os fontes para uma distribuio mais abrangente. apenas a verso 0.02, mas consegui com sucesso executar nele o bash, gcc, gnu-make, gnu-sed, compress, etc."

13

Aps a verso 0.03, Linus subiu o nmero de verso para 0.10, j que mais pessoas estavam trabalhando no projeto. Depois de vrias outras revises, Linus subiu o nmero de verso para 0.95 em maro de 1992, refletindo suas expectativas que o sistema estava quase pronto para um lanamento oficial. (De modo geral, um software no recebe o nmero de verso 1.0 at que esteja teoricamente completo ou livre de bugs). Quase um ano e meio depois, no final de dezembro de 1993, o kernel do Linux ainda estava na verso 0.99.pl14, lentamente se aproximando de 1.0. Hoje, o Linux j est na verso 2.4.18, e a verso 2.5 j est em desenvolvimento. A maioria dos principais pacotes gratuitos UNIX j foi portada para o Linux, e softwares comerciais tambm esto disponveis. Mais hardware suportado do que na verso original do kernel. Quem iria imaginar que este "pequeno" clone do UNIX iria crescer at atingir a posio que atingiu no universo de computadores pessoais.

1.3

Recursos do Sistema

O Linux suporta os recursos normalmente encontrados em outras implementaes do UNIX, e muitos outros que no so encontrados em nenhum outro sistema operacional. Nesta seo iremos apresentar rapidamente os recursos do kernel do Linux. O Linux um sistema operacional multiusurio e multitarefa completo, como o so todas as outras verses do UNIX. Isto significa que muitos usurios diferentes podem entrar e executar programas na mesma mquina simultaneamente. O sistema Linux quase totalmente compatvel com diversos padres UNIX no cdigo fonte, incluindo IEEE POSIX 1, UNIX System V e Berkeley System Distribution UNIX (BSD UNIX). O Linux foi desenvolvido tendo em mente a portabilidade do cdigo fonte, e comum encontrar recursos que so compartilhados por mais de uma plataforma. Boa parte do software livre UNIX disponvel na Internet compila diretamente em Linux. Adicionalmente, todo o cdigo fonte do Linux, incluindo Kernel, drivers de dispositivo, bibliotecas, programas para usurios e ferramentas de desenvolvimento, pode ser livremente distribudo. Outros recursos internos especficos do Linux incluem controle de tarefas POSIX (usado em shells como csh e bash), pseudo-terminais (dispositivos tty), e suporte para dispositivos lidos dinamicamente para controle de teclados nacionais ou customizados. Linux tambm suporta consoles virtuais que permitem que voc troque entre sesses de usurio no mesmo console de sistema. O Kernel tambm pode emular instrues de ponto flutuante do 387, de forma que mquinas sem um co-processador aritmtico podem rodar programas que exijam este tipo de instrues. O Linux tambm suporta diversos sistemas de arquivo para armazenar dados, como o ext2, que foi desenvolvido especificamente para o Linux. Os sistemas de arquivos Xenix e UNIX System V tambm so suportados, bem como o FAT do MS-DOS e o VFAT do Windows 95. Tambm so suportados os sistemas de arquivos ISO9660, para CD-ROM, e UDF, para DVD.

14

O Linux fornece uma implementao completa do software de TCP/IP, incluindo drivers de dispositivo para vrias placas Ethernet, protocolos SLIP e PPP, para conexo TCP/IP discada, PLIP e NFS. A gama completa de clientes e servios TCP/IP tambm suportada, o que inclui FTP, telnet, NNTP e SMTP. O kernel do Linux desenvolvido para utilizar os recursos do modo protegido do Intel 80386 e seus sucessores. Qualquer pessoa familiarizada com o modo protegido do 80386 sabe que o chip foi desenvolvido para sistemas multitarefa, como o Linux. O kernel suporta executveis lidos sob demanda. Apenas aqueles segmentos do programa que eventualmente esto em uso so lidos do disco para a memria. Alm disto, se diversas instncias de um programa esto rodando ao mesmo tempo, elas compartilham a mesma memria fsica, o que reduz o consumo total de memria. Visando aumentar a memria disponvel, o Linux tambm implementa paginao de disco. At um gigabyte de rea de swap pode ser alocada no disco. Quando o sistema exige mais memria fsica, ele salva as pginas inativas em disco, permitindo que voc rode aplicaes maiores e suporte mais usurios. Entretanto, naturalmente h uma perda de velocidade, pois o disco muito mais lento do que a memria RAM. O kernel do Linux tambm implementa um gerenciamento de memria unificado para programas de usurio e cache de disco. Toda a memria livre utilizada para cache de disco, que reduzido quando so executados programas grandes. Executveis usam bibliotecas dinmicas compartilhadas, de forma semelhante ao mecanismo de compartilhamento de bibliotecas do sistema operacional SunOS. Conseqentemente, arquivos executveis ocupam menos espao em disco, em particular aqueles que utilizam muitas funes de biblioteca. Existem tambm bibliotecas lincadas estaticamente, para depurao e criao de arquivos binrios completos, para o caso de sistemas que no tenham as bibliotecas dinmicas instaladas. Para facilitar a depurao, o kernel gera core dumps (imagens da memria) para anlise em caso de falha do sistema, tornando possvel identificar o que fez determinado programa derrubar o sistema.

1.4

Recursos de Software

Praticamente todas as ferramentas que se espera encontrar em uma implementao padro do UNIX j foram portadas para o Linux, incluindo os comandos bsicos, como ls, awk, tr, sed, bc, e more. O ambiente de desenvolvimento de outros sistemas UNIX duplicado no Linux. Todos os comandos e utilitrios padres esto includos. Muitos editores de texto esto disponveis, como vi, ex, pico, jove e GNU Emacs. O editor de texto que voc est acostumado a usar muito provavelmente j foi portado para o Linux. A escolha do editor de texto uma questo interessante. Muitos

15

usurios UNIX preferem editores "simples" como vi, mas vi tem muitas limitaes devido a sua idade, e editores modernos como o Emacs tem ganhado popularidade. O Emacs suporta uma linguagem macro e um interpretador baseados em Lisp, poderosas sintaxes de comando e outras extenses. Existem pacotes de macros Emacs que permitem que voc leia emails, edite o contedo de diretrios, etc. A maioria dos aplicativos bsicos do Linux so softwares GNU. Aplicativos GNU suportam recursos avanados no encontrados nas verses padro de programas BSD ou UNIX System V. Por exemplo, o clone GNU do vi, o elvis, inclui uma linguagem de macro estrutura que diferente da verso original. Entretanto, os aplicativos GNU permanecem compatveis com as verses BSD e System V. Muitas pessoas consideram as verses GNU superiores s originais. Um shell um programa que l e executa comandos do usurio. Alm disto, muitos programas shell oferecem recursos como controle de tarefas, gerenciamento simultneo de diversos processos, redirecionamento de entrada e sada e uma linguagem de comando para escrita de scripts shell. Um script shell um programa na linguagem de programao do shell e anlogo aos arquivos batch do MS-DOS. Muitos tipos de shell esto disponveis no Linux. A mais importante diferena entre shells a linguagem de programao. Por exemplo, o C Shell (csh) usa uma linguagem de comando similar a linguagem de programao C. O Bourne Shell (sh) usa outra linguagem de comando. A escolha do shell geralmente baseada na linguagem de comandos que ele oferece e determina significativamente a qualidade do ambiente de desenvolvimento que estar sendo oferecido naquele Linux. O GNU Bourne Again Shell (bash) uma variao do Bourne Shell que inclui muitos recursos avanados como controle de tarefas, histrico de comandos, uma interface semelhante ao Emacs para edio de linhas de comando e outras poderosas extenses do Bourne Shell padro. Outro shell popular o tcsh, uma verso do C Shell com avanos de funcionalidade semelhantes ao bash. Outros shells incluem zsh, ksn, ash e rc. (......)

1.4.1 Ferramentas e Linguagens de ProgramaoO Linux fornece um ambiente completo de programao UNIX, incluindo todas as bibliotecas padro, ferramentas de programao, compiladores e ferramentas de depurao. So suportados padres como o POSIX.1, o que permite que programas escritos para o Linux sejam facilmente portados para outros sistemas operacionais. Programadores profissionais UNIX e administradores de sistema usam o Linux para desenvolver programas em casa, ento copiam o programa para outras plataformas UNIX. Estudantes de computao aprendem programao UNIX e exploram outros aspectos do sistema, como a arquitetura do kernel, com Linux. Com o Linux, o programador tem acesso ao fonte do kernel e de todas as bibliotecas.

16

Dentro do mundo de software UNIX, sistemas e aplicaes so geralmente programados em C ou C++. O compilador C e C++ padro no Linux o GNU gcc, que um compilador avanado que suporta C++, incluindo recursos do ANSI/ISO C++, bem como Objective-C, outra linguagem orientada a objetos derivada do C. Alm de C e C++, outras linguagens compiladas e interpretadas j foram portadas para o Linux, como Smalltalk, FORTRAN, Java, Pascal, Lisp, Scheme e ADA. Adicionalmente, vrias ferramentas para programao em Assembly, esto disponveis, bem como interpretadores Perl e Tcl/Tk. O depurador gdb pode avanar pelo cdigo fonte de um programa, uma linha por vez, e examinar um core dump para encontrar a causa de uma queda do programa. A ferramenta gprof permite anlises estatsticas de desempenho, informando as partes em que o programa gasta mais tempo de execuo. Como mencionado anteriormente, o editor de texto Emacs fornece um ambiente de programao que permite a edio e compilao de fontes em vrias linguagens. Outras ferramentas incluem o GNU make e GNU image, que permitem manipular a compilao de grandes aplicaes, e o RCS, um sistema para controle de verses de cdigo fonte. Finalmente, o Linux suporta DLLs, que so bibliotecas compartilhadas e dinamicamente lincadas, e permitem executveis muito menores.

1.4.2 Introduo ao Sistema X -WindowsO Sistema X-Windows, ou simplesmente X, uma poderosa interface grfica (GUI - Graphical User Interface) para mquinas UNIX e um poderoso ambiente que suporta muitas aplicaes. Usando o Sistema X-Windows, voc pode ter diversas janelas de terminal na tela ao mesmo tempo, cada uma tendo uma sesso de usurio diferente. Um mouse geralmente utilizado com o X, ainda que no seja indispensvel. Muitas aplicaes especficas do ambiente X j foram escritas, incluindo jogos, ferramentas grficas e de programao e ferramentas de documentao. Atravs de uma rede TCP/IP, uma mquina Linux pode mostrar aplicaes X que estejam rodando em outras mquinas. O Sistema X-Windows foi originalmente desenvolvido no MIT (Massachusetts Institute of Technology) e gratuito. Muitas empresas j distriburam verses proprietrias aprimoradas do Sistema X-Windows. A verso do X para Linux o XFree86, uma verso portada do X11R6. O XFree86 suporta uma larga gama de adaptadores de vdeo, incluindo VGA, Super VGA e placas aceleradoras de vdeo. O XFree86 inclui o servidor X, aplicaes, utilitrios, bibliotecas de programao e documentao. Aplicaes padro do X incluem o xterm, um emulador de terminal utilizado para executar aplicaes de modo texto em uma janela, entre outros. Entre as muitas aplicaes em X esto includas planilhas eletrnicas, editores de texto, ferramentas grficas e navegadores da Web, como o Netscape. Em teoria, qualquer aplicao desenvolvida para o X ir compilar e executar no Linux. A interface do Sistema X-Windows controlada pelo gerenciador de 17

janelas. Este programa responsvel pelo posicionamento, movimentao e redimensionamento das janelas, controle dos cones associados s janelas, entre outras tarefas semelhantes. O XFree86 inclui o twm, o gerenciador de janelas clssico do MIT, e gerenciadores de janela avanados, como o Open Look Virtual Window Manager (olvwm). Outro gerenciador de janelas popular o fvwm, que mostra as janelas com uma aparncia tridimensional. Muitas distribuies do Linux utilizam o fvwm como gerenciador padro de janelas. Uma verso do fvwm chamada fvwm95-2 imita o visual do ambiente de janelas Windows. A distribuio do XFree86 inclui bibliotecas de programao para programadores que desejam desenvolver aplicaes para o X. A exigncia mnima para utilizar o X um 80386 com pelo menos 4 megabytes de RAM, embora 16 MB ou mais seja recomendvel.

1.4.3 Introduo s RedesVoc gostaria de se comunicar com o mundo? Linux suporta dois protocolos de rede UNIX: TCP/IP e UUCP. TCP/IP (Transmission Control Protocol/Internet Protocol) o paradigma de conexo que permite que sistemas de todo o mundo se comuniquem em uma rede nica, a Internet. Com Linux, TCP/IP e uma conexo com a Internet, voc pode se comunicar com usurios e mquinas atravs de e-mail, news e FTP. A maioria das redes TCP/IP utiliza a Ethernet como meio fsico de transporte. O Linux suporta vrias placas Ethernet para computadores pessoais, incluindo adaptadores PCMCIA. Entretanto, como nem todos tem uma conexo Ethernet em casa, Linux tambm suporta os protocolos SLIP e PPP, que permitem o acesso a Internet via modem. Muitas empresas e universidades possuem servidores SLIP e PPP. Se seu sistema Linux tem uma conexo Ethernet com a Internet, voc pode torn-lo tambm um servidor SLIP ou PPP. O NFS (Network File System) permite que seu sistema Linux compartilhe arquivos e diretrios com outras mquinas da rede. O FTP permite que voc transfira arquivos de e para outras mquinas. O Sendmail envia e recebe emails atravs do protocolo SMTP. Telnet, rlogin e rsh permitem que voc entre em outras mquinas presentes em uma rede e execute comandos nelas. O finger permite que voc recupere informaes sobre outros usurios da Internet. O Linux tambm suporta conexo com mquinas Windows atravs do Samba e com mquinas Macintosh com AppleTalk e LocalTalk. Suporte ao protocolo IPX da Novell tambm est includo. A gama completa de leitores de e-mail e news tambm est disponvel para o Linux, incluindo elm, pine, rn, nn e tin. Qualquer que seja sua preferncia, voc pode configurar um sistema Linux para enviar e receber news e e-mail para qualquer lugar do mundo. O Linux fornece ainda uma interface padro para a programao de sockets. Virtualmente qualquer programa que utiliza TCP/IP pode ser portado para o Linux. O servidor X do Linux tambm suporta TCP/IP, e aplicaes rodando remotamente podem utilizar o monitor de seu computador. 18

UUCP (UNIT-to-UNIX Copy) um mecanismo mais antigo de transferncia de arquivos, e-mails e news entre mquinas UNIX. Historicamente, mquinas UUCP se conectam por linhas telefnicas, via modem, mas UUCP pode ser utilizado tambm para transferir dados em uma rede.

1.4.4 Telecomunicaes e Softwares de BBSSe voc tem um modem, voc ser capaz de se comunicar com outras mquinas via pacotes de telecomunicao disponveis para o Linux. Um pacote popular de comunicao para o Linux o seyon, que fornece uma interface customizvel e ergonmica no X, e possui suporte para os protocolos de transferncia de arquivos Kermit e ZModem. Outros programas de telecomunicao incluem o C-Kermit, pcomm e minicom. So programas similares aos encontrados em outros sistemas operacionais e relativamente fceis de utilizar. Se voc no tem acesso a um servidor SLIP ou PPP, pode utilizar o term para dividir sua linha serial. O programa term permite que voc abra mais de uma sesso de usurio em uma conexo por modem. Permite ainda que voc redirecione conexes de um cliente X para seu servidor X local por uma linha serial. Outro pacote de software, KA9Q, implementa uma interface SLIP similar.

1.4.5 World Wide Web importante observar que o Linux inclui servidores web, bem como navegadores da web. O servidor mais conhecido o Apache. Milhares de sistemas Linux rodam Apache na Internet hoje em dia. Distribuies do Linux incluem diferentes web browsers, e outros podem ser copiados da Internet. Browsers disponveis incluem Lynx, Mosaic, Netscape, Arena e Amaya. O Linux tambm oferece suporte completo para Java e CGI, e o Perl uma ferramenta padro do ambiente de programao Linux.

1.4.6 Interface com o MS -DOSExistem diversas ferramentas que fazem interface com o MS-DOS. A mais conhecida o Linux MS-DOS Emulator, que permite que se execute aplicativos MS-DOS diretamente do Linux. Ainda que ambos sejam sistemas operacionais completamente diferentes, o ambiente de modo protegido do 80386 possibilita que aplicaes MS-DOS comportem-se como se estivessem executando diretamente. Diversas ferramentas executam no emulador MS-DOS. Naturalmente, aplicaes MS-DOS que usam recursos bizarros e esotricos do sistema podem nunca vir a ser suportadas, devido s limitaes inerentes a qualquer emulador. Comandos e ferramentas que so padro no MS-DOS, como pkzip.exe, 4dos, e outras, executam normalmente no emulador.

19

O emulador MS-DOS se destina a ser apenas uma soluo para quem precisa utilizar algumas poucas aplicaes MS-DOS, e utiliza Linux para todas as outras atividades. No se destina a ser uma implementao completa do MS-DOS. Se o emulador no suficiente para atender as suas necessidades, sempre possvel executar o MS-DOS e o Linux na mesma mquina. Utilizando o LILO, voc pode especificar na inicializao do sistema qual o sistema operacional que vai ser executado. Outro emulador, o WINE, se destina a permitir o uso de aplicativos MSWindows, emulando o Microsoft Windows no Sistema X-Windows.

1.4.7 Outras FerramentasUm conjunto de outros programas e ferramentas existe para Linux. Bancos de dados relacionais, como Postgres, Ingres e Mbase, bem como bancos de dados comerciais, como Oracle, existem em plataforma Linux. Muitas outras aplicaes j foram portadas para Linux. Se voc no consegue encontrar o que procura, voc pode voc mesmo portar uma aplicao de outra plataforma para Linux. (......)

1.5

Questes de Copyright

O Linux protegido pelo que conhecido como a GNU GPL (GNU General Public License). A GPL foi desenvolvida pela Free Software Foundation para o projeto GNU e especifica uma srie de regras para a distribuio e modificao de software livre. Livre, neste sentido, refere-se a distribuio, no ao custo. Originalmente, Linus Torvalds disponibilizou o Linux atravs de uma licena mais restritiva que a GPL, que permitia que o software fosse livremente distribudo e modificado, mas que impedia que qualquer quantia em dinheiro fosse cobrada por sua distribuio e uso. A GPL, por outro lado, permite que pessoas vendam e tenham lucro com software livre, mas no permite que elas restrinjam de qualquer forma o direito de outros de distriburem tambm o software como bem entenderem. Primeiro preciso que se explique que o software livre protegido pela GPL no de domnio pblico. Software de domnio pblico, por definio, no tem um copyright e pertence ao pblico. Software protegido pela GPL, por outro lado, copyright do autor. O software protegido pelas leis internacionais de copyright, e o autor est legalmente definido. A GPL protege softwares que podem ser livremente distribudos, mas que no so de domnio pblico. Software GPL tambm no shareware. Normalmente, sharewares pertencem a um autor que exige que os usurios lhe enviem dinheiro para utiliz-lo. Softwares GPL podem ser distribudos e utilizados sem que nada seja cobrado por eles. A GPL tambm permite que qualquer um utilize, modifique e distribua suas prprias verses do software. Entretanto, todo e qualquer trabalho derivado de um software protegido pela GPL precisa, necessariamente, 20

tambm ele ser protegido pela mesma licena. Em outras palavras, uma empresa no pode modificar o Linux e vend-lo protegido por uma licena mais restritiva que a GPL. Se o software deriva do Linux, ele tem que ser associado a GPL. Entretanto, voc pode revender qualquer produto derivado do Linux, desde que o mesmo tambm esteja disponvel gratuitamente. A primeira vista, isto pode parecer uma contradio. Porque vender software quando a GPL obriga que o mesmo esteja tambm disponvel gratuitamente? Imagine que uma empresa grave um CD-ROM com diversos softwares gratuitos. Obviamente ela teria um custo por este trabalho que teria que ser cobrado dos interessados em adquirir o produto. A GPL permite que ela cubra os custos e mesmo tenha lucro vendendo um CD-ROM com software livre. Organizaes que vendem software livre tm, porm, que seguir certas restries definidas na GPL, no podendo restringir os direitos dos usurios que adquirem o produto. Se voc compra um CD-ROM que contenha produtos protegidos pela GPL, voc pode copiar e distribuir o CD-ROM sem ter que pagar nada por isto, e mesmo revend-lo voc mesmo. Os distribuidores tm que deixar claro para seus compradores que os softwares esto protegidos pela GPL e disponibilizar o cdigo-fonte dos mesmos sem nenhum custo. Isto permite que qualquer um que compre software protegido pela GPL possa modific-lo. Permitir que empresas distribuam ou vendam software livre algo importante, pois nem todos tm acesso a Internet e condies de baixar software de graa. Muitas organizaes vendem Linux em CD-ROM e outras formas, e lucram com as vendas. Desenvolvedores Linux provavelmente nunca vo receber uma parcela deste lucro, mas este um entendimento obtido entre os programadores e distribuidores de softwares que obedecem a GPL. Em outras palavras, Linus Torvalds sabia que empresas poderiam vender Linux e que ele poderia no ganhar um centavo com estas vendas. No mundo do software livre, a questo fundamental no o dinheiro. O objetivo do software livre sempre de desenvolver e distribuir programas excelentes e permitir que qualquer um obtenha e use. Na prxima seo, ns iremos discutir como isto se aplica ao desenvolvimento do Linux.

1.6

O Projeto e a Filosofia do Linux

Novos usurios geralmente tm algumas falsas expectativas sobre o Linux. importante entender a filosofia e o projeto do Linux para us-lo efetivamente. Ns iremos comear apresentando qual no a filosofia dele. Em empresas que desenvolvem verses comerciais do UNIX, o sistema todo desenvolvido segundo uma poltica rigorosa de controle de qualidade, que utiliza sistemas de controle de cdigos fonte, documentao e procedimentos para relatar e resolver bugs. Desenvolvedores no podem alterar recursos e mudar sees chaves do cdigo ao seu bel prazer. Eles precisam justificar a mudana como resposta a um relato de bug e em seguida marcar todas as mudanas no sistema de controle do cdigo fonte, de tal forma que as mudanas possam ser desfeitas se necessrio. Cada desenvolvedor responsvel por uma ou mais partes do cdigo, e apenas o responsvel pode 21

fazer alteraes em sua seo do cdigo fonte. Um departamento de controle de qualidade executa rigorosos testes em cada nova verso do sistema operacional e relata qualquer bug. Os desenvolvedores consertam os bugs relatados. Um complexo sistema de anlise estatstica utilizado para garantir que uma certa percentagem dos bugs seja resolvida antes da liberao da prxima verso do sistema operacional. A empresa, naturalmente, precisa ter alguma prova quantificvel que a prxima verso do sistema operacional est pronta para ser liberada, o que torna necessria a coleta de anlises estatsticas quanto ao desempenho do mesmo. um trabalho de grandes propores desenvolver um sistema UNIX comercial, geralmente empregando centenas, ou mesmo milhares, de profissionais. Obviamente, no existem dois fabricantes de verses comerciais do UNIX que sejam exatamente iguais, mas este o cenrio tpico. O modelo de desenvolvimento do Linux descarta todo o conceito clssico de desenvolvimento organizado, sistemas de controle de cdigo fonte, relatrios estruturados de bugs e controle estatstico de qualidade. Linux , e possivelmente sempre ser, um sistema operacional desenvolvido por hackers. (Por hacker, queremos dizer um programador expert, dedicado a mexer com computadores. Este o conceito original da palavra hacker, em contraste com a conotao de hacker como algum que utiliza o computador com objetivos ilegais. Atualmente as palavras cracker ou haxor tm ou sido utilizadas para denominar este segundo grupo de indivduos). No existe uma organizao exclusivamente responsvel pelo desenvolvimento do Linux. Qualquer um com conhecimento suficiente pode auxiliar no desenvolvimento e teste do kernel, no porte de novos softwares, na escrita de documentao, e mesmo no auxlio a novos usurios. Atravs de listas de e-mail e grupos Usenet a comunidade Linux mantm contato entre si. Qualquer um que queira incluir cdigo na verso oficial do kernel pode enviar um e-mail para Linus Torvalds, que ir testar e decidir se possvel incluir o cdigo no kernel. O sistema em si projetado de forma aberta e orientado a recursos. Os critrios para lanamento de uma nova verso incluem o nmero de bugs consertados, retorno para usurio durante testes pr-lanamento, etc. suficiente dizer que nem todos os bugs so corrigidos, nem todos os problemas so solucionados entre verses. Enquanto as revises estiverem livres de erros crticos e bugs recorrentes, elas so consideradas estveis. Qualquer um que desenvolver um novo recurso ou ferramenta geralmente disponibiliza o mesmo como uma verso alfa, ou seja, uma verso de teste, para aqueles que quiserem auxiliar na descoberta de problemas no cdigo. Verses Alfa so geralmente disponibilizadas inicialmente em determinados sites de ftp, e mensagens so enviadas para uma ou mais listas de Linux. Usurios que instalam as verses alfa das ferramentas enviam suas opinies, correes de bugs e perguntas para os autores. Depois que os primeiros bugs foram resolvidos, o cdigo entra a fase de Beta teste, na qual considerado estvel, mas incompleto. Ele funciona, mas nem todos os recursos necessariamente esto presentes. Eventualmente, o

22

software pode ir direto para a etapa final, na qual considerado completo e utilizvel. Tenha em mente que estas so convenes, no regras. Alguns programadores podem se sentir to confiantes em seus softwares que optem por no lanar verses alfa ou beta. Sempre cabe ao desenvolvedor tomar este tipo de deciso. Voc pode chegar a duvidar que tal sistema desestruturado de voluntrios que programam e testam um UNIX completo consigam produzir resultados. Hoje sabido que o Linux um dos mais eficientes e motivados esforos de desenvolvimento j realizado. O kernel inteiro do Linux foi construdo do zero, sem nenhum cdigo proprietrio. Bibliotecas so escritas e portadas, sistemas de arquivo so desenvolvidos, e drivers de dispositivos so escritos, tudo graas ao trabalho de voluntrios. O software Linux geralmente disponibilizado como uma distribuio, um conjunto de ferramentas j empacotado que compreende todo um sistema. Seria difcil para a maioria dos usurios instalar um sistema completo do zero, comeando com o kernel, incluindo ferramentas e instalando todos os softwares necessrios, sem utilizar uma distribuio. Assim, muitas distribuies esto disponveis que incluem tudo que necessrio para instalar e rodar um sistema completo. No existe uma nica distribuio padro. Existem muitas, e cada uma tem suas vantagens e desvantagens.

1.7

Diferenas entre o Linux e outros Sistemas Operacionais

importante entender as diferenas entre o Linux e outros sistemas operacionais, como MS-DOS, Windows e outras implementaes de UNIX para computadores pessoais. Em primeiro lugar, Linux coexiste pacificamente com outros sistemas operacionais na mesma mquina. Voc pode executar MSDOS ou Windows na mesma mquina em que roda Linux.

1.7.1 Porque usar o Linux?Porque utilizar Linux ao invs de um sistema operacional comercial? Para usurios e programadores de UNIX e estudantes que tm interesse em dominar tal plataforma, faz muito mais sentido utilizar um sistema operacional Linux do que Windows em casa. Para hackers, no sentido sempre de experts em informtica, Linux o sistema operacional ideal. Para empresas, Linux pode ser uma soluo mais barata, robusta e eficiente que outras alternativas. Muitas empresas tm utilizado como forma de evitar os altos custos anuais com compras de licenas de software, enquanto outras tm escolhido como forma de utilizar eficientemente mquinas ultrapassadas, que no rodam nas verses recentes do Windows, mas funcionam com eficincia em um Linux.

1.7.2 Linux vs WindowsTanto as diferentes verses do Windows quanto o Linux so sistemas operacionais multitarefa, suportando aproximadamente os mesmos recursos de 23

interface com usurios, conexo com redes de computadores, etc. A verdadeira diferena que o Linux uma verso do UNIX, beneficiando-se da contribuio da comunidade UNIX como um todo. Ao contrrio do Linux, o Windows propriedade de uma nica empresa. O desenvolvimento do sistema operacional controlado por uma nica corporao, o que traz vantagens em termos de padronizao e definio de interface, mas tambm significa que as definies de poltica de preos e padres a serem utilizados sero todos definidos por uma empresa. (......)

1.7.3 Linux vs outras implementaes de UNIXExistem diversas outras implementaes do UNIX para o PC, mesmo porque a arquitetura do 80386 e de seus sucessores bastante adequada estrutura do UNIX. Outras implementaes do UNIX para computadores pessoas so similares ao Linux. Praticamente todas as verses do UNIX suportam os mesmos softwares, ambientes de programao e recursos de conexo. Diferenas existem, porm. Muitos usurios relatam que o Linux pelo menos to estvel quanto verses UNIX comerciais. O tempo para o desenvolvimento de novos recursos, porm, costuma ser significativamente menor. O mais importante fator, porm, preo. Sendo um software livre, o Linux pode ser copiado de graa da Internet ou adquirido por um pequeno valor na forma de uma distribuio em CD-ROM. Se voc pretende instalar o Linux em um grupo de mquinas, o custo apenas o de comprar uma nica cpia. Implementaes comerciais do UNIX, por outro lado, oferecem mais do que apenas o software. Em geral o preo pago pelas mesmas inclui documentao, suporte e garantias quanto a qualidade. Para grandes instituies, estas podem ser questes importantes, mas usurios domsticos e mesmo determinadas empresas podem preferir no seguir por esta alternativa e fazer uso do Linux gastando um valor muito menor. (......)

1.8

Exigncias de Hardware

possvel que voc esteja convencido das potencialidades do Linux e ansioso por aproveitar tudo o que ele tem a fazer. Entretanto, antes de sair instalando o sistema operacional, voc precisa estar ciente das necessidades e limitaes do mesmo em termos de hardware.

1.8.1 Placa-me e CPUO Linux atualmente suporte sistemas com processadores 80386, 80486, Pentium e suas variaes e sucessores, bem como outros chips compatveis com Intel. Linux tambm j foi portado para PowerPC, Alpha, MIPS e Sparc.

24

1.8.2 Exigncias de MemriaO Linux exige muito pouca memria, em comparao com outros sistemas operacionais avanados. Voc precisa ter pelo menos 4MB de RAM, mas 16MB recomendvel. Quanto mais memria, mais rpido o sistema ir rodar. Algumas distribuies podem exigir mais memria RAM. O Linux suporta o endereamento de 32 bits do processador, utilizando toda a memria RAM automaticamente. O Linux ir funcionar em uma mquina com 4MB de RAM, podendo inclusive executar o sistema X-Windows e o editor Emacs. Entretanto, ter mais memria to importante quanto ter um processador mais rpido. 16MB suficiente para muitas aplicaes, mas sistemas que vo operar como servidores podem precisar de consideravelmente mais memria, de acordo com o tipo de servio que eles vo executar. A maioria dos usurios Linux aloca uma poro do disco como espao de swap, que utilizado como uma memria RAM virtual. Mesmo que seu computador tenha 16MB ou mais, pode ser interessante utilizar espao de swap.

1.8.3 Controladores de Disco Rgido teoricamente possvel executar o Linux de um disquete ou, em algumas distribuies, diretamente de um CD-ROM, mas para se ter um bom desempenho necessria uma rea no disco rgido. O Linux pode co-existir com outros sistemas operacionais - ele apenas precisa de uma ou mais parties. O Linux suporta controladores IDE e EIDE. Em geral, se o MS-DOS ou outro sistema operacional consegue acessar o disco rgido, o Linux tambm consegue.

1.8.4 Espao em DiscoObviamente, para instalar o Linux voc precisa de algum espao disponvel no disco. O Linux suporta mais de um disco rgido, de tal forma que voc pode instalar partes do sistema em cada disco. O espao em disco necessrio para o Linux depende de suas necessidades e do software que voc ir instalar. Para uma implementao do UNIX, o Linux relativamente pequeno. possvel executar o sistema com apenas 20MB de espao em disco. Naturalmente, para expanses e grandes pacotes de software, como as interfaces grficas, mais espao necessrio. Exigncias realistas de espao em disco variam de 200MB at 1GB ou mais. Cada distribuio do Linux vem com uma documentao que ir ajud-lo a definir as necessidades exatas de espao em disco.

1.8.5 Outros DispositivosDe uma forma geral, todos os dispositivos comumente encontrados em computadores e mesmo alguns relativamente incomuns so suportados pelo

25

Linux. Sempre que surge algum dispositivo novo no mercado que no tem suporte em Linux, algum da comunidade de desenvolvedores imediatamente comea a trabalhar em um driver para o mesmo. (......)

1.9

Fontes de informao sobre o Linux

Existem muitas fontes de informao sobre o Linux. Em particular, livros sobre o UNIX em geral sero muito teis, especialmente para quem no estiver familiarizado com o UNIX. Tambm h muita informao online sobre o Linux. Um bom lugar para comear o site http://www.linuxresources.com/ .

1.9.1 Documentao OnlineMuita documentao do Linux est disponvel por FTP annimo de sites na Internet ao redor do mundo e em redes como a Fidonet e CompuServe. Distribuies do Linux em CD-ROM tambm contm documentos mencionados aqui. Se voc pode mandar e-mail para a Internet, tambm pode pegar esses arquivos usando um dos servidors de e-mail FTP, que mandam os documentos ou arquivos dos sites de FTP por e-mail. (......)

1.9.2 Linux na WebA pgina do Projeto de Documentao Linux (Linux Documentation Project) est em http://www.linuxdoc.org/ . Esta pgina lista muitos "HOWTOs" e outros documentos em formato HTML, assim como links para outros sites de interesse de usurios Linux, como o ssc.com, onde est o Linux Journal, uma revista mensal. Sua home page est em http://www.ssc.com/ .

1.9.3 Livros e outros trabalhos publicadosOs livros do Projeto de Documentao Linux so o resultado de um esforo ao redor da rede para escrever e distribuir um bom conjunto de manuais para Linux, anlogos documentao que vem com as distribuies UNIX comerciais, cobrindo instalao, operao, programao, rede, e desenvolvimento do kernel. Os manuais do Projeto de Documentao Linux esto disponveis por FTP annimo e pedidos por correio. Grandes editoras, incluindo MIS:Press, Digital Press, O'Reilly & Associates, e SAMS publicaram livros sobre o assunto. Verifique numa livraria ou na pgina do SSC (http://www.ssc.com/ ), ou ainda nas anlises no Linux Journal, disponveis no site http://www.linuxjournal.com . Um grande nmero de livros sobre UNIX em geral aplicvel ao Linux. No uso e na interface de programao o Linux no difere muito de outras 26

implementaes do UNIX. Quase tudo que voc gostaria de saber sobre usar e programar o Linux pode ser encontrado em textos genricos sobre UNIX. De fato, este livro objetiva suplementar a biblioteca de livros UNIX atualmente disponvel. Aqui, apresentamos os detalhes mais importantes e especficos do Linux e esperamos que voc procure outras fontes de informao para aprofundar-se. Equipado com este e outros bons livros sobre UNIX, voc deve estar apto a lidar com quase tudo. A revista Linux Journal distribuda no mundo todo e uma excelente maneira de manter-se em contato com as novidades da comunidade Linux, especialmente se voc no tem acesso aos grupos de discusso da Usenet.

1.9.4 Grupos de discusso da UsenetUsenet um frum de discusso eletrnico com uma seleo diversa de newsgroups(grupos de discusso), que por sua vez so reas de discusso voltadas para um tema especfico. Muitos debates sobre desenvolvimento do Linux ocorrem na Internet e Usenet. H, portanto, um grande nmero de grupos de discusso dedicados ao Linux. O primeiro grupo de discusso do Linux, alt.os.linux, foi criado para centralizar os debates sobre Linux que ocorriam em comp.os.minix e vrias outras listas de e-mail. Rapidamente, o trfego no alt.os.linux cresceu ao ponto de ser solicitada a criao de um novo grupo de discusso na hierarquia comp. Uma votao em Fevereiro de 1992 aprovou a criao do comp.os.linux. comp.os.linux tornou-se rapidamente um dos mais populares (e barulhentos) grupos do Usenet. Mais popular que qualquer outro grupo no hierrquia comp.os. Se voc no tem acesso Usenet, h alguns gateways de mail-to-news disponveis para muitos dos grupos de discusso. (......)

1.9.5 Listas de e-mail por InternetSe voc tem acesso a e-mail, voc participar de muitas listas, mesmo no tendo acesso ao Usenet. Se voc no est conectado diretamente na Internet, pode se inscrever uma destas listas se puder trocar e-mail com a Internet (com UUCP, por exemplo). Para mais informaes sobre listas de e-mail sobre Linux, mande um email para: [email protected] Inclua uma linha com a palavra help no corpo da mensagem e uma mensagem ser retornada para voc descrevendo com se cadastrar e descadastrar de vrias listas de e-mail. A palavra lists em uma linha retorna o nome de vrias listas que so acessveis pelo servidor majordomo.vger.rutgers.edu

27

H muitas listas de Linux com propsitos especficos. A melhor maneira de encontrar informao sobre isso observar os newsgroups de Linux na Usenet, assim como verificar o rol de listas pblicas de e-mail disponveis, que publicado no grupo news.answers da Usenet.

1.10 Buscando ajuda sobre LinuxSem dvida alguma voc vai precisar de ajuda durante suas "aventuras" no mundo Linux. At mesmo experts em UNIX ficam ocasionalmente confusos com alguma particularidade do Linux. importante saber como, onde e quando buscar ajuda. O meio bsico de obter ajuda atravs de listas de e-mail e grupos de discusso, como discutido nas sees anteriores. Se voc no tem acesso a essas fontes, voc pode procurar outros meios online, como BBSs e CompuServe. Tambm est disponvel online o Linux Journal's Best of Technical Support, no endereo http://www.linuxjournal.com/techsup.html . Muitas empresas oferecem suporte comercial para o Linux. Muitos desses servios oferecem contratos de suporte que do acesso a consultas sobre problemas de Linux. Mantenha em mente as sugestes abaixo para melhorar sua experincia em Linux e garantir um maior sucesso na busca de ajuda. Consulte toda a documentao disponvel primeiro! Esta a primeira coisa a fazer quando voc encontrar um problema. As documentaes disponveis foram arduamente escritas para pessoas que precisem de ajuda no sistema operacional Linux (exemplo: HOWTOs). Como mencionado anteriormente, livros escritos para UNIX so aplicveis ao Linux e devem ser usados tambm. Se voc tem acesso ao Usenet, ou qualquer lista de e-mail sobre Linux, leia primeiramente a infornao que j foi publicada. Freqentemente, solues para problemas comuns que no esto cobertas na documentao so amplamente discutidas nas listas. Se voc publicar uma pergunta sem ler antes se este assunto j foi tratado, prepare-se para as respostas :). Aprenda a apreciar a autoconfiana. Voc pediu por isso ao executar o Linux! Lembre-se, hacking tem tudo a ver com Linux. Ele no um sistema comercial, nem pretende tornar-se um. Ser esclarecedor investigar e resolver problemas por conta prpria - voc at poder ser um guru Linux algum dia! Aprenda a apreciar o valor de vasculhar o sistema e consertar problemas por conta prpria. No espere, no entanto, criar um sistema Linux totalmente personalizado sem muita mo de obra. Mantenha-se calmo. Voc no vai ganhar nada usando uma marreta no seu computador Linux. Compre um bom saco de pancadas ou saia para uma longa caminhada. Essa uma boa maneira de aliviar situaes de estresse. Com a maturidade do Linux e das distribuies, esperamos que estes problemas diminuam. Entretanto, mesmo UNIX comerciais podem ser problemticos. Quando tudo falhar, sente-se, inspire fundo e retorne ao problema quando estiver relaxado. Sua mente e conscincia estaro mais

28

claras. Evite publicar perguntas desnecessrias. Muitas pessoas cometem o erro de mandar mensagens pedindo ajuda prematuramente. Quando encontrar algum problema, no corra para mandar uma mensagem na lista. Primeiro, tente resolver por sua conta, e esteja absolutamente certo do problema que tem em mos. O seu sistema no liga? Talvez esteja desligado da tomada... Quando pedir ajuda, faa valer a pena. Lembre-se que as pessoas que vo ler sua mensagem no esto l necessariamente para ajudar voc. Lembre-se de ser educado, resumido e informativo tanto quanto possvel. Como fazer tudo isso? Primeiramente, voc deve incluir toda a informao relevante possvel sobre seu sistema e problema. Mandando uma mensagem simples, como: "No consigo fazer o e-mail funcionar" provavelmente no ser de grande ajuda e vai lev-lo a lugar nenhum a no ser que voc inclua informao sobre seu sistema, que software usa, o que voc j tentou fazer e quais os resultados que obteve. Quando incluir informaes tcnicas, uma boa idia incluir tambm informao sobre as verses de software utilizadas (verso do kernel, por exemplo), assim como um breve sumrio da configurao de hardware. Tambm no exagere - o tipo de monitor e marca provavelmente irrelevante se voc est tentando configurar sua placa de rede.

29

2

TUTORIAL SOBRE LINUX

2.1

Introduo

Se voc for novo no UNIX e Linux, pode estar um pouco intimidado pelo tamanho e aparente complexidade do sistema na sua frente. Este captulo no entra em grandes detalhes nem trata de tpicos avanados. Ao invs disso, queremos que voc comece colocando a mo na massa. Assumimos muito pouco sobre o que voc j sabe, exceto talvez que voc tenha alguma familiarizao com computadores, e com MS-DOS. Entretanto, mesmo que voc nunca tenha usado o MS-DOS, deve ser capaz de entender tudo exposto aqui. primeira vista, o Linux se parece bastante com o MS-DOS -- mesmo porque, partes do MS-DOS foram modeladas no sistema operacional CP/M, que por sua vez foi modelado no UNIX. No entanto, s as caractersticas mais superficiais do Linux lembram o MS-DOS. Mesmo que voc seja completamente novo ao mundo do PC, este tutorial deve ajud-lo. E, antes de comearmos: no tenha medo de experimentar. O sistema no morde.Voc no pode destruir alguma coisa ao trabalhar no sistema. O Linux tem segurana embutida que previne usurios "normais" de danificarem arquivos essenciais ao sistema. Mesmo assim, a pior coisa que pode acontecer que voc apague alguns ou todos os seus arquivos e tenham que reinstalar o sistema. Assim, por agora voc no tem nada a peder.

2.2

Conceitos Bsicos do Linux

O Linux um sistema operacional multi-tarefa e multi-usurio, o que significa que muitas pessoas podem rodar aplicaes diferentes em um computador ao mesmo tempo. Isso difere do MS-DOS, por exemplo, onde somente uma pessoa pode usar o sistema de cada vez. No Linux, para se identificar, voc deve "logar" no sistema, o que exige que voc fornea sua identificao (login - o nome que o sistema usa para identific-lo), e sua senha, que sua chave pessoal para entrar na sua conta. Como somente voc sabe sua senha, ningum pode "logar" no sistema usando seu nome de usurio. Em sistemas UNIX tradicionais, o administrador do sistema determina um nome de usurio e uma senha inicial quando voc recebe uma conta do sistema. Entretanto, como neste Linux voc o administrador do sistema, voc deve configurar sua conta pessoal antes de poder logar. Para os prximos debates usaremos o nome de usurio imaginrio "larry". Alm disso, cada sistema tem um nome de mquina (host name) determinado. o hostname que d nome a sua mquina; d a ela carter e charme. O hostname usado para identificar mquinas individuais na rede, mas mesmo que sua mquina no esteja em rede, ela deve ter um hostname. Para o nosso exemplo, o nome da mquina ser "mousehouse".

30

2.2.1 Criando uma contaAntes que possa usar um sistema Linux recm instalado, voc deve criar uma conta prpria. No uma boa idia usar a conta root para uso normal; voc deve reserv-la para rodar comandos privilegiados e para manuteno do sistema, como discutido abaixo. Para criar sua conta, entre como root e use o comando useradd ou adduser.

2.2.2 LogandoNo momento do login, voc vai ver um prompt parecido com: mousehouse login: Entre seu nome de usurio e pressione . Nosso heri, larry, iria digitar: mousehouse login: larry Password: A seguir, entre sua senha. Os caracteres que voc entrar no sero mostrados na tela, por isso digite-os com cuidado. Se voc errar sua senha, vai ver a mensagem "Login incorrect" e deve tentar novamente. Uma vez que tenha entrado com sucesso o nome de usurio e senha, voc entrou oficialmente no sistema e est livre para perambular.

2.2.3 Consoles Virtuais.O console do sistema o monitor e teclado que esto diretamente ligados no sistema. Como o Linux um sistema operacional multi-usurio, voc pode ter outros terminais conectados a portas seriais no seu sistema, mas esses no seriam o console. O Linux, como outras verses do UNIX, fornece acesso a consoles virtuais (ou VCs), que permitem que voc tenha mais de uma sesso de login no console ao mesmo tempo. Para demonstrar isso, entre no sistema. Aps, pressione Alt-F2. Voc deve ver o prompt "login:" novamente. Voc est na frente do segundo console virtual.Para mudar novamente para o primeiro VC, pressione Alt-F1. Voila! Voc est novamente na primeira sesso de login. Um sistema Linux novo provavelmente permite que voc acesse somente a primeira meia dzia de VCs, pressionando Alt-F1 at Alt-F6, ou conforme o nmero de VCs configurados no sistema. possvel habilitar at 12 VCs - um para cada tecla de funo no seu teclado. Como voc pode ver, o uso de VCs pode ser bem poderoso, pois voc pode trabalhar em vrias sesses diferentes ao mesmo tempo. Mesmo que o uso de VCs seja um tanto quanto limitado (afinal, voc pode ver somente um VC de cada vez), deve dar uma noo das capacidades multi-usurios do Linux. Enquanto estiver trabalhando com o primeiro VC, voc pode mudar para o segundo VC e trabalhar em alguma outra coisa.

31

2.2.4 Shells e comandosA maioria de sua explorao no mundo Linux se dar atravs de um shell, um programa que pega comandos que voc digita e os traduz em instrues para o sistema operacional. Ele pode ser comparado ao COMMAND.COM, o programa que no MS-DOS faz essencialmente a mesma coisa. Um shell s uma interface para o Linux. H muitas interfaces possveis - como o Sistema X Window, que permite que voc rode comandos usando o mouse e teclado. Assim que voc entra no login, o sistema inicia um shell e voc pode comear a digitar comandos. Aqui vemos um exemplo rpido. O Larry "loga" e fica esperando no prompt do shell: mousehouse login: larry Password: (no mostrada) Welcome to Mousehouse! /home/larry# A ltima linha desse texto o prompt do shell, indicando que est pronto para receber comandos. (Adiante veremos mais sobre o que ele significa). Vamos tentar dizer ao sistema para fazer algo interessante: /home/larry# make love make: *** No way to make target 'love'. Stop. /home/larry# Bem, como vemos, make o nome de um programa real no sistema, e o shell executou o programa quando demos o comando. (Infelizmente, o sistema no foi muito amigvel.) Isto nos leva a uma pergunta picante: O que um comando? O que acontece quando voc digita "make love"? A primeira palavra na linha de comando, "make", o nome de um comando a ser executado. Todo o reste na linha de comando tomado como parmetro para o comando. Exemplo: /home/larry# cp foo bar O nome deste comando "cp", e os parmetros so "foo" e "bar". Quando voc entra um comando, o shell faz vrias coisas. Primeiro, ele verifica o comando para ver se ele interno ao shell. Isto , um comando que o prprio shell saiba como executar. H vrios comandos assim, e vamos passar por eles mais tarde. O shell tambm verifica se o comando no um alias (um nome substituto) para outro comando. Se nenhuma dessas condies se aplicar, o shell procura um program no disco que tenha o nome especificado. Se for bem sucedido, o shell roda esse programa, enviando os parmetros especificados na linha de comando. No nosso exemplo, o shell procura por um programa chamado "make", e roda ele com o parmetro "love". "Make" um programa freqentemente usado para compilar programas grandes, e recebe como parmetros o nome do "alvo" a ser compilado. No caso do "make love", ns instrumos o "make" a compilar o arquivo "love". Como o "make" no pde encontrar um destino com

32

esse nome, ele falhou com uma mensagem de erro engraada e nos retornou para o prompt do shell. O que acontece se digitarmos um comando para o shell e o shell no conseguir encontrar um programa com o nome especificado? Bem, podemos tentar o seguinte: /home/larry# coma lixo coma: command not found /home/larry# Bem simples, se o shell no pode encontrar o comando com o nome dado (no exemplo, "coma"), ele imprime uma mensagem de erro. Voc vai ver esta mensagem de erro com freqncia se digitar um comando errado (ex: se voc digitou "mkae love" ao invs de "make love").

2.2.5 LogoutAntes de nos aprofundarmos ainda mais, temos que lhe contar como dar logout (sair) do sistema. No prompt do shell, use o comando "exit" para dar logout. H outras formas ainda, mas esta a que envolve menos riscos.

2.2.6 Mudando sua senhaVoc deve saber como mudar sua senha no sistema. O comando "passwd" pede pela sua velha senha e por uma nova. Ele tambm pede que voc redigite a nova para validao. Cuidado para no esquecer sua senha se voc esquec-la, s o administrador do sistema pode recuperar seu acesso.

2.2.7 Arquivos e diretriosNa maioria dos sistemas operacionais (incluindo o Linux), h o conceito de arquivo, que um monte de informaes com um nome (chamado filename - nome de arquivo). Exemplos de arquivos so seu trabalho de concluso de curso, uma mensagem de e-mail, ou um programa que pode ser executado. Essencialmente, qualquer coisa gravada no disco gravada em um arquivo individual. Arquivos so identificados por seus nomes. Por exemplo, um arquivo contendo seu trabalho de concluso pode ser gravado como nome trabalho-deconclusao. Esses nomes usualmente identificam o arquivo e seu contedo de alguma forma que faa sentido para voc. No h um formato padro para nomes de arquivo como existe no MS-DOS ou Windows e outros sistemas operacionais. Em geral, um nome de arquivo pode conter um caracter (exceto o caracter /) e limitado a 256 caracteres de comprimento. Com o conceito de arquivos, vem o conceito de diretrios. Um diretrio uma coleo de arquivos. Voc pode pensar nele como uma "pasta" que contm muitos arquivos diferentes. Diretrios tambm recebem nomes, com os quais voc os identifica. Alm disto, diretrios so mantidos em uma estrutura tipo rvore. Isso significa que diretrios podem conter outros dir