Linux - Ferramentas técnicas 2ed.

download Linux - Ferramentas técnicas 2ed.

of 367

Transcript of Linux - Ferramentas técnicas 2ed.

Linux: Ferramentas tcnicas 2 edioCapa

Este livro uma coleo de dicas que ensinam a configurar e corrigir problemas "na unha", manipulando diretamente os arquivos de configurao e mdulos do sistema, sem depender de nenhum configurador, escrever shell scripts, instalar drivers manualmente e dominar ferramentas de diagnstico e recuperao do sistema. Por ser escrito em uma linguagem simples e didtica e com um nvel crescente de dificuldade, este livro indicado tanto para usurios avanados que querem expandir seus conhecimentos, quanto para iniciantes que desejam compreender mais profundamente o sistema. Autor: Carlos E. Morimoto Pginas: 312 Formato: 23 x 16 cm Editora: GDH Press e Sul Editores ISBN: 85-205-0401-9 Lanado em: Maro de 2006

DescrioAs distribuies Linux esto de um modo geral se tornando muito fceis de usar, em algumas reas at mesmo mais fceis de usar que o Windows. Mas, isso acaba deixando um gosto amargo na boca. Afinal, onde est o desafio? Em outros casos as coisas no funcionam to bem assim e o gosto amargo fica por conta do modem, webcam, placa 3D ou placa wireless que no est funcionando ou outro problema qualquer, que no pode ser solucionado usando as ferramentas grficas. Este livro uma coleo de dicas que ensinam a configurar e corrigir problemas "na unha", manipulando diretamente os arquivos de configurao e mdulos do sistema, sem depender

de nenhum configurador, escrever shell scripts, instalar drivers manualmente e dominar ferramentas de diagnstico e recuperao do sistema. ideal para quem gosta de fuar e quer entender melhor como o sistema funciona internamente, editando arquivos de configurao, compilando mdulos e escrevendo scripts. Nesta segunda edio, o livro recebeu uma grande quantidade de atualizaes em todos os captulos e muitas das dicas antigas foram substitudas por novas. O captulo sobre shell script foi expandido, trazendo mais dicas sobre o desenvolvimento de scripts grficos e tambm scripts e regras para o hotplug e udev, que permitem abrir programas e executar outros scripts quando determinados dispositivos so plugados na mquina. Foi includo tambm um novo captulo, que ensina a desenvolver solues baseadas no Kurumin e outros live-CDs baseados no Knoppix, que permitem colocar em prtica as dicas aprendidas no restante do livro. Por ser escrito em uma linguagem simples e didtica e com um nvel crescente de dificuldade, este livro indicado tanto para usurios avanados, quanto iniciantes que desejam compreender mais profundamente o sistema. Carlos E. Morimoto o criador do http://www.hardware.com.br, o maior site tcnico do pas. Seu trabalho inclui mais de dois mil artigos, dicas e tutoriais publicados, projetos de desenvolvimento em Linux, cursos, palestras e a publicao de 17 livros tcnicos sobre hardware, redes, servidores e Linux, entre eles os livros Hardware, o Guia Definitivo; Redes, Guia Prtico; Servidores Linux, Guia Prtico; Smartphones, Guia Prtico; Linux, Entendendo o Sistema e Linux, Ferramentas Tcnicas.

SumrioPrefcio ................................ ................................ ................................ ................................ ... 7 Captulo 1: Entendendo a estrutura do sistema................................ ................................ ....... 7 Como funciona o suporte a hardware no Linux................................ ................................ ..... 8 Os componentes do sistema................................ ................................ ............................... 11 Kernel ................................ ................................ ................................ ................................ 11 Mdulos................................ ................................ ................................ ............................. 16 Os processos de boot e os arquivos de inicializao................................ ............................ 18 Ativando e desativando servios................................ ................................ ......................... 22 X ................................ ................................ ................................ ................................ ........ 25 Gerenciador de login ................................ ................................ ................................ .......... 27 Xfree e Xorg ................................ ................................ ................................ ....................... 27 A rvore genealgica das distribuies ................................ ................................ ............... 28 Captulo 2: Configurao, ferramentas e dicas ................................ ................................ ...... 31 Editando o /etc/fstab ................................ ................................ ................................ ......... 31 Configurando o lilo ................................ ................................ ................................ ............. 38 Dual-Boot com dois HDs ................................ ................................ ................................ . 42 Usando uma imagem de fundo................................ ................................ ....................... 43 Configurando o grub ................................ ................................ ................................ .......... 44 Configurando o vdeo: /etc/X11/xorg.conf................................ ................................ .......... 48 KVM via software com o Synergy................................ ................................ ........................ 59 Usando o hdparm................................ ................................ ................................ ............... 65 Recompilando o Kernel ................................ ................................ ................................ ...... 69 Baixando os fontes ................................ ................................ ................................ ......... 70 Configurando................................ ................................ ................................ .................. 71 Compilando ................................ ................................ ................................ .................... 77 Instalando ................................ ................................ ................................ ...................... 79 Recompilando o Kernel moda Debian ................................ ................................ .......... 80 Aplicando patches ................................ ................................ ................................ .......... 81 Criando patches ................................ ................................ ................................ ................. 82 Acelerando a compilao com o distcc ................................ ................................ ............... 83 Criando pacotes a partir dos fontes com o checkinstall................................ ....................... 85

Escrevendo scripts de backup................................ ................................ ............................. 87 Usando o autofs/automount ................................ ................................ .............................. 92 Acessando dispositivos USB................................ ................................ ................................ 94 Configurando manualmente................................ ................................ ........................... 94 Devs e hotplug................................ ................................ ................................ ................ 98 Entendendo o udev ................................ ................................ ................................ ...... 100 Renomeando interfaces de rede com o udev................................ ................................ 102 Fazendo backup e recuperando a MBR e tabela de parties ................................ ........... 104 Usando o Gpart ................................ ................................ ................................ ............ 105 Usando o Testdisk ................................ ................................ ................................ ........ 106 Recuperando parties danificadas ................................ ................................ .................. 109 Gerenciamento de setores defeituosos como o ReiserFS................................ .................. 114 Monitorando a sade do HD com o SMART ................................ ................................ ...... 116 Copiando dados de HDs ou CDs defeituosos ................................ ................................ ..... 120 Aproveitando mdulos de memria defeituosos ................................ .............................. 122 Eliminando dados com segurana................................ ................................ ..................... 123 Administrando a memria swap ................................ ................................ ....................... 127 Ativando o suporte a mair de 1GB de memria RAM................................ ........................ 129 Clonando parties com o Partimage ................................ ................................ ............... 131 Instalando ................................ ................................ ................................ .................... 132 Funes bsicas................................ ................................ ................................ ............ 133 Fazendo uma imagem de todo o HD................................ ................................ ............. 138 Gravando imagens num compartilhamento da rede ................................ ..................... 139 Segurana: detectando rootkits................................ ................................ ........................ 143 Instalando o Kurumin 7 (e outras distros) num pendrive ou carto................................ ... 145 Salvando as configuraes ................................ ................................ ................................ 153 Monitores de temperatura e coolers ................................ ................................ ................ 155 Gerenciamento de energia ................................ ................................ ............................... 159 Captulo 3: Instalando drivers adicionais ................................ ................................ ............. 164 Verificando links, arquivos e compiladores ................................ ................................ ....... 164 Configurando softmodems no Linux ................................ ................................ ................. 167 A idia bsica................................ ................................ ................................ ................ 168 Driver da Smartlink ................................ ................................ ................................ ....... 169 Intel AC97 e ATI IXP ................................ ................................ ................................ ...... 174

Intel 537 e 536 ................................ ................................ ................................ ............. 176 Lucent e Agere ................................ ................................ ................................ ............. 178 PC-Tel PCI ................................ ................................ ................................ ..................... 180 Modems com chipset Conexant................................ ................................ .................... 181 Instalando placas wireless ................................ ................................ ................................ 182 Ndiswrapper................................ ................................ ................................ ................. 184 ACX100 e ACX111 ................................ ................................ ................................ ......... 187 MadWiFi................................ ................................ ................................ ....................... 189 ADMteck ADM8211 ................................ ................................ ................................ ...... 190 Realtek 8180 ................................ ................................ ................................ ................ 191 Orinoco USB ................................ ................................ ................................ ................. 192 Broadcom................................ ................................ ................................ ..................... 193 IPW2100 e IPW2200................................ ................................ ................................ ..... 193 Ralink 2400 e 2500 ................................ ................................ ................................ ....... 197 Linux-wlan-ng ................................ ................................ ................................ ............... 198 Suporte a webcams ................................ ................................ ................................ .......... 199 Driver apca5xx................................ ................................ ................................ .............. 201 Logitech QuickCam ................................ ................................ ................................ ....... 202 Sqcam ................................ ................................ ................................ .......................... 202 Modems ADSL USB................................ ................................ ................................ ........... 203 Driver da nVidia................................ ................................ ................................ ................ 208 Instalando manualmente................................ ................................ .............................. 208 Ativando os recursos especiais ................................ ................................ ..................... 214 FSAA................................ ................................ ................................ ............................. 214 Configurador grfico................................ ................................ ................................ ..... 216 Twin View................................ ................................ ................................ ..................... 219 Instalando moda Debian ................................ ................................ ............................ 221 Driver para placas com chipset nForce................................ ................................ .............. 223 Ativando o driver de rede ................................ ................................ ............................. 224 Ativando o driver de som................................ ................................ .............................. 225 Driver 3D da ATI ................................ ................................ ................................ ............... 225 Instalando ................................ ................................ ................................ .................... 227 Configurando e solucionando problemas................................ ................................ ...... 228 Tablets ................................ ................................ ................................ ............................. 233

Configurando placas de TV ................................ ................................ ............................... 236 Gravando ................................ ................................ ................................ ..................... 241 Configurando mouses touchpad com funes especiais ................................ ................... 242 Bootsplash ................................ ................................ ................................ ....................... 246 Captulo 4: Programando em shell script ................................ ................................ ............. 250 O bsico ................................ ................................ ................................ ........................... 251 Fazendo perguntas ................................ ................................ ................................ ........... 255 Mais dicas sobre o kdialog................................ ................................ ................................ 268 Controlando aplicativos via DCOP................................ ................................ ..................... 275 Usando os servicemenus do KDE ................................ ................................ ...................... 278 Detectando hardware ................................ ................................ ................................ ...... 284 Alterando arquivos de configurao ................................ ................................ ................. 288 Corrigindo erros ................................ ................................ ................................ ............... 293 Pacotes auto-instalveis ................................ ................................ ................................ ... 296 Mais exemplos teis ................................ ................................ ................................ ......... 297 Criando interfaces no Kommander ................................ ................................ ................... 302 Criando scripts para o hotplug................................ ................................ .......................... 328 Criando regras para o udev................................ ................................ ............................... 333 Captulo 5: Remasterizando o Kurumin e outros live-CDs................................ .................... 340 O bsico ................................ ................................ ................................ ........................... 341 Extraindo................................ ................................ ................................ .......................... 344 Fechando a nova imagem................................ ................................ ................................ . 348 Personalizando o KDE e programas................................ ................................ ................... 352 Scripts de inicializao ................................ ................................ ................................ ...... 355 Mudando a lingua padro e traduzindo as mensagens de boot ................................ ......... 359 Mudando o usurio padro................................ ................................ .............................. 360 Criando um DVD de recuperao................................ ................................ ...................... 360 Criando seus prprios pacotes .deb................................ ................................ .................. 364

PrefcioAs distribuies Linux esto de um modo geral se tornando muito fceis de usar, at mesmo mais fceis de usar que o Windows em algumas reas. Mas isso acaba deixando umgosto amargo na boca. Afinal, onde est o desafio? Em outros casos as coisas no funcionam to bem assim e o gosto amargo fica por conta do modem, webcam, placa 3D ou placa wireless que no est funcionando ou outro problema qualquer, que no pode ser solucionado usando as ferramentas grficas. Este livro uma coleo de dicas que ensinam a configurar e corrigir problemas "na unha", manipulando diretamente os arquivos de configurao e mdulos do sistema, sem depender de nenhum configurador, escrever shell scripts, instalar drivers manualmente e dominar ferramentas de diagnstico e recuperao do sistema. ideal para quem gosta de fuar e quer entender melhor como o sistema funciona internamente, editando arquivos de configurao, compilando mdulos e escr evendo scripts. Nesta segunda edio, o livro recebeu uma grande quantidade de atualizaes em todos os captulos e muitas das dicas antigas foram substitudas por novas. O captulo sobre shell script foi expandido, trazendo mais informaes sobre o desenvolvimento de scripts grficos, ferramentas de configurao e tambm scripts e regras para o hotplug e udev, que permitem abrir programas e executar tarefas diversas quando novos dispositivos so plugados na mquina. Foi includo tambm um novo captulo, que ensina a desenvolver novas distribuies ou solues baseadas no Kurumin e outros live-CDs derivados do Knoppix, que permitem colocar em prtica as dicas aprendidas no restante do livro. Por ser escrito em uma linguagem simples e didtica e com um nvel crescente de dificuldade, este livro indicado tanto para usurios avanados, quanto iniciantes que desejam compreender mais profundamente o sistema.

Captulo 1: Entendendo a estrutura do sistemaOs primeiros sistemas Unix foram desenvolvidos na dcada de 70, com o objetivo de serem robustos, simples e utilizarem pouca memria, de forma a rodarem com um bom desempenho nos computadores limitados da poca. Porm, por serem desenvolvidos tendo em mente os administradores de sistema, que sempre possuam bons conhecimentos, nem sempre a facilidade de uso era uma prioridade.

O Linux pode ser considerado um sistema Unix, que conserva muitas das caractersticas dos sistemas originais. Para quem vem do Windows, a organizao das pastas, a instalao de novos programas e o uso dos arquivos de configurao parece algo esotrico. Mas no fundo as coisas no so to complicadas assim. Este captulo uma introduo estrutura do Linux, destinada ao pblico tcnico.

Como funciona o suporte a hardware no LinuxAs distribuies Linux sempre vm de fbrica com suporte a muitos dispositivos, em geral quase tudo detectado automaticamente. Os maiores problemas so, em geral, os softmodems que precisam ser instalados manualmente. O mesmo se aplica se voc tiver uma placa de vdeo da nVidia ou da ATI ou outros dispositivos (como vrias placas de rede wireless), cujos fabricantes disponibilizam drivers proprietrios. Mas, afinal, como a instalao destes drivers no Linux? Cad o assistente para a instalao de novo hardware? Onde que eu aponto a pasta onde esto os arquivos? Calma, vamos chegar l :-). O suporte a dispositivos no Linux feito atravs de "mdulos" includos no Kernel, arquivos que ficam dentro da pasta "/lib/modules/verso_do_kernel_usada/". Estes mdulos so a coisa mais parecida com um "driver" dentro da concepo que temos no Windows. Para ativar suporte a um certo dispositivo, voc precisa apenas carregar o mdulo referente a ele. Veja que os mdulos ficam organizados em pastas: a pasta "kernel/drivers/net/" contm drivers para placas de rede, a pasta "kernel/drivers/usb/" agrupa os que do suporte dispositivos USB e assim por diante. At o Kernel 2.4, os mdulos de Kernel utilizavam a extenso ".o", que uma extenso genrica para objetos em C. A partir do Kernel 2.6, passou a ser usada a extenso ".ko" (kernel object), que mais especfica. Quase sempre, os mdulos possuem nomes que do uma idia do dispositivo a que oferecem suporte. O "8139too.ko" d suporte s placas de rede com o chipset Realtek 8139, o "sis900.ko" d suporte s placas SiS 900, enquanto o "e100.ko" ativa as placas Intel E100.

Os mdulos podem ser carregados e descarregados a qualquer momento usando os comandos "modprobe" e "modprobe -r"; no apenas na inicializao do sistema. Existe tambm o comando "insmod", mais antigo, que tambm permite carregar mdulos. A diferena entre o "insmod" e o "modprobe" que o modprobe carrega apenas mdulos j instalados, junto com todas as dependncias, ou seja, outros mdulos de que o primeiro precise para funcionar. Se voc tentar carregar o mdulo "usb-storage" (que d suporte a pendrives e HDs USB), vai perceber que sero carregados tambm os mdulos "usbcore" e "ehci-hcd". O "insmod" muito menos inteligente, carrega apenas o mdulo solicitado, retornando um erro caso ele precise de outros. A nica vantagem que ele permite carregar mdulos a partir de qualquer pasta, permitindo que voc teste um mdulo que acabou de compilar, ou que gravou num pendrive, por exemplo. Os mdulos so gerados durante a compilao do Kernel. Voc no precisa se preocupar com isso se no quiser, pois as distribuies quase sempre incluem verses bem completas do Kernel por padro. Mas, de qualquer forma, existe sempre a possibilidade de recompilar o Kernel, mexendo nas opes e ativando ou desativando os mdulos que quiser.

Voc pode incluir mdulos para todo tipo de dispositivos, de marcas e modelos diferentes. Eles no atrapalham em nada, pois apenas alguns deles (os que voc estiver usando no momento) ficaro carregados na memria. Estes mdulos geralmente so pequenos; um conjunto completo com os mdulos para todo tipo de dispositivos (que totalizam mais de mil arquivos no Kernel 2.6), normalmente ocupa de 40 a 50 MB no HD. Podemos dividir os drivers de dispositivo para o Linux em dois grupos. O primeiro o dos drivers de cdigo aberto, que podem tanto ser desenvolvidos pelos prprios fabricantes quanto por voluntrios em cantos remotos do mundo. Desenvolver drivers usando engenharia reversa sem ajuda dos fabricantes parece ser um passatempo bastante popular :-). Estes drivers open-source so includos diretamente no Kernel, o que faz com que sejam includos diretamente nas distribuies e voc no precise se preocupar muito com eles. Sua placa funciona e todo mundo fica feliz. A segunda categoria a dos drivers proprietrios, de cdigo fechado, que so desenvolvidos pelos prprios fabricantes. Em alguns casos os drivers so de livre distribuio e tambm podem ser includos diretamente nas distribuies. Em outros, voc mesmo precisar baixar e instalar o driver. aqui que entram os drivers para softmodems, para muitas placas wireless e tambm os drivers para placas 3D da nVidia e da ATI. A psicologia para lidar com eles a seguinte: instalar um destes drivers envolve duas tarefas: baixar e instalar o mdulo propriamente dito e criar um "dispositivo" (device), um atalho que aponta para o endereo de hardware usado por ele. Ao instalar um modem Lucent, por exemplo, criado um dispositivo "/dev/ttyLT0" por ondeo modem acessado. Para facilitar esta tarefa, geralmente os drivers vm com algum tipo de instalador, geralmente um script simples de modo texto que cuida disso para voc. Os mdulos so parte integrante do Kernel, por isso os mdulos para uma determina da distribuio no funcionam em outra, a menos que por uma grande coincidncia as duas

utilizem exatamente a mesma verso do Kernel. Isso bastante improvvel j que o Kernel do Linux atualizado quase que diariamente. Se voc usar uma distribuio popular, Mandriva, Fedora, SuSE, etc., possvel que voc encontre um driver pr-compilado para download (que pode ser encontrado com a ajuda do Google ;). Neste caso, voc s vai precisar instalar um pacote RPM ou executar um arquivo de instalao. Em outras situaes, voc encontrar apenas um arquivo genrico ainda no compilado, contendo um instalador que se encarrega de compilar um mdulo sob medida para o Kernel em uso. Como ele no tem como adivinhar qual distribuio ou Kernel voc est utilizando, necessrio ter instalados dois pacotes que acompanham qualquer distribuio:kernel-source e kernel-headers. No Mandriva, por exemplo, voc pode instal-los usando os comandos: # urpmi kernel-source # urpmi kernel-headers Naturalmente, para que ele possa compilar qualquer coisa, voc precisar tambm de um compilador, o gcc, que tambm acompanha as distribuies. Se voc tiver estas trs coisas, vai conseguir instalar qualquer driver sem maiores problemas, basta seguir as instrues na pgina de download ou no arquivo INSTALL ou README dentro do pacote. Uma grande parte deste livro justamente dedicada a falar sobre a instalao destes drivers difceis, abordando tambm os problemas de instalao mais comuns. Um lembrete importante sobre a nomenclatura adotada neste livro e em outros tipos de documentao que a cerquilha (#) no incio do comando indica que ele deve ser executado como root, o que necessrio ao instalar programas e editar arquivos de configurao. Os comandos com um dlar ($) por sua vez devem ser executados usando uma conta de usurio. Lembre-se de que, em qualquer distribuio, voc pode usar o comando "su" (seguido da senha) para virar root. No caso do Ubuntu, alm do Kurumin e outras distribuies derivadas do Knoppix, voc pode usar tambm o "sudo".

Os componentes do sistemaTodas as coisas grandes comeam pequenas e com o Linux no foi diferente. Para entender melhor os componentes que formam o sistema, nada melhor do que falar um pouco sobre a histria do Linux, sobre como e por que eles foram introduzidos, e entender o processo de inicializao do sistema.

KernelTudo comeou em 1991, com a primeira verso do Kernel disponibilizada por Linus Torvalds. O "Freax" (renomeado para "Linux" pelo responsvel pelo FTP onde o arquivo foi disponibilizado, uma alma sbia e caridosa :) ainda estava na verso 0.02 e era um sistema monoltico, um grande bloco de cdigo que, alm do ncleo do sistema, continha drivers de dispositivos e tudo mais.

Para compilar o cdigo fonte do Kernel, era necessrio usar o Minix, outro sistema baseado em Unix que na poca era bastante popular entre os estudantes. Voc comeava compilando o Kernel e em seguida algumas ferramentas bsicas como o gerenciador de boot, o bash (o interpretador de comandos) e o gcc (o compilador). A partir de um certo ponto, voc podia dar boot no prprio Linux e compilar os demais programas a partir dele mesmo. Os primeiros aplicativos a rodarem sobre o Linux foram justamente ferramentas de desenvolvimento, como o Emacs, e emuladores de terminal, usados para acessar outras mquinas Unix remotamente. Nesta poca comearam a surgir as primeiras "distribuies" Linux, na forma de projetos amadores, onde algum gravava o sistema compilado em um conjunto de disquetes e tirava cpias para os amigos. Este procedimento de usar outro sistema operacional instalado para compilar uma instalao do Linux de certa forma usada at hoje para gerar verses do sistema destinadas a serem usadas em dispositivos embarcados, como palms e celulares. Neles voc usa uma cpia do Linux instalada num PC para "montar" o sistema que vai rodar no dispositivo, compilando primeiro o Kernel e depois os demais aplicativos necessrios, deixando para finalmente transferir para o dispositivo no final do processo. Isto chamado de "cross-compiling". Atualmente o Kernel, junto com vrios aplicativos, pode ser compilado para rodar em vrias plataformas diferentes. O cdigo fonte do Kernel, disponvel no http://kernel.org (e diversos mirrors), inclui o cdigo necessrio para gerar um Kernel para qualquer arquitetura suportada. Na verdade, quase 95% do cdigo Kernel independente da arquitetura, por isso portar o Kernel para uma nova plataforma um trabalho relativamente simples (pelo menos se levarmos em conta a complexidade do cdigo envolvido). As partes que mudam de uma arquitetura a outra so organizadas na pasta "/usr/src/linux/arch/". Ainda assim, e um trabalho complexo e tedioso, muitas coisas precisam ser ajustadas e necessrio encontrar programas especficos, que se ajustem configurao de hardware da plataforma alvo. Voc pode rodar Linux num celular com 2 MB de memria, mas com certeza no vai conseguir rodar o Firefox nele. Vai precisar encontrar um navegador mais leve, que rode confortavelmente com pouca memria e a tela minscula do aparelho. Aqui temos um screenshot do Familiar, uma distribuio Linux para o Ipaq, que pode ser instalado em substituio ao Pocket PC Windows, que vem originalmente instalado. Veja que ele bem diferente das distribuies para micros PC:

Voc pode entender melhor sobre como isto funciona instalando o "Linux from Scratch", uma distribuio Linux que pode ser toda compilada manualmente a partir dos pacotes com cdigo fonte, disponvel no: http://www.linuxfromscratch.org/. Voltando histria, no incio o projeto ainda no tinha muita utilidade prtica. O conjunto de aplicativos que rodava no sistema era pequeno. Era muito mais fcil usar o Minix, ou, se voc tivesse condies financeiras, uma verso comercial do Unix, como o SunOS, que mais tarde deu origem ao Solaris e ao OpenSolaris. O que fez com que o Linux crescesse at o ponto em que est hoje foi principalmente o fato de no apenas o cdigo fonte do sistema ser aberto e estar disponvel, mas tambm a forma aberta como o sistema foi desenvolvido desde o incio. normal encontrar muitos problemas e deficincias ao tentar usar um software em estgio primrio de desenvolvimento. Se voc for um programador, vai acabar dando uma olhada no cdigo e fazendo algumas modificaes. Se voc estiver desenvolvendo algum projeto parecido, provvel que voc resolva aproveitar algumas idias e pedaos de cdigo para implementar alguma nova funo e assim por diante. No caso do Linux, estas modificaes eram bem-vindas e acabavam sendo includas no sistema muito rapidamente. Isto criou uma comunidade bastante ativa, gente usando o sistema nos mais diversos ambientes e ajudando a torn-lo adequado para todo tipo de tarefa. Inicialmente era tudo um grande hobby. Mas logo o sistema comeou a ficar maduro o suficiente para concorrer com as vrias verses do Unix e, mais tarde, tambm com o Windows, inicialmente nos servidores, depois nos dispositivos embarcados e finalmente no desktop. Com isso, mesmo grandes empresas como a IBM e a Novell comearam a contribuir

com o desenvolvimento do Kernel, a fim de tornar o sistema mais robusto e adicionar recursos necessrios para uso em diversas tarefas. Este modelo diferente do adotado pela Microsoft, por exemplo, que vende caixinhas do Windows e Office. Estas empresas ganham mais vendendo solues, onde fornecido um pacote, com o sistema operacional, aplicativos, suporte e garantias. Neste caso, faz sentido contribuir para a construo de uma base comum (o Kernel) pois, no final, sai muito mais barato do que investir em um sistema prprio. A partir desta base comum, as empresas podem diferenciar-se das demais investindo nos outros componentes do pacote. Usar Linux acaba virando ento uma questo de competitividade: outra empresa que resolvesse desenvolver um sistema prprio sairia em desvantagem, pois precisaria investir muito tempo e dinheiro para chegar no mesmo nvel dos outros.

Originalmente, o termo "Linux" era usado especificamente com relao ao Kernel desenvolvido por Linus Torvalds. Mas, hoje em dia, mais comum nos referirmos plataforma como um todo, incluindo o Kernel, ferramentas e aplicativos. Muitos dos aplicativos que usamos hoje no Linux vieram de outras verses do Unix e este fluxo continua at hoje, nos dois sentidos. O Kernel a base do sistema. Ele controla o acesso memria, ao HD e demais componentes do micro, dividindo os recursos disponveis entre os programas. Todos os demais programas, desde os aplicativos de linha de comando, at os aplicativos grficos rodam sobre o Kernel. Imagine, por exemplo, que voc est desenvolvendo um aplicativo de edio de udio. Voc precisa incluir no seu programa vrias funes de edio, filtros e assim por diante. Mas, voc no precisa se preocupar diretamente em oferecer suporte aos diferentes modelos de placas de som que temos no mercado, pois o Kernel cuida disso. Ao tocar um arquivo de udio qualquer, o seu programa precisa apenas m andar o fluxo de udio para o device "/dev/dsp". O Kernel recebe o fluxo de udio e se encarrega de envi-lo placa de som. Quando preciso ajustar o volume, seu programa acessa o dispositivo "/dev/mixer", e assim por diante. Naturalmente, uma Sound Blaster Live e uma placa AC'97 onboard, por exemplo, oferecem conjuntos diferentes de recursos e se comunicam com o sistema de uma forma particular, ou seja, falam lnguas diferentes. Por isso o Kernel inclui vrios intrpretes, os drivers de dispositivo. Driver em ingls significa "motorista" ou, "controlador". Cada chipset de placa de som, vdeo, rede ou modem possui um driver prprio. Podemos dizer que os mdulos so as partes do Kernel mais intimamente ligadas ao hardware. Os mdulos so as partes do Kernel que mudam de mquina para mquina. Depois vem o bloco principal, "genrico" do Kernel.

Sobre ele roda o shell, o interpretador de comandos responsvel por executar os aplicativos de modo texto e servidores, como o Samba e o Apache. Estes aplicativos so independentes do modo grfico, voc no precisa manter o X aberto para instalar e configurar um servidor Samba, por exemplo, embora as ferramentas grficas possam ajudar bastante na etapa de configurao. Quando voc executa o comando "cat arquivo.txt", por exemplo, o bash entende que deve usar o programa "cat" para ler o "arquivo.txt". O Kernel oferece uma srie de servios e comandos que podem ser usados pelos aplicativos. Neste caso, o bash d a ordem para que o executvel "cat", junto com o arquivo sejam carregados na memria. Para que isso acontea, o Kernel precisa ler os dois arquivos no HD e carreg-los na memria RAM. No processo so usadas chamadas de vrios mdulos diferentes, como o responsvel pelo acesso porta IDE onde o HD est conectado, o responsvel pelo sistema de arquivos em que o HD est formatado e o mdulo responsvel pelo suporte ao controlador de memria da placa-me. No caso de programas muito grandes, a memria RAM pode ficar lotada, obrigando o Kernel a usar o subsistema de memria virtual para gravar as informaes excedentes na partio swap. S depois de tudo isso que o "cat" pode ser executado e mostrar o contedo do arquivo na tela (usando mais um comando do Kernel, que aciona a placa de vdeo). Graas ao trabalho do Kernel, voc no precisa se preocupar com nada disso, apenas com os programas que precisa executar. Depois vem o X, o servidor grfico, responsvel por acessar a placa de vdeo e mostrar imagens no monitor. Ele serve como base para os aplicativos grficos, que podem ser divididos em duas categorias. Primeiro temos os gerenciadores, como o KDE e o Gnome, que so responsveis por gerenciar as janelas, mostrar a barra de tarefas e assim por diante. Eles servem como uma base para que voc possa abrir e controlar os demais aplicativos grficos.

Mesmo dentro do modo grfico, voc continua tendo acesso aos recursos do modo texto. Programas como o Xterm e o Konsole so usados para rodar uma instncia do bash dentro do

modo grfico, permitindo executar todos os aplicativos de linha de comando e scripts. Ou seja, o X roda com uma perna no Kernel e outra no interpretador de comandos.

MdulosComo vimos, uma das tarefas mais importantes do Kernel oferecer suporte ao hardware da mquina. No comeo, a questo era mais simples, pois no existiam perifricos USB, softmodems e muito menos placas wireless. O Kernel oferecia suporte apenas aos dispositivos mais essenciais, como HD, placa de vdeo e drive de disquetes. Com o tempo, foi sendo adicionado suporte a muitos outros dispositivos: placas de som, placas de rede, controladoras SCSI, e assim por diante. O fato do Kernel ser monoltico comeou a atrapalhar bastante. Voc podia escolher os componentes a ativar na hora de compilar o Kernel. Se voc habilitasse tudo, no teria problemas com nenhum dispositivo suportado, tudo iria funcionar facilmente. Mas, por outro lado, voc teria um Kernel gigantesco, que rodaria muito devagar no seu 486 com 8 MB de RAM. Se, por outro lado, voc compilasse um Kernel enxuto e esquecesse de habilitar o suporte a algum recurso necessrio, teria que recompilar tudo de novo para ativ-lo. Este problema foi resolvido durante o desenvolvimento do Kernel 2.0, atravs do suporte a mdulos. Os mdulos so peas independentes que podem ser ativadas ou desativadas com o sistema em uso. Do Kernel 2.2 em diante, quase tudo pode ser compilado como mdulo. Isso tornou as coisas muito mais prticas, pois passou ser possvel compilar um Kernel com suporte a quase tudo, com todas as partes no essenciais compiladas como mdulos. O Kernel em si um executvel pequeno, que consome pouca RAM e roda rpido, enquanto os mdulos ficam guardados numa pasta do HD at que voc precise deles. Voc podia carregar o mdulo para a SoundBlaster 16 (do 486 que voc usava na poca ;-) por exemplo, com um: # modprobe sb E descarreg-lo com um: # modprobe -r sb Esta idia dos mdulos deu to certo que usada at hoje e num nvel cada vez mais extremo. Para voc ter uma idia, no Kernel 2.6 at mesmo o suporte a teclado pode ser desativado ou compilado como mdulo, uma modificao que parece besteira num PC, mas que til para quem desenvolve verses para roteadores e outros dispositivos que realmente no possuem teclado.

As distribuies passaram ento a vir com verses do Kernel cada vez mais completas, incluindo em muitos casos um grande nmero de patches para adicionar suporte a ainda mais dispositivos, naturalmente quase tudo compilado como mdulos. Nas distribuies atuais, o hardware da mquina detectado durante a instalao e o sistema configurado para carregar os mdulos necessrios durante o boot. Isto pode ser feito de duas formas: 1- Os mdulos para ativar a placa de som, rede, modem e qualquer outro dispositivo "no essencial" so especificados no arquivo "/etc/modules". Programas de deteco, como o hotplug e o udev ficam de olho nas mensagens do Kernel e carregam mdulos adicionais conforme novos dispositivos (uma cmera digital USB, em modo de transferncia, por exemplo) so detectados. Sua placa de som seria ativada durante o boot atravs de um mdulo especificado no "/etc/modules", assim como o suporte genrico a dispositivos USB. Mas, o seu pendrive, que voc pluga e despluga toda hora ativado e desativado dinamicamente atravs da deteco feita pelo hotplug ou udev. A deteco de novos perifricos (principalmente ao usar o Kernel 2.6) muito simplificada graas ao prprio Kernel, que gera mensagens sempre que um novo dispositivo encontrado. Voc pode acompanhar este log rodando o comando "dmesg". Por exemplo, ao plugar um pendrive USB, voc ver algo como: usb 2-2: new high speed USB device using address scsi1 : SCSI emulation for USB Mass Storage devices Vendor: LG CNS Model: Rev: 1.00 Type: Direct-Access ANSI SCSI revision: 02 SCSI device sda: 249856 512-byte hdwr sectors (128 MB) sda: Write Protect is off sda: Mode Sense: 03 00 00 00 sda: assuming drive cache: write through sda: sda1 Attached scsi removable disk sda at scsi1, channel 0, id 0, lun 0 Attached scsi generic sg0 at scsi1, channel 0, id 0, lun 0, type 0 USB Mass Storage device found at 5 Veja que aqui esto quase todas as informaes referentes a ele. O fabricante (LG), o dispositivo pelo qual ele ser acessado pelo sistema (sda), a capacidade (128 MB) e at as parties existentes (neste caso uma nica partio, nomeada "sda1"). Um segundo arquivo, o "/etc/modules.conf" (ou "/etc/modprobe.conf", dependendo da distribuio usada), especifica opes e parmetros para os mdulos, quando necessrio. Este arquivo normalmente gerado automaticamente pelas ferramentas de deteco de hardware ou ao rodar o comando "update-modules", mas pode tambm ser editado manualmente, caso necessrio.

Outra pea importante o arquivo "/lib/modules/2.6.x/modules.dep", que guarda uma tabela com as dependncias dos mdulos, ou seja, de quais outros mdulos cada um precisa para ser carregado corretamente. Este ltimo arquivo gerado automaticamente ao rodar o comando "depmod -a". Em geral, este comando executado de forma automtica durante o boot, sempre que necessrio. O "2.6.x" neste caso corresponde verso do Kernel usado na sua mquina. 2- Se o suporte a algo essencial nas etapas iniciais do boot no est includo no Kernel, criado um initrd, uma imagem com os mdulos necessrios, que, diferentemente dos mdulos especificados no "/etc/modules", so carregados logo no incio do boot. O initrd guardado na pasta /boot, junto com o executvel principal do Kernel: o arquivo "vmlinuz". Imagine, por exemplo, que voc est usando uma distribuio onde o suporte ao si tema de s arquivos ReiserFS foi compilado como mdulo, mas quer instalar o sistema justamente numa partio ReiserFS. Isso gera um problema do tipo o ovo e a galinha, j que o sistema precisa do mdulo para acessar a partio, mas precisa de acesso partio para poder ler o mdulo. Para evitar este tipo de problema, o prprio instalador da distribuio, ao perceber que voc formatou a partio raiz em ReiserFS, vai se encarregar de gerar o arquivo initrd que, embora no seja obrigatrio ( possvel compilar tudo diretamente no Kernel), bastante usado.

Os processos de boot e os arquivos de inicializaoQuando voc liga o micro, o primeiro software que carregado o BIOS da placa-me, que faz a contagem da memria RAM, uma deteco rpida dos dispositivos instalados e por fim carrega o sistema operacional principal a partir do HD, CD-ROM, disquete, rede, ou o que quer que seja. Este procedimento inicial chamado de POST (Power-on self test) Seria bom se a funo do BIOS se limitasse a isso, mas na verdade ele continua residente, mesmo depois que o sistema operacional carregado. Na poca do MS-DOS era bem conhecida a diviso entre a memria real (os primeiros 640 KB da memria RAM) e a memria extendida (do primeiro MB em diante, englobando quase toda a memria instalada). O MS-DOS rodava em modo real, onde o processador trabalha simulando um 8088 (o processador usado no XT) que era capaz de acessar apenas 640 KB de memria. Mesmo os processadores modernos conservam este modo de operao, mas os sistemas operacionais atuais rodam inteiramente em modo protegido, onde so usados todos os recursos da mquina. O espao entre os primeiros 640 KB, onde termina a memria real, e os 1024 KB, onde comea a memria extendida, justamente reservado para o BIOS da placa-me. Ele originalmente gravado de forma compactada num chip de memria flash instalado na placa-me. Durante o processo de boot ele descompactado e copiado para este espao reservado (chamado de shadow RAM), onde fica disponvel.

O BIOS oferece funes prontas para acessar o HD, acionar recursos de gerenciamento de energia e muitas outras coisas. Mas, os sistemas operacionais quase no utilizam estas funes, pois existem muitas diferenas na forma como BIOS de diferentes placas-me trabalham e, em muitos casos, as funes simplesmente no funcionam ou produzem erros inesperados. Os fabricantes de placas-me disponibilizam upgrades de BIOS freqentemente para corrigir estes problemas, mas a maior parte dos usurios nem chega a procur-los, fazendo com que exista um enorme contingente de placas bugadas por a, com problemas no ACPI, DMA e outros recursos bsicos. Existe at mesmo um projeto para substituir o BIOS da placa-me por uma verso compacta do Kernel do Linux, que executa as mesmas funes, mas de uma forma mais confivel e flexvel. Voc pode obter mais informaes sobre ele no: http://www.linuxbios.org/. Outra tecnologia (j em uso) que substitui o BIOS o EFI (Extensible Firmware Interface), usada em placas-me para o Intel Itanium e tambm nos Macs com processadores Intel. O EFI utiliza uma arquitetura modular, bem mais limpa e eficiente, que permite o uso de mdulos personalizados para os dispositivos de cada-placa me, mantendo (opcionalmente) compatibilidade com o sistema antigo. No caso dos Macs, esta camada de compatibilidade desativada (de forma a dificultar a vida de quem pretende instalar Linux ou windows em dual boot com o MacOS) mas, no caso de placas avulsas, o EFI viria com o modo de compatibilidade ativado, permitindo rodar qualquer sistema. De qualquer forma, depois de fazer seu trabalho, o BIOS carrega o sistema operacional, lendo o primeiro setor do disco rgido o "Master Boot Record" (MBR), tambm conhecido como trilha zero ou trilha MBR. No MBR vai o gerenciador de boot. Os dois mais usados no Linux so o lilo e o grub. Na verdade, no MBR mesmo vai apenas um bootstrap, um pequeno software que instrui o BIOS a carregar o executvel do lilo ou grub em um ponto especfico do HD. O MBR propriamente dito ocupa um nico setor do HD (apenas 512 bytes), de modo que no possvel armazenar muita coisa diretamente nele. O gerenciador de boot utiliza os primeiros 446 bytes do MBR. Os 66 bytes restantes so usados para armazenar a tabela de parties, que guarda informaes sobre onde cada partio comea e termina. Alguns vrus, alm de acidentes em geral, podem danificar os dados armazenados na tabela de partio, fazendo com que parea que o HD foi formatado. Mas, na maioria dos casos, os dados continuam l. Mais adiante, veremos como fazer um backup da tabela de parties e restaur-la quando necessrio. Voltando ao tema inicial, o gerenciador de boot tem a funo de carregar o Kernel e, a partir dele, todo o restante do sistema. O lilo e o grub podem ser configurados ainda para carregar o

Windows ou outros sistemas instalados em dual boot. Muitas distribuies configuram isso automaticamente durante a instalao. Inicialmente, o Kernel um arquivo compactado e somente-leitura, o arquivo "/boot/vmlinuz". Ele descompactado em uma rea reservada da memria RAM e roda a partir da, aproveitando o fato de que a memria RAM muito mais rpida que o HD. Este executvel principal do Kernel nunca alterado durante o uso normal do sistema, ele muda apenas quando voc recompila o Kernel manualmente ou instala uma nova verso. Se voc prestou ateno quando citei a necessidade de usar um initrd quando a partio raiz do sistema est formatada num sistema de arquivos que no est compilado diretamente no Kernel, deve ter notado uma contradio aqui. Afinal o que est sendo feito at agora. Nem o BIOS, nem o lilo possuem suporte a ReiserFS e o Kernel precisa ser carregado antes que ele tenha a chance de carregar o initrd. E, alm do mais, para carregar o initrd, o prprio Kernel precisaria ler o arquivo dentro da partio. Isto tudo funciona porque tanto o BIOS quanto o lilo no procuram entender o sistema de arquivos em que o HD est formatado. Pode ser EXT2, ReiserFS, XFS, ou o que seja: para eles no faz diferena. Eles simplesmente lem os uns e zeros gravados numa rea especfica do HD e assim carregam o Kernel e o initrd. Eles no fazem alteraes nos dados gravados, por isso este "acesso direto" no traz possibilidade de danos s estruturas do sistema de arquivos. Depois de carregado, a primeira coisa que o Kernel faz montar a partio raiz, onde o sistema est instalado, inicialmente como somente-leitura. Neste estgio ele carrega o init, o software que inicia o boot normal do sistema, lendo os scripts de inicializao e carregando os mdulos e softwares especificados neles. O arquivo de configurao do init o "/etc/inittab". Ele geralmente o primeiro arquivo de configurao lido durante o boot. A principal tarefa dele carregar os demais scripts de inicializao, usados para carregar os demais componentes do sistema e fazer todas as operaes de checagem, necessrias durante o boot. No /etc/inittab do Debian por exemplo, voc ver a linha: # Boot-time system configuration/initialization script. si::sysinit:/etc/init.d/rcS Esta linha executa o script "/etc/init.d/rcS". Se voc examin-lo tambm, vai encontrar o seguinte: for i in /etc/rcS.d/S??* do ... $i start .... done

Os "..." indicam partes dos script que removi para deixar apenas as partes que interessam aqui. Estas linhas so um shell script, que vai executar os scripts dentro da pasta "/etc/rcS.d/". Esta pasta contm scripts que devem ser executados sempre, a cada boot, e so responsveis por etapas fundamentais do boot. Alguns exemplos de scripts e programas executados nesta etapa so: keymap.sh: Carrega o layout do teclado que ser usado no modo texto. Voc no gostaria de encontrar seu teclado com as teclas trocadas para o Russo quando precisar arrumar qualquer coisa no modo texto, no ? ;-), O KDE possui um configurador prprio, o kxkb, que configurado dentro do Painel de Controle. O layout usado pelo kxkb subscreve o configurado pelo keymap.sh dentro do KDE. checkroot.sh: Este script roda o fsck, reiserfsck ou outro programa adequado para verificar a estrutura da partio raiz (a partio onde o sistema est instalado), corrigindo erros causados por desligamentos incorretos do sistema. Este processo anlogo ao scandisk do Windows. S depois da verificao que a partio raiz passa a ser acessada em modo leitura e escrita. modutils: Este o script que l os arquivos "/etc/modules" e "/etc/modules.conf", ativando a placa de som, rede e todos os outros dispositivos de hardware "no essenciais", para os quais o suporte no foi habilitado diretamente no Kernel. Atualmente, a maioria das distribuies inclui alguma ferramenta de deteco de hardware, que executada a cada boot, fazendo com que o arquivo "/etc/modules" sirva apenas para especificar manualmente mdulos que ativem perifricos que no estejam sendo detectados automaticamente. checkfs.sh: Este script parecido com o checkroot.sh. Ele se destina a checar as demais parties do HD. mountall.sh: aqui que lido o arquivo "/etc/fstab" e as demais parties, unidades de rede, e tudo mais que estiver especificado nele ativado. Se voc estiver usando uma partio home separada ou um compartilhamento de rede via NFS para guardar arquivos, por exemplo, a partir deste ponto que eles ficaro disponveis. networking: Ativa a rede, carregando a configurao de IP, DNS, gateway, etc., ou obtendo a configurao via DHCP. A configurao da rede geralmente armazenada dentro da pasta "/etc/sysconfig/network-scripts/" ou no arquivo "/etc/network/interfaces", variando de acordo com a distribuio usada. De acordo com a distribuio usada, so carregados neste ponto outros servios, para ativar suporte a placas PCMCIA, placas ISA, ou outros tipos de hardware, ativar o suporte a compartilhamentos de rede e, assim por diante. possvel executar praticamente qualquer tipo de comando ou programa nesta etapa, justamente por isso os passos executados dur ante o boot mudam de distribuio para distribuio, de acordo com o que os desenvolvedores consideram mais adequado. A idia aqui apenas dar uma base, mostrando alguns passos essenciais que so sempre executados. Depois desta rodada inicial, so executados os scripts correspondentes ao runlevel padro do sistema, que configurado no "/etc/inittab", na linha:

# The default runlevel. id:5:initdefault: O nmero (5 no exemplo) indica o runlevel que ser usado, que pode ser um nmero de 1 a 5. Cada runlevel corresponde a uma pasta, com um conjunto diferente de scripts de inicializao. uma forma de ter vrios "profiles", para uso do sistema em diferentes situaes. A configurao mais comum a seguinte: Runlevel 1: Single user. um modo de recuperao onde nem o modo grfico, nem o suporte rede, nem qualquer outro servio "no essencial" carregado, de forma a minimizar a possibilidade de problemas. A idia que o sistema "d boot" para que voc possa corrigir o que est errado. Atualmente, uma forma mais prtica para corrigir problemas dar boot com uma distribuio em live-CD (como o Kurumin), onde voc tem acesso internet e vrios programas e, a partir dele, montar a partio onde o sistema est instalado e corrigir o problema. Runlevel 3: Boot em modo texto. Neste modo todos os servios so carregados, com exceo do gerenciador de boot (KDM ou GDM), que responsvel por carregar o modo grfico. Este modo muito usado em servidores. Runlevel 5: o modo padro na maioria das distribuies, onde voc tem o sistema "completo", com modo grfico e todos os demais servios. Uma exceo importante o Slackware, onde o modo grfico carregado no runlevel 4. Usando o runlevel 5, so carregados os scripts dentro da pasta "/etc/rc5.d/", enquanto que, usando o runlevel 3, so carregados os scripts dentro da pasta "/etc/rc3.d/". Nada impede que voc modifique a organizao dos arquivos manualmente, de forma a fazer o X carregar tambm no runlevel 3, ou qualquer outra coisa que quiser. So apenas pastas com scripts e links simblicos dentro, nenhuma caixa preta.

Ativando e desativando serviosNas distribuies que seguem o padro do Debian, os executveis que iniciam os servios de sistema ficam todos dentro da pasta "/etc/init.d/". Para parar, iniciar ou reiniciar o servio ssh, por exemplo, use os comandos: # /etc/init.d/ssh start # /etc/init.d/ssh stop # /etc/init.d/ssh restart No Kurumin, Mandriva e algumas outras distribuies, existe o comando service, que facilita um pouco as coisas, permitindo que, ao invs de ter de digitar o caminho completo, voc possa controlar os servios atravs dos comandos:

# service ssh start # service ssh stop # service ssh restart Os scripts que esto na pasta "/etc/init.d/" servem para "chamar" os executveis dos servidores. Eles apenas fazem as verificaes necessrias e em seguida inicializam ou encerram os executveis propriamente ditos, que em geral esto na pasta "/usr/bin/" ou "/usr/sbin/". A pasta "/etc/init.d/" contm scripts para quase todos os servios que esto instalados no sistema. Quando voc instala o Samba pelo apt-get, por exemplo, criado o script "/etc/init.d/samba", mesmo que ele no exista anteriormente.

O que determina se o Samba ser executado ou no durante o boot no o script na pasta "/etc/init.d/", mas sim um link simblico criado dentro de uma das pastas de inicializao. Por padro, so executados primeiro os links que esto dentro da pasta "/etc/rcS.d/" e, em seguida, o que estiver dentro da pasta "/etc/rc5.d/" (caso o sistema esteja configurado para inicializar em runlevel 5, padro na maioria das distribuies) ou na pasta "/etc/rc3.d/" (runlevel 3).

Os nmeros antes dos nomes dos servios dentro da pasta "/etc/rc5.d/" determinam a ordem em que eles sero executados. Voc vai querer que o firewall seja sempre ativado antes do Samba por exemplo. O "S" (start) indica que o servio ser inicializado no boot. A partir da, o sistema vai inicializando um por vez, comeando com os servios com nmero mais baixo. Caso dois estejam com o mesmo nmero, eles so executados em ordem alfabtica. Para que um determinado servio pare de ser inicializado automaticamente no boot, basta deletar a entrada dentro da pasta, como em: # rm -f /etc/rc5.d/S20samba Para que o servio volte a ser inicializado voc deve criar novamente o link, apontando para o script na pasta /etc/init.d, como em: # cd /etc/rc5.d/ # ln -s ../init.d/samba S20samba ou: # ln -s ../init.d/ssh S21ssh Esta a forma "correta" de criar os links: acessando primeiro a pasta onde eles so criados e criando os links com as localizaes relativas. Se estamos na pasta "/etc/rc5.d" e criamos o link apontando para "../init.d/samba", significa que o sistema vai subir um nvel de diretrio (vai para o /etc) e em seguida acessa a pasta "init.d/". Nada impede que voc crie o link diretamente, como em: # ln -s /etc/init.d/ssh /etc/rc5.d/S21ssh Ele vai funcionar da mesma forma, mas ferramentas de configurao automtica, como o "update-rc.d" (do Debian), vo reclamar do "erro" ao atualizar ou remover o link. Este , na verdade, um daqueles casos em que precisamos contornar manualmente a falta de recursos da ferramenta.

Existe um utilitrio de modo texto, do Debian, que facilita esta tarefa, o rcconf, que pode ser instalado via apt-get. Chamando-o com a opo "--now", os servios marcados so inicializados imediatamente, caso contrrio ele apenas cria os links, de forma que eles fiquem ativos a partir do prximo boot. No Fedora, Mandriva e outras distribuies derivadas do Red Hat, voc pode ativar ou desativar a inicializao dos servios no boot usando o comando "chkconfig", como em: # chkconfig ssh on (ativa) # chkconfig ssh off (desativa)

Voc pode tambm usar o utilitrio "ntsysv" ou outro configurador disponvel. O Mandriva, por exemplo, inclui um painel de administrao de servios dentro do Mandriva Control Center. Muitas distribuies incluem o "services-admin", outro utilitrio grfico que faz parte do pacote "gnome-system-tools".

XDiferentemente do que temos no Windows, onde a interface grfica um componente essencial do sistema, no Linux o modo grfico uma camada independente. Temos um "servidor grfico", o famoso X que prov a infra-estrutura necessria. ele que controla o acesso placa de vdeo, l as teclas digitadas no teclado e os clicks do mouse e oferece todos os recursos necessrios para os programas criarem janelas e mostrarem contedo na tela. Se voc chamar o X sozinho, a partir do modo texto (o que pode ser feito com o comando " X" ou "X :2" caso voc queira abrir uma segunda seo do X), voc ver apenas uma tela cinza, com um X que representa o cursor do mouse. Ou seja, o X apenas uma base, ele sozinho no faz muita coisa. Se voc cham-lo com o comando "xinit" ou "xinit -- :2", voc j abrir junto uma janela de terminal, que poder ser usada para abrir programas. Porm, ao abrir qualquer programa grfico, voc perceber que algo est estranho. A janela do programa aberta, mas fica fixa na tela, voc no tem como minimiz-la, alternar para outra janela, nem nenhuma outra opo:

Isto acontece porque estas tarefas so controladas pelo gerenciador de janelas, que (em quase todas as distribuies) no carregado com o comando xinit. Existem vrios gerenciadores de janelas, como o KDE, Gnome, Window Maker, Fluxbox, IceWM e assim por diante. A idia que voc possa escolher qual lhe agrada mais.

Chamando o X atravs do comando "startx", ou configurando o sistema para carregar o X automaticamente durante a inicializao, finalmente carregamos o conjunto completo, com o X e algum gerenciador de janelas rodando sobre ele. O Xfree utiliza uma arquitetura cliente-servidor, onde o X em si atua como o servidor e os programas como clientes, que recebem dele os clicks do mouse e as teclas digitadas no teclado e enviam de volta as janelas a serem mostradas na tela. A grande vantagem deste sistema que alm de rodar programas localmente possvel rodar programas instalados em outras mquinas da rede. Existem vrias formas de fazer isto. Voc pode, por exemplo, abrir uma janela de terminal dentro do X, conectar-se outra mquina, via SSH e comear a chamar os programas desejados. Para isso, use o comando "ssh -X IP_da_maquina", como em: # ssh -X 192.168.0.1 O parmetro -X ativa a execuo de aplicativos grficos via SSH, que vem desativado por padro em algumas distribuies. Para usar o ssh, o servio "ssh" deve estar ativo na mquina que est sendo acessada. Outra opo usar o XDMCP, o protocolo nativo do X para obter a tela de login da mquina remota e a partir da carregar um gerenciador de janelas e rodar todos os programas via rede. Neste caso voc precisaria configurar a outra mquina para aceitar as conexes via XDMCP nos arquivos kdmrc e Xaccess, que vo dentro da pasta "/etc/kde3/kdm/" ou "/usr/share/config/kdm/kdmrc" (ao usar o KDM) ou no gdmsetup (ao usar o GDM) e inicializar o X com o comando "X :2 -query IP_da_maquina" no PC cliente, como em: # X :2 -query 192.168.0.1 Muita gente diz que este sistema cliente/servidor do X uma arquitetura ultrapassada, que responsvel por um desempenho ruim se comparado com outros sistemas operacionais, pois tudo teria que passar pela rede antes de ir para o monitor. Esta idia errada, pois, ao rodar localmente, o X se comunica diretamente com a placa de vdeo, usando todos os recursos de acelerao suportados. Entra a a questo do driver. Se voc tentar rodar um game 3D qualquer, antes de instalar os drivers 3D (da nVidia) para sua placa nVidia, por exemplo, ele vai rodar com um desempenho muito baixo, simplesmente porque os recursos 3D da placa no esto ativados. O driver open-source do X para placas nVidia (o driver "nv") oferece apenas suporte 2D. Algumas placas realmente no possuem ainda drivers 3D no X, como, por exemplo, a maior parte das placas onboard da SiS. Isto tem mais a ver com a boa vontade (ou falta desta) do fabricante em desenvolver drivers ou pelo menos disponibilizar as especificaes das placas. A SiS um dos fabricantes mais hostis, o que faz com que suas placas tenham um suporte ruim. Como sempre questo de pesquisar antes de comprar. Os comandos de atualizao das janelas e outros recursos usados so transmitidos pelo X atravs de uma interface de rede local (a famosa interface de loopback), o que num PC

moderno tem um overhead muito pequeno. Os problemas de desempenho em algumas placas esto mais relacionados qualidade dos drivers.

Gerenciador de loginAntigamente, era muito comum dar boot em modo texto e deixar para abrir o X manualmente rodando o comando "startx" apenas quando necessrio, pois o PCs eram lentos e o X s demorava para abrir. Atualmente, o mais comum usar um gerenciador de login, como o KDM (do KDE) ou o GDM (do Gnome). A funo do gerenciador de login carregar o X, mostrar uma tela de login grfica e, a partir dela, carregar o KDE, Gnome ou outro gerenciador de janelas escolhido. Em geral, as distribuies que usam o KDE como interface padro usam o KDM, enquanto as que usam o Gnome preferem o GDM. Isto tem a ver com o problema das bibliotecas: ao carregar apenas um programa baseado nas bibliotecas do KDE dentro do Gnome ou vice -versa, so carregadas todas as bibliotecas correspondentes, no h o que fazer. O programa demora mais para abrir, e no final, o sistema acaba consumindo muito mais memria. O gerenciador de login aberto como um servio de sistema, da mesma forma que o Apache e outros servidores. Voc pode parar o KDM e assim fechar o modo grfico usando o comando "/etc/init.d/kdm stop" e reabri-lo a partir do modo texto com o comando "/etc/init.d/kdm start". Como sempre, tudo aberto atravs de um conjunto de scripts. O KDM guarda a base das configuraes no arquivo "/etc/kde3/kdm/kdmrc" (ou "/usr/share/config/kdm/kdmrc", dependendo da distribuio) e coloca um conjunto de scripts de inicializao, um para cada interface instalada, dentro da pasta "/usr/share/apps/kdm/sessions/". A configurao do kdmrc serve para configurar as opes da tela de login, que vo desde opes cosmticas, at a opo de aceitar que outras mquinas da rede rodem aplicativos remotamente via XDMCP. Ao fazer login, executado o script correspondente interface escolhida. Ao usar o Fluxbox, por exemplo, executado o script "/usr/share/apps/kdm/sessions/fluxbox". At mesmo o comando startx um script, que geralmente vai na pasta "/usr/X11R6/bin/". Voc pode alter-lo para carregar o que quiser, mas normalmente ele carrega o gerenciador especificado no arquivo .xinitrc, dentro da pasta home do usurio.

Xfree e XorgAtualmente esto em uso no mundo Linux duas verses diferentes do X, oXfree e o X.org. O Xfree o projeto mais antigo e tradicional, o grupo que originalmente portou o X para o Linux, e foi o principal mantenedor do projeto desde ento. Com o passar do tempo, comearam a surgir crticas, principalmente direcionadas demora para incluir correes e atualizaes nos drivers existentes. Isto foi se agravando com o tempo, at que uma deciso dos desenvolvedores em fazer uma pequena mudana na licena em

vigor a partir do Xfree 4.4 foi a gota d'gua para que um consrcio formado por membros de vrias distribuies, desenvolvedores descontentes com o modo de desenvolvimento antigo, se juntassem para criar um fork do Xfree, o X.org. O X.org utilizou como base inicial a ltima verso de desenvolvimento da srie 4.3 do Xfree, disponibilizada antes da mudana da licena. Desde ento, foram includas muitas atualizaes e correes, como novos drivers e vrios recursos cosmticos, como, por exemplo, suporte a janelas transparentes. A pgina oficial a http://x.org. Inicialmente, as diferenas eram pequenas, mas depois de um certo tempo o X.org passou a concentrar a maior parte das atualizaes e novos drivers, sendo desenvolvido num ritmo muito mais rpido. A tendncia que ele substitua completamente o Xfree num futuro prximo. A partir da verso 7.0, o X.org passou a utilizar uma arquitetura modular, que visa facilitar o desenvolvimento de novos recursos, que podem ser integrados ao sistema na forma de mdulos, sem depender do aval prvio dos desenvolvedores do X.org. Esta mudana, que primeira vista parece simples, tem potencial para intensificar o desenvolvimento de forma radical. Para quem configura, a principal diferena est nos nomes do arquivo de configurao e utilitrios. As opes dentro do arquivo continuam as mesmas, incluindo os nomes dos drivers (radeon, nv, intel, sis, etc.) e possvel inclusive usar um arquivo de configurao de uma distribuio com o Xfree em outra (instalada na mesma mquina) com o X.org. Aqui vai uma pequena tabela com algumas diferenas: - Arquivo de configurao principal: /etc/X11/XF86Config-4 = /etc/X11/xorg.conf - Utilitrios de configurao: xf86cfg = xorgfg xf86config = xorgconfig possvel tambm eliminar estas diferenas criando um conjunto de links apontando para os nomes trocados. Assim o XF86Config-4 vira um link para o xorg.conf, por exemplo, fazendo com que usurios desavisados e at utilitrios de configurao consigam encontrar os arquivos sem muitos problemas.

A rvore genealgica das distribuiesPor causa da filosofia de cdigo aberto e compartilhamento de informaes que existe no mundo Linux, muito raro que uma nova distribuio seja desenvolvida do zero. Quase sempre as distribuies surgem como forks ou personalizaes de uma outra distribuio mais antiga e preservam a maior parte das caractersticas da distribuio original. Isso faz com que distribuies dentro da mesma linhagem conservem mais semelhanas do que diferenas entre si.

Das primeiras distribuies Linux, que surgiram entre 1991 e 1993, a nica que sobrevive at hoje o Slackware, que deu origem a algumas outras distribuies conhecidas, como o Vector, Slax e o College. O Slax um live-CD, desenvolvido para caber em um mini-CD; o Vector uma distribuio enxuta, otimizada para micros antigos, enquanto o College uma distribuio desenvolvida com foco no pblico estudantil, com o objetivo de ser fcil de usar. Os trs utilizam pacotes .tgz do Slackware e so quase sempre compatveis com os pacotes do Slackware da verso correspondente. Os utilitrios de configurao do Slackware, como o netconfig continuam disponveis, junto com vrios novos scripts que facilitam a configurao do sistema. O Vector, por exemplo, inclui o Vasm, uma ferramenta central de configurao. O Debian apareceu pouco depois e, ao longo dos anos, acabou dando origem a quase metade das distribuies atualmente em uso. Algumas, como o Knoppix e o Kurumin, continuam utilizando os pacotes dos repositrios Debian, apenas acrescentando novos pacotes e ferramentas, enquanto outras, como o Lycoris e o Ubuntu, utilizam repositrios separados, apenas parcialmente compatveis com os pacotes originais, mas sempre mantendo o uso do apt-get e a estrutura bsica do sistema. Embora o Debian no seja exatamente uma distribuio fcil de usar, o apt-get e o gigantesco nmero de pacotes disponveis nos repositrios formam uma base muito slida para o desenvolvimento de personalizaes e novas distribuies. Um dos principais destaques que, nas verses Testing e Unstable, o desenvolvimento do sistema contnuo e, mesmo no Stable, possvel atualizar de um release para outro sem reinstalar nem fazer muitas modificaes no sistema. Voc pode manter o sistema atualizado usando indefinidamente o comando "apt-get upgrade". Isso permite que os desenvolvedores de distribuies derivadas deixem o trabalho de atualizao dos pacotes para a equipe do Debian e se concentrem em adicionar novos recursos e corrigir problemas. Um dos exemplos de maior sucesso o Knoppix, que chega a ser um marco. Ele se tornou rapidamente uma das distribuies live-CD mais usadas e deu origem a um universo gigantesco de novas distribuies, incluindo o Kurumin. Uma coisa interessante que o Knoppix mantm a estrutura Debian quase intacta, o que fez com que instalar o Knoppix no HD acabasse tornando-se uma forma alternativa de instalar o Debian. Outro exemplo de sucesso o Ubuntu, uma verso do Debian destinada a iniciantes e a empresas, que rapidamente se transformou em umas das distribuies mais usadas no mundo. As distribuies derivadas do Knoppix muitas vezes vo alm, incluindo novos componentes que tornam o sistema mais adequado para usos especficos. O Kurumin inclui muitas personalizaes e scripts destinados a tornar o sistema mais fcil de usar e mais adequado para uso em desktop. O Kanotix inclui muitos patches no Kernel, com o objetivo de oferecer suporte a mais hardware e novos recursos, enquanto o Morphix usa uma estrutura modular, que acabou servindo de base para o desenvolvimento de mais uma safra de distribuies, j bisnetas do Debian.

Mais adiante, teremos um captulo dedicado a explicar o processo de personalizao do Kurumin e outros live-CDs derivados do Knoppix, permitindo que voc desenvolva suas prprias solues. Tanto o Debian quanto o Slackware so distribuies basicamente no comerciais. Mas isso no impede que distribuies como o Lycoris, Xandros e Linspire sejam desenvolvidas por empresas tradicionais, com fins lucrativos. Elas procuram se diferenciar das distribuies gratuitas, investindo em marketing e no desenvolvimento de ferramentas de configurao e facilidades em geral. Durante o livro, vou sempre citar muitos comandos que se aplicam ao Debian, lembre-se de que eles tambm se aplicam outras distribuies derivadas dele, como o Ubuntu, Kurumin e o Knoppix. A terceira distribuio "me" o Red Hat, que deu origem ao Mandrake e Conectiva (que mais tarde se juntaram, formando o atual Mandriva), Fedora e, mais recentemente, a um enorme conjunto de distribuies menores. As distribuies derivadas do Red Hat no utilizam um repositrio comum, como no caso do Debian, e nem mesmo um gerenciador de pacotes comum. Temos o yun do Fedora, o urpmi do Mandriva e tambm o prprio apt-get, portado pela equipe do Conectiva. Temos ainda vrios repositrios independentes, que complementam os repositrios oficiais das distribuies. As distribuies derivadas do Red Hat so, junto com o Debian e derivados, as mais usadas em servidores. O Fedora, Red Hat e SuSE possuem tambm uma penetrao relativamente grande nos desktops nas empresas, enquanto o Mandriva tem o maior pblico entre os usurios domsticos. Embora todas estas distribuies utilizem pacotes rpm, no existe garantia de compatibilidade entre os pacotes de diferentes distribuies. Os pacotes de uma verso recente do SuSE na maioria das vezes funcionam tambm numa verso equivalente do Mandriva, por exemplo, mas isto no uma regra. O Gentoo inaugurou uma nova linhagem trazendo uma abordagem diferente das demais distribuies para a questo da instalao de programas e instalao do sistema. Tradicionalmente, novos programas so instalados atravs de pacotes pr -compilados, que so basicamente arquivos compactados, contendo os executveis, bibliotecas e arquivos de configurao usados pelo programa. Estes pacotes so gerenciados pelo apt get, urpmi, yun ou outro gerenciador usado pela distribuio. Compilar programas a partir dos fontes quase sempre um ltimo recurso para instalar programas recentes, que ainda no possuem pacotes disponveis. O Gentoo utiliza o Portage, um gerenciador de pacotes que segue a idia dos ports do FreeBSD. Os pacotes no contm binrios, mas sim o cdigo fonte do programa, junto com um arquivo com parmetros que so usados na compilao. Voc pode ativar as otimizaes que quiser, mas o processo de compilao e instalao automtico. Voc pode instalar todo o KDE, por exemplo, com um "emerge kde". O Portage baixa os pacotes com os fontes (de forma similar ao apt-get), compila e instala.

O ponto positivo desta abordagem que voc pode compilar todo o sistema com otimizaes para o processador usado na sua mquina. Isso resulta em ganhos de 2 a5% na maior parte dos programas, mas pode chegar a 30% em alguns aplicativos especficos. A parte ruim que compilar programas grandes demora um bocado, mesmo em mquinas atuais. Instalar um sistema completo, com o X, KDE e OpenOffice demora um dia inteiro num Athlon 2800+ e pode tomar um final de semana numa mquina um pouco mais antiga. Voc pode usar o Portage tambm para atualizar todo sistema, usando os comandos "emerge sync && emerge -u world" de uma forma similar ao "apt-get upgrade" do Debian. Nas verses atuais do Gentoo, voc pode escolher entre diferentes modos de instalao. No stage 1 tudo compilado a partir dos fontes, incluindo o Kernel e as bibliotecas bsicas. No stage 2 instalado um sistema base pr-compilado e apenas os aplicativos so compilados. No stage 3 o sistema inteiro instalado a partir de pacotes pr-compilados, de forma similar a outras distribuies. A nica exceo fica por conta do Kernel, que sempre precisa ser compilado localmente, mesmo ao usar o stage 2 ou 3. O stage 1 naturalmente a instalao mais demorada, mas onde voc pode ativar otimizaes para todos os componentes do sistema. J existe um conjunto crescente de distribuies baseadas no Gentoo, como vrios live -CDs, com games e verses modificadas do sistema, alguns desenvolvidos pela equipe oficial, outros por colaboradores. Uma das primeiras distribuies a utilizar o Gentoo como base foi o Vidalinux. Embora seja uma das distribuies mais difceis, cuja instalao envolve mais trabalho manual, o Gentoo consegue ser popular entre os usurios avanados, o que acabou por criar uma grande comunidade de colaboradores em torno do projeto. Isto faz com que o Portage oferea um conjunto muito grande de pacotes, quase tantos quanto no apt-get do Debian, incluindo drivers para placas nVidia e ATI, entre outros drivers proprietrios, e exista uma grande quantidade de documentao disponvel, com textos quase sempre atualizados.

Captulo 2: Configurao, ferramentas e dicasA melhor forma de aprender sempre praticando, certo? Este captulo uma coleo de dicas sobre os arquivos de configurao, ferramentas e utilitrios teis, que tem o objetivo de aprofundar seus conhecimentos sobre o sistema. Os tpicos esto organizados por nvel de dificuldade.

Editando o /etc/fstabO arquivo "/etc/fstab" permite configurar o sistema para montar parties, CD-ROMs, disquetes e compartilhamentos de rede durante o boot. Cada linha responsvel por um ponto de montagem. atravs do "/etc/fstab" que o sistema capaz de acessar o seu CDROM, por exemplo. O fstab um dos arquivos essenciais para o funcionamento do sistema, por isso, antes de edit-lo, faa sempre uma cpia de segurana: # cp /etc/fstab /etc/fstab-original

O fstab um arquivo de texto simples, assim como a maior parte dos arquivos de configurao do sistema. Voc pode abri-lo usando qualquer editor de textos, mas sempre como root: # kedit /etc/fstab primeira vista o fstab parece ser mais um daqueles arquivos indecifrveis. Ele possui uma lgica prpria que parece um pouco complicada no incio, mas relativamente fcil de entender. Uma vez que voc entenda a sintaxe das opes, voc poder editar o fstab para adicionar um segundo drive de CD ou fazer com que um compartilhamento de rede seja montado automaticamente durante o boot, sem depender de configuradores automticos. Vamos comear dando uma olhada no "/etc/fstab" de uma mquina que est com o Kurumin instalado na partio hda2: # /etc/fstab: filesystem table. # filesystem mountpoint type options dump pass /dev/hda2 / reiserfs defaults 0 1 /dev/hda5 none swap sw 0 0 proc /proc proc defaults 0 0 /dev/fd0 /floppy vfat defaults,user,noauto,showexec,umask=022 0 0 /dev/cdrom /mnt/cdrom iso9660 defaults,ro,user,noexec,noauto 0 0 # parties encontradas pelo instalador: /dev/hda1 /mnt/hda1 reiserfs noauto,users,exec 0 0 /dev/hda2 /mnt/hda2 reiserfs noauto,users,exec 0 0 /dev/hda3 /mnt/hda3 reiserfs noauto,users,exec 0 0 /dev/hda6 /mnt/hda6 reiserfs noauto,users,exec 0 0 # Monta a partio /home, adicionado pelo instalador do Kurumin /dev/hda3 /home reiserfs notail 0 2 # Ativa o USB usbdevfs /proc/bus/usb usbdevfs defaults 0 0 Este o arquivo gerado automaticamente durante a instalao, por isso ele est um pouco sujo. Vamos comear entendo o que cada linha significa. Lembre-se de que as linhas comeadas com # no fazem nada, so apenas comentrios. /dev/hda2 / reiserfs defaults 0 1 Esta linha monta o diretrio raiz do sistema. No exemplo, o Kurumin est instalado na partio /dev/hda2 que est formatada em ReiserFS. O "/" o ponto de montagem, ou seja, onde esta partio fica acessvel. A barra indica que esta a partio raiz, onde o sistema est instalado. Se, por acaso, a partio estivesse formatada em outro sistema de arquivos, em EXT3, por exemplo, a linha ficaria: "/dev/hda2 / ext3 defaults 0 1". Os dois nmeros depois do "defaults" so instrues para programas externos.

O primeiro nmero usado pelo programa dump, que examina a partio em busca de arquivos modificados. Esta informao usada por alguns programas de backup, para decidir quais arquivos devem ser includos num backup incremental. O nmero 0 desativa e o nmero 1 ativa a checagem. O dump s trabalha em parties EXT2 ou EXT3, de forma que ao usar uma partio em ReiserFS ou XFS voc sempre deve usar o nmero 0. O segundo nmero (1 no exemplo) uma instruo para o fsck, encarregado de examinar os arquivos dentro da partio quando o sistema desligado incorretamente. Temos trs opes aqui: o nmero 0 desativa a checagem a cada boot (torna o boot um pouco mais rpido, mas no recomendvel), enquanto o nmero 1 faz com que a partio seja checada antes das demais. Usamos o nmero 1 apenas para a partio raiz, onde o sistema est instalado. Para as demais parties usamos o nmero 2 que indica que a partio deve ser checada, porm s depois da partio raiz. /dev/hda5 none swap sw 0 0 Esta segunda linha responsvel por ativar a memria swap, que no meu caso a partio /dev/hda5. Veja que o ponto de montagem para ela "none", pois a partio swap no montada em nenhuma pasta, ela serve apenas para uso interno do sistema. /dev/cdrom /mnt/cdrom iso9660 defaults,user,noauto 0 0 Esta linha habilita o drive de CD-ROM. O /dev/cdrom o dispositivo do CD-ROM, na verdade um link que criado durante a configurao inicial do sistema e aponta para a localizao correta do CD-ROM. De acordo com a porta em que o CD-ROM estiver instalado, o dispositivo real do CD-ROM pode ser: /dev/hdc: Um CD-ROM instalado como master na segunda porta IDE da placa-me. /dev/hdd: CD-ROM instalado como slave na segunda porta IDE /dev/sda ou /dev/sr0: Em distribuies que usam o Kernel 2.4, os gravadores de CD IDE so detectados pelo sistema como se fossem discos SCSI. Dependendo da distribuio eles podem ser detectados como "/dev/sda" ou "/dev/sr0". Caso voc tenha dois gravadores, o segundo reconhecido como "/dev/sdb" ou "/dev/sr1". No Kernel 2.6, no mais usada a emulao SCSI, de forma que os gravadores so acessados diretamente atravs dos dispositivos "/de v/hdc" ou "/dev/hdd". /dev/sr0 ou /dev/sr1: Leitores e gravadores de CD USB tambm so detectados como CDs SCSI. Ao plugar um drive externo ligado porta USB, ele ser detectado como "/dev/sr0" (ou "/dev/sr1", caso a primeira posio j esteja ocupada). No caso dos leitores e gravadores USB, no importa se est sendo usado o Kernel 2.4 ou 2.6. Para que os arquivos do CD-ROM fiquem acessveis, ele precisa ser montado em algum lugar. A prxima entrada da linha o "/mnt/cdrom", que indica a pasta onde ele fica acessvel. O

iso9660 o sistema de arquivos universalmente usado em CD-ROMs de dados, graas a ele que no existem problemas para ler o mesmo CD no Linux ou Windows. Em seguida temos trs opes: defaults,user,noauto. Elas fazem o seguinte: user: Permite que voc monte e desmonte o CD-ROM mesmo sem estar logado como root. noauto: faz com que o CD-ROM seja montado apenas quando voc for acess-lo e no automaticamente durante o boot, como no caso da partio raiz, por exemplo. Caso voc queira ativar um segundo drive de CD, adicionaria uma linha assim: /dev/hdd /mnt/cdrom1 iso9660 defaults,user,noauto 0 0 Veja que mudaram duas coisas: o dispositivo do CD-ROM (/dev/hdd) e a pasta onde ele fica acessvel (/mnt/cdrom1). Para acessar o segundo CD-ROM, voc digitaria "mount /mnt/cdrom1" O KDE oferece um recurso muito interessante que a possibilidade de montar e desmontar as entradas includas no /etc/fstab atravs de cones no desktop, como os usados para acessar as parties do HD ao rodar o Kurumin do CD. Para criar um destes cones, clique com o boto direito sobre a rea de trabalho e v em: "Criar novo", escolha "Disco rgido ou CD-ROM" e aponte a entrada do fstab referente a ele nas propriedades:

Para montar e acessar os arquivos, basta clicar sobre o cone e para desmontar, clique com o boto direito e escolha "desmontar".

A linha seguinte do arquivo serve para montar a partio home, que no exemplo foi colocada em uma partio separada: /dev/hda3 /home reiserfs notail 0 2 Traduzindo para o portugus, a linha diz: "Monte a partio /dev/hda3 no diretrio /home. Esta partio est formatada em reiserfs e voc deve usar a opo notail". O notail uma opo do sistema de arquivos ReiserFS, que melhora um pouco a velocidade de acesso ao trabalhar com arquivos grandes. Cada sistema de arquivos possui algumas opes extras, que podem ser usadas para melhorar o desempenho ou tolerncia a falhas em determinadas situaes. O parmetro "noatime", por exemplo, faz com que o sistema no atualize as propriedades dos arquivos conforme eles ao acessados (altera apenas quando eles so modificados). Ela melhora absurdamente o desempenho do sistema em algumas reas especficas, onde os mesmos arquivos so acessados continuamente, como nos servidores de banco de dados. muito comum combinar as duas opes, como em: /dev/hda3 /home reiserfs notail,noatime 0 2 Usar uma partio home separada permite que voc possa reinstalar o sistema sem perder seus arquivos e configuraes, o que especialmente interessante no caso do Kurumin e outras distribuies atualizadas freqentemente. Usando um diretrio home separado, as reinstalaes tornam-se mais transparentes. Voc ainda precisa reinstalar os programas, mas todas as configuraes dos aplicativos so preservadas. Cada programa armazena suas configuraes dentro de uma pasta oculta dentro do seu diretrio de usurio, como ".mozilla", ".kde", etc. Mesmo ao reinstalar o sistema, estas pastas so reconhecidas e as configuraes antigas preservadas. Basta tomar o cuidado d guardar e tambm todos os seus arquivos dentro do diretrio home e voc no perder quase nada ao reinstalar.

Continuando, temos as entradas para outras parties que foram encontradas pelo instalador: # parties encontradas pelo instalador: /dev/hda1 /mnt/hda1 reiserfs noauto,users,exec 0 0 /dev/hda2 /mnt/hda2 reiserfs noauto,users,exec 0 0 /dev/hda3 /mnt/hda3 reiserfs noauto,users,exec 0 0 /dev/hda6 /mnt/hda6 reiserfs noauto,users,exec 0 0 Veja que as parties "/dev/hda2" e "/dev/hda3" j esto sendo usadas, por isso as duas linhas referentes a elas so redundantes e podem ser removidas. As linhas para as outras duas parties, "/dev/hda1" (uma instalao do Mandriva) e "/dev/hda6" (uma partio de arquivos) esto com a opo "noauto", como no caso do CD-ROM, que faz com que elas sejam montadas apenas quando voc clica nos cones do desktop. Se voc preferir que elas sejam montadas automaticamente durante o boot, basta eliminar esta opo. Neste caso as linhas ficariam assim: /dev/hda1 /mnt/hda1 reiserfs users,exec 0 0 /dev/hda6 /mnt/hda6 reiserfs users,exec 0 0 Alm de montar as parties e CD-ROMs locais, o fstab pode ser configurado para montar tambm compartilhamentos de rede. Voc pode tanto configurar para que os compartilhamentos fiquem acessveis automaticamente durante o boot (no caso de um servidor que fique sempre ligado) ou mont-los atravs de cones no desktop, como no caso do CD-ROM. Para montar um compartilhamento de rede NFS, a linha seria: 192.168.0.1:/home/arquivos /mnt/arquivos nfs noauto,users,exec 0 0 Neste exemplo o "192.168.0.1:/home/arquivos" o IP do servidor, seguido pela pasta compartilhada e o "/mnt/arquivos" a pasta local onde este compartilhamento ficar acessvel. Voc pode incluir vrias linhas, caso deseje montar vrios compartilhamentos. Caso o servidor fique sempre ligado e voc queira que o compartilhamento seja montado automaticamente durante o boot, retire o "noauto", caso contrrio voc pode acessar o compartilhamento usando o comando: # mount /mnt/arquivos Para montar um compartilhamento de rede Windows ou de um servidor Linux rodando o Samba, a linha seria: //192.168.0.1/teste /home/teste smb noauto,user,username=maria,password=abcde 0 0 Veja que neste caso a sintaxe j um pouco mais complicada. Em primeiro lugar, a entrada que fala sobre o compartilhamento usa a sintaxe: "//ip_do_servidor/compartilhamento", por isso voc usa "//192.168.0.1/teste" e no "192.168.0.1:/teste" como seria num compartilhamento NFS.

Em seguida vem a pasta onde o compartilhamento ficar acessvel, "/home/teste" no exemplo. No se esquea de criar a pasta, caso no exista. O smb o nome do protocolo usado para acessar os compartilhamentos Windows da rede. Outra etapa importante colocar o usurio e senha que ser usado para acessar o compartilhamento, como em: "user,username=maria,password=abcde". Caso o compartilhamento no use senha (como os compartilhamentos do Windows 95/98), a linha fica mais simples: //192.168.0.1/arquivos /home/arquivos smb noauto,user 0 0 Assim como no caso do NFS, para montar o compartilhamento use o comando: # mount /home/arquivos Se preferir que ele seja montado durante o boot, basta retirar o "noauto". Neste caso a linha no fstab ficaria: //192.168.0.1/teste /home/teste smb user,username=maria,password=abcde 0 0 Ao colocar as senhas dos compartilhamentos de rede no "/etc/fstab" necessrio tomar uma precauo de segurana. Rode o comando: # chmod 600 /etc/fstab Isto far com que apenas o root possa ler o arquivo e conseqentemente ver as senhas. O default na maioria das distribuies 644, o que permite que os outros usurios da mquina possam ler o arquivo, uma grande brecha de segurana neste caso. Uma coisa que voc deve ter percebido que o KDE s oferece a opo de criar cones para montar parties, disquetes e CD-ROMs, mas no para criar cones para montar compartilhamentos de rede. Mas possvel criar os cones manualmente. Os cones do KDE, incluindo os do desktop e do iniciar, so arquivos de texto comuns, cujo nome termina com .desktop. Isto faz com que o KDE os veja como cones, e no simples arquivos de texto. Naturalmente estes arquivos possuem uma sintaxe especial, mas nada to exti