Linux, Entendendo o Sistema
Carlos E. Morimoto
Muita gente usa Windows sem utilizar nada muito além das funções básicas. Da mesma forma, muita gente usa Linux sem entender como o sistema funciona, sem saber como resolver problemas comuns e sem usar mais do que alguns dos programas pré-instalados. Até certo ponto, é mais difícil ensinar Linux, pois existem muitas distribuições diferentes, com conjuntos diferentes de programas e utilitários de configuração. Existem também as diferenças entre o KDE e o Gnome e as diferenças na instalação dos programas, só para citar alguns fatores. Mas, na minha opinião, não existe sistema difícil, existem livros e tutoriais mal escritos ;). Este é um livro dedicado a mostrar como o Linux funciona, que explica as diferenças entre as principais distribuições e se aprofunda em duas delas: O Kurumin e o Ubuntu. A maior parte das dicas também se aplicam ao Debian e a outras distribuições derivadas dele, dando-lhe uma boa base para utilizar também outras distribuições. Normalmente, os usuários Linux acabam adquirindo também conhecimentos sobre hardware, fundamentos sobre programação e outras áreas relacionadas. Isso acontece pois tradicionalmente as distribuições Linux sempre foram mais complicadas de usar, obrigando quem usa a resolver mais problemas e desenvolver mais habilidades. Hoje em dia isso não é mais correto em todos os casos. Já existem distribuições muito fáceis de usar, embora distribuições "difíceis" como o Debian (puro) e o Slackware ainda continuem bastante usadas. O caminho natural é começar usando o Kurumin, Slax, Knoppix ou outro live-CD e, a partir de um certo ponto, começar a testar as distribuições mais tradicionais. Um usuário Linux avançado conhece diversos programas e sabe trabalhar em diversas distribuições diferentes. Apesar de existirem muitas diferenças entre elas, os componentes do sistema continuam fundamentalmente os mesmos. Por isso, conhecendo as diferenças gerais, é possível dominar várias distribuições diferentes sem tanto esforço. Este é um livro para iniciantes, no sentido de que você não precisa de muitos conhecimentos prévios para acompanhá-lo, mas sem cair no erro de se limitar apenas a explicações superficiais. Este não é um livro que se destina a fazer propaganda ou mostrar como é fácil usar Linux, mas que mostra o sistema como ele é, lhe oferecendo uma curva acentuada de aprendizado. Ele começa do básico, explicando o básico sobre hardware, redes e programação, para depois abordar as diferenças entre as distribuições e os componentes básicos do sistema partindo em seguida para a parte prática. Uma das grandes preocupações é explicar de forma clara, lhe tratando como a pessoa inteligente que é.
Capitulo 1: Introdução O sistema operacional é o responsável por "dar vida" ao PC, fazer a placa de vídeo mandar imagens para o monitor, a placa de rede enviar e receber dados e assim por diante. Ele é o responsável por fazer as coisas funcionarem e rodar os programas da forma mais estável e rápida possível. Existem vários sistemas operacionais, que servem às mais diversas aplicações, de servidores a celulares. O Linux é um sistema livre, o que significa que ele não é desenvolvido por uma única empresa ou organização, ele é a soma dos esforços de uma comunidade mundial, que inclui tanto empresas quanto desenvolvedores autônomos. O código fonte é aberto, o que permite que qualquer interessado estude e modifique o sistema. Muitas destas melhorias acabam sendo incorporadas ao sistema principal, fazendo com que ele evolua muito rápido.
Um pouco sobre a história do Linux
Paralelamente à história da informática que conhecemos, com a IBM lançando seu IBM PC em 1981, o MS-DOS e as várias versões do Windows, existiram várias versões dos sistemas Unix, como o Solaris e o AIX que reinaram durante muito tempo nos servidores. Mas, o Windows foi o primeiro sistema operacional amigável e acessível, que o transformou numa espécie de opção default para micros domésticos. A Apple tinha o Mac OS, outro sistema amigável e superior ao Windows em muitos aspectos, mas que só rodava nos computadores produzidos pela própria Apple, muito mais caros que os PCs. Quem precisava de um sistema robusto e confiável para seus servidores optava por uma das várias versões do Unix, profissionais da área gráfica usavam Macs e o resto convivia com os problemas do Windows. O Linux surgiu de uma forma completamente despretensiosa, como o projeto de um estudante Finlandês. Muitos sistemas são desenvolvidos como projetos de conclusão de curso ou apenas por hobby. O que permitiu que o Linux se transformasse no que é foi uma grande combinação de fatores e alguma dose de sorte. Tudo começou em 1983, pouco depois que a IBM lançou seu primeiro PC e a Microsoft sua primeira versão do DOS. Richard Stallman criava a Free Software Fundation, que ao longo da década produziu a licença GNU e toda a base filosófica relacionada a ela e, mais importante, um conjunto de ferramentas, como o editor Emacs e o compilador GCC. O Emacs é um editor de texto que combina uma grande quantidade de recursos e ferramentas úteis para programadores. O GCC é o compilador que permite
transformar o código escrito nele em arquivos executáveis. A idéia era desenvolver um sistema operacional completo, mas para isso faltava a peça principal: o Kernel. Imagine o Kernel como o cérebro e o coração de um sistema operacional. Ele sozinho não serve para nada, mas sem ele o resto do corpo também não vai muito longe. Em 1991, a Free Software Fundation ainda estava dando os primeiros passos no desenvolvimento do Hurd (que ainda hoje está muito longe se ser concluído), enquanto o Linux de Linus Torvalds era utilizável desde suas primeiras versões. O corpo encontrava o cérebro. O fato do código fonte estar amplamente disponível e poder ser utilizado de forma muito liberal permitiu que muitos desenvolvedores passassem a trabalhar no sistema ainda em sua fase embrionária, adicionando novos recursos num ritmo muito rápido. Mas, durante os primeiros anos, o Linux ficou restrito a este círculo técnico, muito longe de ser usado em larga escala. Isso começou a mudar com o aparecimento da Internet. O Apache foi um dos primeiros servidores web a ser lançado e tornou-se rapidamente o mais usado numa época em que existiam poucos concorrentes à altura. O Apache rodava em várias plataformas, mas o Linux tornou-se a opção mais comum, por ser rápido e estável. Pouco tempo depois veio o servidor Samba, que permitia compartilhar arquivos numa rede Windows, de forma mais estável e mais barata que usando um servidor Windows. Novamente, o Linux tornou-se a opção preferida. Depois, vieram os bancos de dados e muitas outras aplicações, mas todas tinham algo em comum: sempre falávamos de servidores. Por volta do final de 1994 foi lançada a primeira versão for Linux do Xfree. Ele é um "servidor gráfico", uma interface gráfica usada em vários sistemas Unix. Antes do Xfree, o Linux tinha apenas a velha interface de modo texto, o que explicava o fato de ele ser popular apenas entre programadores e administradores de sistemas. Em 2004, o Xfree passou a ser gradualmente substituído pelo X.org. Uma coisa interessante sobre o X é que ele fornece a fase para o funcionamento da parte gráfica, incluindo o suporte à placa de vídeo e mouse, mas não inclui a interface em si. Graças a isso, não existe uma interface gráfica padrão como temos no Windows, por exemplo. Existem no Linux várias interfaces diferentes, conhecidas como gerenciadores de janelas. No início existiam muitas interfaces diferentes, mas nenhuma chegava próxima do nível de funcionalidade e integração que existe no Windows. Isto mudou com o aparecimento do KDE (que é a interface usada por padrão em diversas distribuições, incluindo o Mandriva, SuSE e o Kurumin) e mais tarde também com o Gnome.
Ainda por volta de 1994 começaram a surgir as primeiras distribuições Linux, que eram um jeito mais "fácil" de instalar o sistema. Ao invés de ficar compilando tudo, começando pelo Kernel e passando por todos os aplicativos da Free Software Fundation, Xfree e o que mais você pretendesse rodar, você simplesmente passava alguns dias editando arquivos de configuração com a ajuda de alguns manuais mal escritos. Para você ter uma idéia do tamanho da encrenca, uma das distribuições consideradas mais "amigáveis" na época era o Slackware, ainda em suas primeiras versões. Se você é algum saudosista desta época em que "homens eram homens e compilavam seus sistemas do zero", sinta-se livre para pesquisar no Google sobre o "Linux from Scratch", um passo a passo (com muitos passos...) que ensina como fazer isso. Pobres mortais como eu, possuem coisas mais urgentes e menos chatas a fazer... ;-). Uma distribuição é um conjunto com o Kernel e vários programas, empacotado de forma que seja fácil de instalar e manter atualizado. Uma das primeiras versões com foco na facilidade de uso foi o Red Hat, que serviu de base para um grande número de distribuições, como o Mandrake, SuSE e Conectiva. O Red Hat trouxe uma idéia nova, que foi rapidamente adotada em todas as outras distribuições: um sistema de gerenciamento de pacotes. Cada programa incluído era transformado num pacote compactado, que podia ser instalado através de um único comando. O sistema guardava as informações dos pacotes instalados permitindo que você pudesse removê-los depois. Não era tão amigável quanto
clicar num executável e ter um instalador gráfico e, existiam problemas com dependências (um pacote precisa do outro, que precisa do outro, que precisa do outro...), mas já era muito melhor que sair compilando as coisas na unha. Por volta de 1997 já existiam um conjunto de distribuições relativamente fáceis de usar, com sistemas de instalação relativamente simples, do tipo que um técnico médio consegue seguir sozinho com a ajuda do manual. Nesta época algumas empresas passaram a portar seus sistemas e utilizar o Linux como uma forma de reduzir seus custos com licenciamento e manutenção (imunidade a vírus, menos travamentos, menos reinstalações do sistema; quem já usou o Windows 3.11 ou o 95 sabe do que estou falando...). O Linux dava seus primeiros passos no desktop, mas ainda existiam poucos aplicativos que rivalizassem em recursos e facilidade de uso com os do Windows. Nos anos seguintes houve um crescimento espantoso. Aquele sistema feio, difícil de usar, famoso apenas por ser estável e bom para servidores ganhou o KDE e o Gnome, finalmente duas interfaces bonitas e fáceis de usar, ferramentas de configuração automática e um grande número de aplicativos, incluindo compatibilidade com alguns programas e jogos do Windows através do Wine, o que levou a um número cada vez maior de desenvolvedores e usuários. Ao contrário de um sistema comercial, com todo o planejamento e estruturas envolvidas, o Linux é desenvolvido de forma descentralizada. Qualquer um pode pegar o código de algum programa, adaptá-lo, acrescentar novos recursos e transformá-lo em algo diferente do original, com aplicações que o autor original não seria capaz de sequer sonhar. Isto cresce em escala geométrica, como uma bola de neve que vai crescendo e passando por cima de quem se atrever a oferecer resistência. A licença GPL, pode ser resumida em 4 direitos básicos e uma obrigação: 1- Você tem o direito de usar o programa para qualquer fim. Não existe discriminação. Um exemplo é que ninguém pode impedir que um programa GPL seja usado numa clínica de aborto ou numa instalação militar, por exemplo. 2- Você tem o direito de tirar cópias do programa, distribuí-las ou até mesmo vendê-las a quem tiver interesse. Existe a possibilidade de ganhar algum dinheiro vendendo CDs gravados, por exemplo, mas como todo mundo pode fazer a mesma coisa, é preciso vender por um preço relativamente baixo, cobrando pelo trabalho de gravação e não pelo software em si, que está largamente disponível. A forma mais eficiente de ganhar dinheiro com software livre é vender suporte e serviços de personalização sobre os programas e distribuições que você domina. Para o cliente acaba sendo vantajoso, pois o custo de implantação será o gasto com a consultoria e treinamentos, enquanto ao implantar um software comercial qualquer ele gastaria também com as licenças de uso. 3- Direito de ter acesso ao código fonte do programa, fazer alterações e redistribuílas. Para um programador este é o principal atrativo, pois você pode criar novos projetos usando como base o código fonte de programas já existentes ao invés de ter sempre que começar do zero, sem falar na grande oportunidade de aprendizado que examinar o código fonte dos programas disponíveis propicia. 4- Direito (e ao mesmo tempo a obrigação) de redistribuir as modificações feitas. Este é o ponto onde existem mais mal-entendidos. Se você desenvolve um software
por hobby, ou por usá-lo internamente na sua empresa, e não possui interesse em explorá-lo comercialmente, você pode simplesmente divulgar o código fonte para todo mundo, o que é o caminho mais lógico se você pretende atrair outros interessados em ajudá-lo no desenvolvimento. Mas, caso você pretenda receber pelo seu trabalho de desenvolvimento, existem duas opções: a) Você pode distribuir o software livremente para aumentar a base de usuários e ganhar vendendo suporte, treinamentos e personalizações ou: b) Você só é obrigado a distribuir o código fonte a quem obtém o software, de forma que você pode trabalhar batendo de porta a porta, vendendo o software para alguns clientes específicos e fornecendo o código fonte apenas para eles. Não existe nada de errado com este modelo, mas você perde a possibilidade de ter contribuições de outros desenvolvedores, o que pode ser ruim a longo prazo. 5- Os softwares distribuídos sob a GPL não "contaminam" softwares comerciais ou de outras licenças no caso de distribuição conjunta. Por exemplo, uma revista pode distribuir alguns softwares GPL no meio de um monte de aplicativos fechados na mesma edição. Os softwares GPL continuam sendo GPL, com todas regras que vimos acima, enquanto os softwares comerciais continuam sendo fechados. A revista deve incluir o código fonte dos aplicativos GPL (ou pelo menos a informação de como obtê-los via internet), mas naturalmente não precisa fazer o mesmo com os outros aplicativos incluídos no CD. Você pode também usar algum software GPL em conjunto com o seu aplicativo comercial, desenvolvendo um aplicativo qualquer que utiliza o Postgree SQL (um servidor de banco de dados), por exemplo. O Postgree SQL continua sendo GPL e o seu aplicativo continua sendo fechado; qualquer um pode usar e tirar cópias do Postgree SQL, mas você controla a distribuição do seu aplicativo. Uma coisa não interfere com a outra.
Um exemplo: desenvolvi o Kurumin usando como base dois projetos já existentes, o Knoppix e o Debian. O Knoppix entrou com sistema de detecção de hardware e configuração automática e o Debian com toda a base do sistema, como os pacotes e ferramentas de administração como o apt-get. Ao invés de ter que ficar compilando tudo, posso usar os pacotes do Debian que já estão prontos; e, ao invés de ficar desenvolvendo mais um ferramenta de detecção, posso usar o sistema do Knoppix que funciona extremamente bem. Como a parte funcional do sistema já está pronta, posso trabalhar personalizando o sistema, desenvolvendo scripts de instalação, ferramentas de configuração, adicionando novos recursos e corrigindo problemas. Começo do ponto aonde os outros já chegaram, aproveitando todo o esforço anterior. Quando alguém desenvolve um projeto derivado, uma outra distribuição Linux usando o Kurumin como base, como o Kalango ou o Dizinha, ganho novamente, pois posso utilizar as correções e novos recursos adicionados neles. Muitas pessoas que utilizam o Kurumin acabam contribuindo com soluções para problemas e melhorias diversas. Para eles é interessante fazer isso, pois os problemas são resolvidos nas novas versões, evitando que eles precisem ficar corrigindo manualmente os novos problemas indefinidamente.
O Linux hoje
Hoje em dia já existem ferramentas suficientes para desenvolver distribuições muito fáceis de usar. Quase toda a configuração do sistema pode ser feita de forma automática e não é mais necessário sequer instalar o sistema, pois ele pode rodar a partir do CD-ROM, como no caso do Kurumin. Existem ainda um grande número de distribuições especializadas, destinadas a públicos específicos: artistas gráficos, multimídia, escolas, servidores e assim por diante. A instalação de novos programas é mais simples na maioria dos casos, pois os programas são mais acessíveis. Você não precisa gastar um monte de dinheiro, ou ir até o camelô da esquina e depois ficar zanzando pelos sites de cracks (e pegar mais vírus...) para conseguir rodar sua cópia ilegal. Na maioria dos casos basta baixar o programa e instalar. Gerenciadores como o apt-get são capazes de baixar os pacotes da internet e fazer toda a instalação automaticamente, de forma bem mais simples que no Windows, onde você precisa comprar o CD com o programa, instalar, registrar e muitas vezes ainda perder tempo removendo spywares ou propagandas. Com exceção de aplicativos muito especializados, como o AutoCAD, Corel e Premier, existem boas alternativas para quase todas as áreas e existe suporte a programas nativos do Windows através do Wine (que devagar vai aumentando sua lista de compatibilidade) ou através do VMware, que aborda o problema de uma forma diferente, permitindo rodar uma cópia completa do Windows dentro de uma janela. Ainda existem deficiências, mas por outro lado também vários pontos em que o Linux já é mais forte. Existe ainda suporte à quase todo tipo de hardware: mesmo softmodems, scanners e câmeras digitais não são um problema se você pesquisar um pouco antes de comprar. Apesar de todos os progressos em termos de facilidade de uso, notícias sobre vírus, trojans e pragas em geral para Linux são raras, ao contrário do que vemos no mundo Windows. Você não precisa sacrificar o desempenho da sua máquina mantendo um antivírus ativo e atualizando-o religiosamente apenas para ser no final surpreendido pela última versão do vírus da moda que chegou por e-mail. É comum ouvir notícias de servidores Linux que estão ligados há vários anos, de forma contínua, sem nunca serem reiniciados ou invadidos. Ao usar um micro com componentes de boa qualidade, é possível ter uma amostra desta estabilidade mesmo num desktop. Uma instalação bem feita pode durar meses ou até anos. Mesmo muitas pessoas leigas, que usam o micro apenas para navegar e ler e-mails estão migrando para o Kurumin ou outras distribuições fáceis de usar, a fim de fugir dos travamentos e vírus. Como a filosofia Open Source privilegia a troca de informações e a cooperação, é fácil achar informações na web e, se você for educado, ajuda nos fóruns. Como em qualquer sociedade é possível encontrar todo tipo de pessoas, existem alguns grupos elitistas e gente mal-educada, mas em geral eles são as exceções, não a regra. Como usuário ou como desenvolvedor, você tem acesso a uma grande quantidade de informação e a chance de aprender mais. O foco deste livro é explicar a estrutura do sistema, mostrar os programas e ferramentas de instalação disponíveis e abordar em detalhes a instalação e
configuração. O objetivo é fornecer a base necessária para que você consiga trabalhar com várias distribuições. Neste livro abordo três distribuições: o Kurumin, que apesar de ser um projeto pessoal acabou se tornando uma das mais usadas no Brasil; o Ubuntu, outra distribuição com foco na facilidade de uso que vem crescendo rapidamente; e o Slax, uma distribuição derivada do Slackware, que é uma forma mais fácil e agradável de aprender a trabalhar com ele. Este é um livro para quem está interessado em entender como o sistema funciona, aproveitar melhor os muitos recursos disponíveis e aprender a resolver problemas. É um livro para iniciantes, mas que oferece uma curva acentuada de aprendizado abordando muitos aspectos avançados e macetes do sistema.
Como um PC funciona
Antes de começar a falar sobre as diferentes distribuições Linux, vamos começar com algumas noções básicas sobre como um PC atual funciona, para que você possa começar a entender melhor a coisa do ponto de vista do sistema operacional. Existem duas maneiras de representar uma informação: analogicamente ou digitalmente. Uma música é gravada numa fita K7 de forma analógica, codificada na forma de uma grande onda de sinais magnéticos, que pode assumir um número ilimitado de freqüências. Um som grave seria representado por um ponto mais baixo da onda, enquanto um ponto mais alto representaria um som agudo. O sistema digital, por sua vez, permite armazenar qualquer informação na forma de uma seqüência de valores positivos e negativos, ou seja, na forma de uns e zeros. O número 181, por exemplo, pode ser representado digitalmente como 10110101. Qualquer tipo de informação, seja um texto, uma imagem, um vídeo, um programa, ou qualquer outra coisa, será processado e armazenado pelo computador na forma de uma grande seqüência de uns e zeros. Os computadores são o exemplo claro do cúmulo da burrice, afinal eles só conhecem dois valores e precisam adaptar tudo a esta concepção limitada que possuem. Eles também não são capazes de tomar decisões por mais simples que sejam, pois um e zero não dão margem para interpretação. Um é um, zero é zero e ponto final. Sempre existe um ser humano orientando o computador e dizendo a ele o que fazer a cada passo. Seja você mesmo, teclando e usando o mouse, ou, num nível mais baixo, o programador que escreveu os programas que você está usando. Quando o computador trava significa justamente que chegou a uma situação onde ele não sabe o que fazer. O programador estava com sono e esqueceu de fechar alguma função ou de verificar alguma variável. Como disse, o computador não sabe lidar com situações inesperadas: quando não sabe o que fazer, simplesmente empaca. Sempre que alguém lhe disser que "não entende nada de computadores", explique que é impossível ser mais burro que eles. Lembre-se de que você é o ser pensante que está no comando.
Mas, por outro lado, é justamente o uso do sistema binário que torna os computadores confiáveis, pois a possibilidade de um valor 1 ser alterado para um valor 0, o oposto, é muito pequena. Lidando com apenas dois valores diferentes, a velocidade de processamento também torna-se maior, devido à simplicidade dos cálculos. Imagine que os computadores são os funcionários perfeitos: eles não se importam de ficar fazendo tarefas repetitivas por longos períodos, não reclamam de ficar trabalhando durante a madrugada baixando um arquivo ou compactando um vídeo, não tiram férias e ainda por cima não recebem salário! Tudo bem, eles travam de vez em quando, mas por outro lado fazem tudo o que você manda no resto do tempo :-P. Cada um ou zero que é processado ou armazenado é chamado de "bit", contração de "binary digit" ou "dígito binário". Um conjunto de 8 bits forma um byte, e um conjunto de 1024 bytes forma um Kilobyte (ou Kbyte). O número 1024 foi escolhido por ser a potência de 2 mais próxima de 1000. É mais fácil para os computadores trabalharem com múltiplos de dois do que usar o sistema decimal como nós. Seja compreensivo com as limitações de nossos pobres serviçais: lembre-se de que você é mais inteligente do que eles, então como todo ser superior é seu dever fazer algumas concessões de vez em quando ;). Um conjunto de 1024 Kbytes forma um Megabyte e um conjunto de 1024 Megabytes forma um Gigabyte. Os próximos múltiplos são o Terabyte (1024 Gibabytes) e o Petabyte (1024 Terabytes), Exabyte, Zetabyte e o Yotabyte, que equivale a 1,208,925,819,614,629,174,706,176 bytes :). Não se sabe se algum dia todos estes múltiplos chegarão a realmente ser usados. Para armazenar um Yottabyte inteiro, usando tecnologia atual, seria necessário construir uma estrutura colossal de servidores.
Imagine que, para manter os custos baixos, fosse adotada uma estratégia estilo Google, usando PCs comuns, com HDs IDE. Cada PC seria equipado com 4 HDs de 250 GB, o que resultaria em aproximadamente 1 Terabyte por PC. Estes PCs são então organizados em enormes racks, onde cada rack tem espaço para 1024 PCs. Os PCs de cada rack são ligados a um conjunto de switchs e cada grupo de switchs é ligado a um grande roteador. Uma vez ligados em rede, os 1024 PCs são configurados para atuar como um enorme cluster, trabalhando como se fossem um único sistema. Construímos então um enorme galpão, capaz de comportar 1024 destes racks, construindo uma malha de switchs e roteadores capaz de ligá-los em rede com um desempenho minimamente aceitável. Este galpão precisa de um sistema de refrigeração colossal, sem falar da energia consumida pelo mais de um milhão de PCs dentro dele, por isso construímos uma usina hidrelétrica para alimentá-lo, represando um rio próximo. Com tudo isso, conseguimos montar uma estrutura computacional capaz de armazenar 1 Exabyte. Ainda precisaríamos construir mais 1.048.575 megadatacenters como este para chegar a 1 Yottabyte. Se toda a humanidade se dividisse em grupos de 6.000 pessoas cada um e cada grupo fosse capaz de construir um ao longo de sua vida, deixando de lado outras necessidades existenciais, poderíamos chegar lá :-P. Voltando à realidade, usamos também os termos Kbit, Megabit e Gigabit, para representar conjuntos de 1024 bits. Como um byte corresponde a 8 bits, um Megabyte corresponde a 8 Megabits e assim por diante. Quando você compra uma placa de rede de "100 megabits" está na verdade levando para a casa uma placa que transmite 12.5 megabytes por segundo, pois cada byte tem 8 bits. Quando vamos abreviar, também existe diferença. Quando estamos falando de Kbytes ou Megabytes, abreviamos respectivamente como KB e MB, sempre com o B maiúsculo. Por outro lado, quando estamos falando de Kbits ou Megabits abreviamos da mesma forma, porém usando o B minúsculo: Kb, Mb e assim por diante. Parece só um daqueles detalhes sem importância, mas esta é uma fonte de muitas confusões. Se alguém anuncia no jornal que está vendendo uma "placa de rede de 1000 MB", está dando a entender que a placa trabalha a 8000 megabits e não a 1000. Você tem uma boa chance de ficar rico (e ter que fugir pouco tempo depois ;), anunciando pendrives de 4 Gb (Gigabits), pentes de memória de 8 Gb e HDs de 2000 Tb (Terabits), por preços pouca coisa maiores que os de 512 MB, 1 GB e 250 GB dos concorrentes :-p.
Os componentes básicos
Qualquer PC é composto pelos mesmos componentes básicos: processador, memória, HD, placa- mãe e placa de vídeo. A partir daí você pode adicionar placas de rede, modems, placas de som e outros periféricos. Com o micro montado, o próximo passo é instalar o sistema operacional e programas, que finalmente vão permitir que ele faça algo de útil. Vamos começar com um overview da função de cada um destes componentes:
Processador
O processador é o cérebro do sistema, encarregado de processar todas as informações. Ele também é o componente onde são usadas as tecnologias mais recentes. Existem no mundo apenas quatro grandes empresas com tecnologia para fabricar processadores competitivos para micros PC: a Intel (que domina mais de 70% do mercado), a AMD, Via (que comprou a antiga Cyrix e atualmente fabrica os chips Via C3 e C7) e a IBM, que fabrica processadores para outras empresas, como a Transmeta.
O processador é o componente mais complexo e freqüentemente o mais caro, mas ele não pode fazer nada sozinho. Como todo cérebro, ele precisa de um corpo, que é formado pelos outros componentes do micro, incluindo memória, HD, placa de vídeo e de rede, monitor, teclado e mouse. Dentro do mundo PC, tudo começou com o 8088, lançado pela Intel em 1979 e usado no primeiro PC, lançado pela IBM em 1981. Depois veio o 286, lançado em 1982, e o 386, lançado em 1985. O 386 pode ser considerado o primeiro processador moderno, pois foi o primeiro a incluir o conjunto de instruções básico, usado até os dias de hoje. O 486, que ainda faz parte das lembranças de muita gente que comprou seu primeiro computador foi lançado em 1989, mas ainda era comum encontrar micros com ele à venda até por volta de 1997. Depois entramos na era atual, inaugurada pelo Pentium, que foi lançado em 1993, mas demorou alguns anos para se popularizar e substituir os 486. Em 1997 foi lançado o Pentium MMX, que deu um último fôlego à plataforma. Depois, em 1997, veio o Pentium II, que usava um encaixe diferente e por isso era incompatível com as placas-mãe antigas. A AMD soube aproveitar a oportunidade, desenvolvendo o K6-2, um chip com uma arquitetura similar ao Pentium II, mas que era compatível com as placas antigas. A partir daí as coisas passaram a acontecer mais rápido. Em 1999 foi lançado o Pentium III e em 2000 o Pentium 4, que trouxe uma arquitetura bem diferente dos chips anteriores, otimizada para permitir o lançamento de processadores que trabalham a freqüências mais altas.
O último Pentium III trabalhava a 1.0 GHz, enquanto o Pentium 4 atingiu rapidamente os 2.0 GHz, depois 3 GHz e depois 4.0 GHz. O problema é que o Pentium 4 possui um desempenho por ciclo de clock inferior a outros processadores, o que faz com que a alta freqüência de operação sirva simplesmente para equilibrar as coisas. A primeira versão do Pentium 4 operava a 1.3 GHz e, mesmo assim, perdia para o Pentium III de 1.0 GHz em algumas aplicações. Quanto mais alta a freqüência do processador, mais ele esquenta e mais energia consome, o que acaba se tornando um grande problema. Em 2003 a Intel lançou o Pentium M, um chip derivado da antiga arquitetura do Pentium III, que consome pouca energia, esquenta pouco e mesmo assim oferece um excelente desempenho. Um Pentium M de 1.4 GHz chega a superar um Pentium 4 de 2.6 GHz em diversas aplicações. O Pentium M foi desenvolvido originalmente para ser usado em notebooks, mas se mostrou tão eficiente que a arquitetura está sendo adotado como base para o desenvolvimento dos futuros chips Intel, que combinarão dois ou quatro processadores no mesmo chip.
Paralelamente a todos estes processadores, temos o Celeron, uma versão mais barata, mas com um desempenho um pouco inferior, por ter menos cache. Na verdade, o Celeron não é uma família separada de chips, mas apenas um nome comercial usado nas versões mais baratas (com metade ou um quarto do cache) de vários processadores Intel. Existem Celerons baseados no Pentium II, no Pentium III, no Pentium 4 e agora no Pentium M. Para efeito de comparação, entre os chips antigos e os atuais, um 486 tinha cerca de 1 milhão de transistores e chegou a 133 MHz, enquanto o Pentium MMX tinha 4.3 milhões e chegou a 233 MHz. Um Pentium 4 (Prescott) tem 125 milhões e chega a 4.0 GHz. O transistor é a unidade básica do processador, capaz de processar um bit de cada vez. Mais transistores permitem que o processador processe mais instruções de cada vez enquanto a freqüência de operação determina quantos ciclos de processamento são executados por segundo. A AMD, por sua vez, começou produzindo processadores 386 e 486, muito similares aos da Intel, porém mais baratos. Quando a Intel lançou o Pentium, que exigia o uso de novas placas-mãe, a AMD lançou o "5x86", um 486 de 133 MHz, que foi bastante popular, servindo como uma opção barata de upgrade. Embora o "5x86" e o clock de 133 MHz dessem a entender que se tratava de um processador com um desempenho similar a um Pentium 133, o desempenho era muito inferior, mal concorrendo com um Pentium 66. Este foi o primeiro de uma série de exemplos, tanto do lado da AMD, quanto do lado da Intel, em que existiu uma diferença gritante entre o desempenho de dois processadores do mesmo clock. Embora seja um item importante, a freqüência de operação não é um indicador direto do desempenho do processador.
Uma analogia poderia ser feita em relação aos motores de carro. Os motores de 1.6 do final da década de 70, usados nas Brasílias e Fuscas, tinham 44 cavalos de potência, enquanto os motores 1.0 atuais chegam a mais de 70 cavalos. Além da capacidade cúbica, existem muitos outros fatores, como a eficiência do sistema de injeção de ar e combustível, taxa de compressão, refrigeração, etc. Depois do 5x68 a AMD lançou o K5, um processador similar ao Pentium, mas que não fez tanto sucesso. Ele foi seguido pelo K6 e mais tarde pelo K6-2, que novamente fez bastante sucesso, como uma opção barata, e ao mesmo tempo como uma opção de upgrade para quem tinha um Pentium ou Pentium MMX. Esta era do K6-2 foi uma época negra da informática, não pelo processador em si (que excluindo o desempenho em jogos, tinha um bom custo-benefício), mas pelas placas-mãe baratas que inundaram o mercado. Aproveitando o baixo custo do processador, os fabricantes passaram a desenvolver placas cada vez mais baratas (e de qualidade cada vez pior) para vender mais oferecendo PCs de baixo custo. A época foi marcada por aberrações. Um certo fabricante chegou a lançar uma família de placas sem cache L2, que pifavam em média depois de um ano de uso. As coisas voltaram aos trilhos com o Athlon, que foi o primeiro grande processador (tanto em desempenho, quanto em tamanho :) da AMD. A primeira versão usava um formato de cartucho (slot), similar ao Pentium II, mas incompatível com as placas para ele. Ele foi sucedido pelo Athlon Thunderbird, que passou a usar o formato de soquete utilizado até os dias de hoje pelo Sempron.
Competindo com o Celeron, a AMD produziu o Duron, um processador de baixo custo, idêntico ao Athlon, mas com menos cache. Em 2005 o Athlon foi descontinuado e o cargo herdado pelo Sempron, uma versão aperfeiçoada do Duron (com mais cache e capaz de atingir freqüências mais altas), que passou a ser vendido segundo um índice de desempenho (em relação ao Pentium 4) e não mais segundo o clock real. Por volta de 2000, surgiram as primeiras notícias do "SledgeHammer", um processador de 64 bits, que foi finalmente lançado em versão doméstica na forma do Athlon 64, que passou a ser o topo de linha da AMD. Apesar das mudanças internas, o Athlon 64 continua sendo compatível com os programas de 32 bits, da mesma forma que os processadores atuais são capazes de rodar softwares da época do 386, muito embora tenham incorporado diversos novos recursos.
Na prática, o fato de ser um processador de 64 bits não torna o Athlon 64 gritantemente mais rápido, mesmo em aplicativos otimizados (os ganhos de desempenho surgem mais devido ao controlador de memória integrado e aos novos registradores). A principal vantagem dos processadores de 64 bits é derrubar uma limitação inerente a todos os processadores de 32 bits, que são capazes de cessar apenas 4 GB de memória RAM, um limite que está se tornando cada vez mais uma limitação grave em várias áreas. Os 4 GB de memória podem não parecer um obstáculo imediato, mas lembre-se de que há duas décadas os PCs eram vendidos com 128 KB de memória, há uma década já vinham com 4 ou 8 MB, e hoje são vendidos com 512 MB ou mais.
Memória
Depois do processador, temos a memória RAM, usada por ele para armazenar os arquivos e programas que estão sendo executados. Funciona como uma espécie de mesa de trabalho. A quantidade de memória RAM disponível tem um grande efeito sobre o desempenho. Os chips de memória são vendidos na forma de pentes de memória. Existem pentes de várias capacidades e normalmente as placas possuem dois ou três encaixes disponíveis. Você pode instalar um pente de 512 MB junto com o de 256 MB que veio no micro para ter um total de 768 MB, por exemplo.
Ao contrário do processador, que é extremamente complexo, os chips de memória são formados pela repetição de uma estrutura bem simples, formada por um par de um transistor e um capacitor. Um transistor solitário e capaz de processar um único bit de cada vez, e o capacitor permite armazenar a informação por um certo tempo. Esta simplicidade faz com que os pentes de memória sejam muito mais baratos que os processadores, principalmente se levarmos em conta o número de transistores. Um pente de 1 GB é geralmente composto com 16 chips, cada um deles com um total de 512 megabits, o que equivale a 512 milhões de transistores. Um Athlon 64
X2, que é um dos maiores processadores atualmente, tem "apenas" 233 milhões e custa absurdamente mais caro que um pente de memória. Existem basicamente dois tipos de memória em uso: SDR e DDR. As SDR são o tipo tradicional, onde o controlador de memória faz apenas uma leitura por ciclo, enquanto as DDR são mais rápidas, pois fazem duas leituras por ciclo. O desempenho não chega a dobrar, pois o acesso inicial continua demorando o mesmo tempo, mas melhora bastante. Os pentes de memória SDR são usados em micros antigos: Pentium II e Pentium III e os primeiros Athlons e Durons. Por não serem mais fabricados, eles são atualmente muito mais raros e caros que os DDR, algo semelhante ao que aconteceu com os antigos pentes de 72 vias, usados na época do Pentium. É fácil diferenciar os pentes SDR e DDR, pois os SDR possuem dois chanfros e os DDR apenas um. Essa diferença faz com que também não seja possível trocar as bolas, encaixando por engano um pente DDR numa placa-mãe que use SDR e viceversa (a menos que você use um alicate e um martelo, mas a placa provavelmente não vai funcionar mais depois ;). Algumas poucas placas possuem os dois tipos de soquete, permitindo usar os dois tipos de acordo com a conveniência, mas sem misturar os dois. Apesar de toda a evolução, a memória RAM continua sendo gritantemente mais lenta que o processador. Para atenuar a diferença, são usados dois níveis de cache, incluídos no próprio processador: o L1 e o L2. O cache L1 é extremamente rápido, trabalhando próximo à freqüência nativa do processador. Na verdade, os dois trabalham na mesma freqüência, mas são necessários alguns ciclos de clock para que a informação armazenada no L1 chegue até as unidades de processamento. No caso do Pentium 4, chega-se ao extremo de armazenar instruções já decodificadas no L1. Elas ocupam mais espaço, mas eliminam este tempo inicial. A grosso modo, quanto mais rápido o cache, mais espaço ele ocupa e menos é possível incluir no processador. É por isso que o Pentium 4 inclui apenas um total de 20 KB deste cache L1 ultra-rápido, contra os 128 KB do cache um pouco mais lento usado no Sempron. Em seguida vem o cache L2, que é mais lento tanto em termos de tempo de acesso (o tempo necessário para iniciar a transferência) quanto em largura de banda, mas é bem mais econômico em termos de transistores, permitindo que seja usado em maior quantidade. Um Pentium 4 possui (de acordo com o modelo) 512 KB, 1 MB ou 2 MB de cache L2, enquanto o Sempron tem 256 KB. A principal característica da memória RAM é que ela é volátil, ou seja, os dados se perdem ao reiniciar o micro. É por isso que ao ligar é necessário sempre refazer todo o processo de carregamento, em que o sistema operacional e aplicativos usados são transferidos do HD para a memória, onde podem ser executados pelo processador.
Disco rígido
No final das contas, a memória RAM funciona como uma mesa de trabalho. Os
dados mesmo são armazenados no disco rígido, também chamado de hard disk (o termo em Inglês), HD ou até mesmo de "disco duro" pelos nossos primos lusitanos. É nele que ficam guardados programas e dados enquanto não estão em uso, ou quando o micro é desligado. O HD armazena os dados em discos magnéticos que mantêm a gravação por vários anos. Estes discos giram e uma cabeça de leitura móvel faz o trabalho de gravar ou acessar os dados em qualquer posição nos discos. Junto com o CD-ROM, o HD é um dos poucos componentes mecânicos ainda usados nos micros atuais e, justamente por isso, é o que normalmente dura menos tempo (em média dois anos de uso contínuo) e que inspira mais cuidados.
Na verdade, os discos magnéticos dos HDs são selados, pois a superfície magnética onde são armazenados os dados é extremamente fina e sensível. Qualquer grão de poeira que entrasse iria começar a riscar os discos por causa da velocidade em que eles giram (7200 ou 10000 RPM nos atuais) o que faria com que em poucas horas quase todos os dados armazenados fossem destruídos. Fotos em que o HD aparece aberto são apenas ilustrativas, no mundo real ele é apenas uma caixa fechada sem tanta graça. Tradicionalmente, o sistema operacional era sempre instalado no HD antes de poder ser usado. Enquanto está trabalhando, o sistema precisa freqüentemente modificar arquivos e configurações, o que seria impossível num CD-ROM, já que os dados gravados nele não podem ser alterados. Isso mudou com o aparecimento do Demolinux, Knoppix, Kurumin e outras distribuições Linux que rodam diretamente do CD-ROM. Neste caso, um conjunto de modificações "enganam" o sistema, fazendo com que ele use a maior parte dos arquivos (os que não precisam ser alterados) a partir do CD-ROM, e o restante (os que realmente precisam ser alterados) a partir da memória RAM. Isto tem algumas limitações: as configurações são perdidas ao desligar (a menos que você as salve em um disquete ou cartão de memória), pois tudo é armazenado na memória RAM e o conteúdo dela é sempre perdido ao desligar o micro.
Também é mais complicado (mas não impossível!) instalar novos programas pois é sempre preciso enganar o sistema fazendo-o gravar tudo na memória RAM. Por outro lado, a facilidade de uso é imbatível, pois basta inicializar o micro usando o CD do Kurumin e ele roda alegre e saltitante, sem precisar alterar o que já está instalado no micro. Mas, voltando à função do HD, imagine que, como memória RAM é cara, você compra sempre uma quantidade relativamente pequena, geralmente 512 MB ou 1 GB, de acordo com o seu bolso. Por outro lado, você dificilmente vai encontrar um HD de menos que 80 ou 120 GB à venda. Ou seja, temos centenas de vezes mais espaço no HD do que na memória RAM. Lembre-se de que o computador é burro, quando ele fica sem memória RAM, simplesmente trava. Não existe negociação com quem só entende uns e zeros. Bem antigamente, nos anos 80, época dos primeiros PCs, você só podia rodar programas que coubessem na memória RAM disponível. Naquela época, a memória RAM era muito mais cara que hoje em dia, então o mais comum era usar 256 ou 512 KB (sim, kbytes, duas mil vezes menos que usamos hoje, tempos difíceis aqueles, nem existia Linux... :). Os mais abonados tinham dinheiro para comprar um megabyte inteiro mas parava por aí. Se você quisesse rodar um programa com mais de 256 KB, tinha que comprar mais memória, não tinha conversa. Os programadores, coitados, tinham que deixar seus programas o mais compactos possíveis para que eles rodassem nos micros com menos memória. Mais tarde, quando a Intel estava desenvolvendo o 386, um dos engenheiros bem pagos da empresa, num momento de criatividade despertada por iluminação divina, teve a idéia de criar um recurso chamado de memória virtual. O processador (através de uma instrução incluída no microcode e ativada pelo sistema operacional) é instruído a mover alguns arquivos para o HD sempre que a memória RAM estiver acabando. Isso faz com que a memória nunca "acabe" e ele não trave. Enquanto tiver espaço no HD, ele vai caminhando. O Linux sabe como usar memória virtual desde o comecinho, quando um russo pediu encarecidamente que Linus Torvalds incluísse o recurso para que ele pudesse rodar o Linux no seu 386 com 2 MB de RAM (não tente fazer isso em casa! :-). O problema é que o HD é muito mais lento que a memória RAM. Se você for numa loja de informática qualquer e perguntar sobre os tipos de pente de memória que estão à venda, vai encontrar pentes de memória DDR de 2100, 2700 ou até 3200 MB/s (a memória conversa com o processador a até 3200 megabytes por segundo). Na pior das hipóteses, você vai encontrar um pente antigo de memória PC-100, que transmite a 800 MB/s. Existe um comando no Linux que serve para mostrar de forma rápida o desempenho do HD, o hdparm. Quando o rodo no meu micro, que usa um HD IDE relativamente recente, ele diz o seguinte: $ hdparm -t /dev/hda /dev/hda: Timing buffered disk reads: 158 MB in 3.03 seconds = 52.20 MB/sec
Ou seja, enquanto na memória RAM falamos de 2 ou 3 gigabytes por segundo, no HD falamos em algumas dezenas de megabytes. Para piorar as coisas, o tempo de acesso do HD (o tempo necessário para localizar a informação e iniciar a transferência) é absurdamente mais alto, em torno de 10 milessegundos, enquanto na memória RAM falamos em nanossegundos. Agora você entende por que o Kurumin roda tão lento naqueles micros velhos com apenas 64 MB. O sistema até consegue trabalhar, com a ajuda da memória virtual, mas como uma grande parte das coisas acaba indo para o HD, tudo fica leeeeento, independentemente do clock do processador. A fórmula é simples: quanto menos memória RAM, mais memória swap (memória virtual) é usada e mais lento o sistema fica. O processador, coitado, não pode fazer nada além de ficar esperando a boa vontade do HD em mandar à conta-gotas os dados de que ele precisa para trabalhar. Ou seja, quando você compra um micro com um processador de 3 GHz e 256 MB de RAM, você está literalmente jogando dinheiro no lixo, pois o seu processador super ultra rápido vai ficar boa parte do tempo esperando pelo HD. Vender micros novos com 256, ou pior, apenas 128 MB de RAM, é uma atrocidade que deveria ser classificada como crime contra a humanidade ;). Por outro lado, quando você tem instalado mais memória do que o sistema realmente precisa, é feito o inverso. Ao invés de copiar arquivos da memória para o HD, arquivos do HD, contendo os programas, arquivos e bibliotecas que já foram anteriormente abertos é que são copiados para a memória, fazendo com que o acesso a eles passe a ser instantâneo. Os programas e arquivos passam a ser abertos de forma gritantemente mais rápida, como se você tivesse um HD muito mais rápido do que realmente é. Este recurso é chamado de cache de disco e no Linux é gerenciado de forma automática pelo sistema, usando a memória disponível. Naturalmente, o cache disco é descartado imediatamente quando a memória precisa ser usada para outras coisas. Ele é apenas uma forma de aproveitar o excedente de memória, sem causar nenhum efeito desagradável. Ironicamente, a forma mais eficiente de melhorar o desempenho do HD, é instalar mais memória, fazendo com que uma quantidade maior de arquivos possa ser armazenada no cache de disco. É por isso que servidores de arquivos, proxy e de banco de dados costumam usar muita memória RAM, em muitos casos 4 GB ou mais. Uma outra forma de melhorar o desempenho do HD é usar RAID, onde dois ou quatro HDs passam a ser acessados como se fossem um só, multiplicando a velocidade de leitura e gravação. Este tipo de RAID, usado para melhorar o desempenho é chamado de RAID 0. Existe ainda o RAID 1, onde são usados dois HDs, mas o segundo é uma cópia exata do primeiro, que garante que os dados não sejam perdidos no caso de algum problema mecânico em qualquer um dos dois. O RAID tem se tornado um recurso relativamente popular, pois muitas placas-mãe já vêm com controladoras RAID onboard.
Placa de vídeo
Depois do processador, memória e HD, a placa de vídeo é provavelmente o componente mais importante do PC. Originalmente, as placas de vídeo eram dispositivos simples, que se limitavam a mostrar o conteúdo da memória de vídeo no monitor. A memória de vídeo contém um bitmap da imagem atual, atualizada pelo processador, e o RAMDAC (um conversor digital-analógico) lê esta imagem periodicamente e a envia ao monitor. A resolução máxima suportada pela placa de vídeo era limitada pela quantidade de memória de vídeo. Na época, memória era um artigo caro, de forma que as placas vinham com apenas 1 ou 2 MB. As placas de 1 MB permitiam usar no máximo 800x600 com 16 bits de cor, ou 1024x768 com 256 cores. Estavam limitadas ao que cabia na memória de vídeo. Em seguida, as placas passaram a suportar recursos de aceleração, que permitem fazer coisas como mover janelas ou processar arquivos de vídeo de forma a aliviar o processador principal. Estes recursos melhoram bastante a velocidade de atualização da tela (em 2D), tornando o sistema bem mais responsívo. Finalmente, as placas deram o passo final, passando a suportar recursos 3D. Uma placa 3D é capaz de gerar, processar e renderizar imagens em 3D, que por sua vez são formadas por uma quantidade gigantesca de polígonos, posicionados no espaço tridimensional e texturas aplicadas sobre eles, que os transformam em objetos mais semelhantes aos reais.
Junto com as placas 3D, surgiu a febre dos games de primeira pessoa, começando com o Quake 2 e Quake 3 e depois chegando ao Counter Strike, Doom 3 e companhia. Muitos destes games (incluindo todos os títulos da ID e a série Unreal Tournament) possuem versões Linux nativas. Em geral você baixa um instalador na página do desenvolvedor, que instala a partir do CD com a versão Windows.
Outros podem ser executados no Linux usando o Cedega (chamado de WineX nas versões anteriores), que simula um ambiente Windows, incluindo o DirectX e outros recursos usados pelos games. Já existem até casos de LanHouses onde todas ou quase todas as máquinas (os desktops mesmo, não apenas os servidores) rodam Linux. Você pode ver mais detalhes sobre o projeto aqui: http://www.guiadohardware.net/artigos/309/. Para usar todos os recursos da placa de vídeo, do 3D à aceleração de vídeo básica, é necessário que existam drivers adequados para ela. A maioria das placas possuem bons drivers para Linux, a maior parte deles incluída no próprio X.org, de forma que venham pré-instalados no sistema. A lista inclui desde as antigas placas Voodoo (1, 2, 3, 4 e Banshee) até muitas placas ATI e Via recentes, passando por quase todas as placas onboard da Intel, encontradas sobretudo em notebooks. A nVidia desenvolve um driver proprietário de boa qualidade, que é compatível com toda a linha de placas e pode ser instalado em (praticamente) qualquer distribuição Linux sem muitas dificuldades. Algumas já até incluem o driver diretamente. O desempenho é bem similar ao obtido no Windows, variando um pouco para mais ou para menos de acordo com o game. Alguns chegam a ficar bem mais rápidos no Linux, enquanto outros (sobretudo os executados através do Cedega) rodam com perdas significativas por causa da camada de emulação. O driver Linux da nVidia pode ser baixado no: http://www.nvidia.com/object/unix.html. A ATI também desenvolve um driver próprio, mas que não possui uma qualidade tão boa. O desempenho é inferior ao do driver for Windows e o driver não instala em todas as distribuições. Como o custo das placas não é tão diferente assim, dê preferência às placas da nVidia ao comprar uma placa 3D para uso no Linux. Lembre-se de que o driver influencia diretamente o desempenho da placa: uma placa rápida no Windows pode ser muito lenta no Linux se o driver não tiver qualidade. Entre as placas onboard, as com melhor suporte são as com chipset Intel, tanto as encontradas em notebooks, quanto as usadas em placas para desktop. Praticamente todas são suportadas no Linux e o driver oferece um bom desempenho (dentro das limitações do hardware, claro). Alguns dos chipsets recentes passaram a ser suportados apenas no Kernel 2.6.12, por isso dê preferência às últimas versões das distribuições. Temos também as placas com o Via Unicrome, um chipset de vídeo incluído na maior parte das placas-mãe com chipset Via de fabricação recente. Até pouco tempo, estas placas não tinham suporte 3D no Linux, mas isso mudou a partir de julho de 2005, quando a Via passou a patrocinar o desenvolvimento de um driver open source. Como o projeto é recente, muitas distribuições ainda não incluem o driver, mas no futuro ele tende a se tornar tão bem suportado quanto os Intel. Por último, temos as placas SiS (tanto onboard quanto offboard), que são as pior suportadas no Linux. O fabricante simplesmente não desenvolve nenhum driver, nem abre as especificações das placas, que permitiriam que outras pessoas o fizessem. Não apenas as placas de vídeo, mas também as placas-mãe com chipset SiS de uma forma geral (independente do fabricante da placa-mãe) são as mais problemáticas no Linux, novamente pela questão da falta de drivers, por isso é recomendável deixá-las em último na lista de compra. Só considere comprar uma se a diferença de preço for realmente grande e você achar que a economia compensa a falta de suporte e dor de cabeça.
Embora funcionem no Linux, o driver "sis" do X.org (que dá suporte às placas com chipset SiS) não oferece desempenho 3D para nenhum dos modelos, limitando bastante seu uso. Um número relativamente grande de placas não possui sequer aceleração 2D, fazendo com que o desempenho fique comprometido mesmo em tarefas básicas, como assistir vídeos ou usar o VMware. Existe um projeto para oferecer suporte 3D a algumas placas (embora sem nenhum apoio do fabricante), mas que não tem feito muito progresso nos últimos tempos, disponível no: http://www.winischhofer.at/linuxsisvga.shtml. A principal diferença entre as placas 3D onboard e as offboard é o barramento de acesso à memória, que nas placas atuais é o principal limitante de desempenho. Nas placas offboard, a placa inclui uma quantidade generosa de memória de vídeo, acessada através de um barramento muito rápido. O GPU (o chipset da placa) é também muito poderoso, de forma que as duas coisas se combinam para oferecer um desempenho monstruoso. As placas 3D atuais são praticamente um computador à parte, pois além da qualidade generosa de memória RAM, acessada através de um barramento muito mais rápido que a do sistema, o chipset de vídeo é muito mais complexo e absurdamente mais rápido que o processador principal no processamento de gráficos. O chipset de uma GeForce 7800 GT, por exemplo, é composto por 302 milhões de transistores, enquanto um Pentium III tem "apenas" 28 milhões. No caso de uma placa onboard, o chipset de vídeo é bem mais simples e incluído diretamente no chipset da placa-mãe. Para reduzir ainda mais o custo, o vídeo não possui memória dedicada, simplesmente compartilha a memória principal com o processador. Mesmo uma placa relativamente barata atualmente, como a GeForce 4 Ti4600 tem 10.4 GB/s de barramento com a memória de vídeo, enquanto ao usar um pente de memória DDR PC 3200, temos apenas 3.2 GB/s de barramento na memória principal, que ainda por cima precisa ser compartilhado entre o vídeo e o processador principal. O processador lida bem com isto, graças aos caches L1 e L2, mas a placa de vídeo realmente não tem para onde correr. É por isso que os chipsets de vídeo onboard são normalmente bem mais simples: mesmo um chip caro e complexo não ofereceria um desempenho muito melhor, pois o grande limitante é o acesso à memória. O único chipset de vídeo onboard que oferece um desempenho mais próximo do das placas offboard é o usado nas placas nVidia GeForce, que utilizam um chipset de vídeo separado e o "twin bank", uma tecnologia que permite que dois pentes de memória sejam acessados simultaneamente, reduzindo o problema da lentidão do acesso à memória. Em compensação, as placas com ele são consideravelmente mais caras, e você precisa gastar um pouco a mais para comprar dois pentes de memória, o que acaba anulando grande parte da economia em relação a uma placa off-board. De uma forma geral, as placas de vídeo onboard (pelo menos os modelos que dispõe de drivers adequados) atuais atendem bem às tarefas do dia-a-dia, com a grande vantagem do custo. Elas também permitem rodar os games mais antigos com um bom desempenho, apesar de naturalmente ficarem devendo nos lançamentos recentes.
Placa-mãe
A placa-mãe é o componente mais importante do micro, pois é ela a responsável pela comunicação entre todos os componentes. Pela enorme quantidade de chips, trilhas, capacitores e encaixes, a placa-mãe também é o componente que, de uma forma geral, mais dá defeitos. É comum que um slot PCI pare de funcionar (embora os outros continuem normais), que instalar um pente de memória no segundo soquete faça o micro passar a travar, embora o mesmo pente funcione perfeitamente no primeiro, e assim por diante. A maior parte dos problemas de instabilidade e travamentos são causados por problemas diversos na placa-mãe, por isso ela é o componente que deve ser escolhido com mais cuidado. A qualidade da placa-mãe é de longe mais importante que o desempenho do processador. Você mal vai perceber uma diferença de 20% no clock do processador, mas com certeza vai perceber se o seu micro começar a travar ou se a placa de vídeo onboard não tiver um bom suporte no Linux. Ao montar um PC de baixo custo, economize primeiro no processador, depois na placa de vídeo, som e outros periféricos. Deixe a placa-mãe por último no corte de despesas. Não se baseie apenas na marca da placa na hora de comprar, mas também no fornecedor. Como muitos componentes entram no país ilegalmente, "via Paraguai", é muito comum que lotes de placas remanufaturadas, ou defeituosas acabem chegando ao mercado. Muita gente compra estes lotes, vende por um preço um pouco abaixo do mercado e depois desaparece. Outras lojas simplesmente vão vendendo placas que sabem ser defeituosas até acharem algum cliente que não reclame. Muitas vezes os travamentos da placa são confundidos com "paus do Windows", de forma que sempre aparece algum desavisado que não percebe o problema. Antigamente existia a polêmica entre as placas com ou sem componentes onboard. Hoje em dia isso não existe mais, pois todas as placas vem com som e rede onboard. Apenas alguns modelos não trazem vídeo onboard, atendendo ao público que vai usar uma placa 3D off-board e prefere uma placa mais barata ou com mais slots PCI do que com o vídeo onboard que, de qualquer forma, não vai usar. Quanto aos conectores, temos na placa-mãe dois conectores IDE para conectar o HD e o CD-ROM, um slot AGP (o marrom) para a placa de vídeo, vários slots PCI (os brancos) para o modem, placa de som e outras placas, soquetes para conectar a memória, o soquete para o processador, o conector para a fonte de alimentação e o painel traseiro, que agrupa os encaixes dos componentes onboard, incluindo o vídeo, som, rede e portas USB. O soquete (ou slot) para o processador é a principal característica da placa-mãe, pois indica com quais processadores ela é compatível. Você não pode instalar um Athlon 64 numa placa soquete A (que é compatível com os Athlons, Durons e Semprons), nem muito menos encaixar um Sempron numa placa soquete 478, destinada aos Pentium 4. O soquete é na verdade apenas um indício de diferenças mais "estruturais" na placa, incluindo o chipset usado, o layout das trilhas de dados, etc. É preciso desenvolver uma placa quase que inteiramente diferente para suportar um novo processador.
Existem ainda dois tipos de portas para a conexão do HD: as portas IDE tradicionais, de 40 pinos (PATA, de Parallel ATA) e os conectores SATA (Serial ATA), que são muito menores. Muitas placas recentes incluem um único conector PATA e quatro conectores SATA. Outras incluem as duas portas IDE tradicionais e dois conectores SATA e, algumas já passam a trazer apenas conectores SATA, deixando de lado os conectores antigos. Existem ainda algumas placas "legacy free", que eliminam também os conectores para o drive de disquete, portas seriais e porta paralela, incluindo apenas as portas USB. Isso permite simplificar o design das placas, reduzindo o custo de produção.
Tudo isso é montado dentro do gabinete, que contém outro componente importante: a fonte de alimentação. A função da fonte é transformar a corrente alternada da tomada em corrente contínua (AC) já nas tensões corretas, usadas pelos componentes. Ela serve também como uma última linha de defesa contra picos de tensão e instabilidade na corrente, depois do nobreak ou estabilizador. Embora quase sempre relegada a último plano, a fonte é outro componente essencial num PC atual. Com a evolução das placas de vídeo e processadores, os PCs consomem cada vez mais energia. Na época dos 486, as fontes mais vendidas tinham 200 watts ou menos, enquanto as atuais têm a partir de 450 watts. Uma fonte subdimensionada não é capaz de fornecer energia suficiente nos momentos de pico, causando desde erros diversos, provocados por falhas no fornecimento (o micro trava ao tentar rodar um game pesado, ou trava sempre depois de algum
tempo de uso, por exemplo), ou, em casos mais graves, até mesmo danos aos componentes. Uma fonte de má qualidade, obrigada a trabalhar além do suportado, pode literalmente explodir, danificando a placa-mãe, memórias, HDs e outros componentes sensíveis.
Evite comprar fontes muito baratas e, ao montar um micro mais parrudo, invista numa fonte de maior capacidade. Não se esqueça também do fio terra, que é outro componente importante, mas freqüentemente esquecido. O fio terra funciona como uma rota de fuga para picos de tensão provenientes da rede elétrica. A eletricidade flui de uma forma similar à água: vai sempre pelo caminho mais fácil. Sem ter para onde ir, um raio vai torrar o estabilizador, a fonte de alimentação e, com um pouco mais de azar, a placa-mãe e o resto do micro. O fio terra evita isso, permitindo que a eletricidade escoe por um caminho mais fácil, deixando todo o equipamento intacto. O fio terra é simplesmente uma barra de cobre com dois a três metros de comprimento, que é cravada no solo, no meio de um buraco de 20 cm de largura, preenchido com sal grosso e carvão. Naturalmente, instalar o terra é trabalho para o eletricista, até porque cavar o buraco e cravar a barra não é um trabalho nada fácil :-). Sem o terra, o estabilizador perde grande parte de sua função, tornandose mais um componente decorativo, que vai ser torrado junto com o resto, do que uma proteção real. Nas grandes cidades, é relativamente raro acontecer dos micros queimarem por causa de raios, pois os transformadores e disjuntores oferecem uma proteção razoável. Mas, pequenos picos de tensão são responsáveis por pequenos danos nos pentes de memória e outros componentes sensíveis, danos que se acumulam, comprometendo a estabilidade e abreviando a vida útil do equipamento. A longo prazo, o investimento na instalação do terra e melhorias na instalação elétrica acabam se pagando com juros, principalmente se você tem mais de um micro.
Hardware x Software
Toda esta parte física, as coisas tangíveis, que você pode tocar é chamada de hardware. A parte mais importante vem depois, o Software, os programas que permitem que o computador faça coisas úteis. É aí que entra o sistema operacional e, depois dele, os programas que usamos no dia-a-dia. Um bom sistema operacional é invisível. A função dele é detectar e utilizar o hardware da máquina de forma eficiente, fornecendo uma base estável sobre a qual os programas que utilizamos no cotidiano possam ser usados. Como diz Linus Torvalds, as pessoas não usam o sistema operacional, usam os programas instalados. Quando você se lembra que está usando um sistema operacional, é sinal de que alguma coisa não está funcionando como deveria. O sistema operacional permite que o programador se concentre em adicionar funções úteis, sem ficar se preocupando com que tipo de placa de vídeo ou placa de som você tem. O programa diz que quer mostrar uma janela na tela e ponto; o modelo de placa de vídeo que está instalado e que comandos são necessários para mostrar a janela são problema do sistema operacional. Para acessar a placa de vídeo, ou qualquer outro componente instalado, o sistema operacional precisa de um driver, que é um pequeno programa que trabalha como um intérprete, permitindo que o sistema converse com o dispositivo. Cada placa de vídeo ou som possui um conjunto próprio de recursos e comandos que permitem usá-los. O driver converte estes diferentes comandos em comandos padrão, que são entendidos pelo sistema operacional. O driver é como se fosse a chave do carro, sem ela você não entra no carro nem dá a partida e ele não serve para nada. Comprar uma impressora ou scanner que não possua driver para o Linux, ou outro sistema operacional que você pretende utilizar, é como comprar um carro sem a chave. Pesquise antes para não levar gato por lebre.
Arquiteturas
Nos primórdios da informática, nas décadas de 50, 60 e 70, vários fabricantes diferentes disputavam o mercado. Cada um desenvolvia seus próprios computadores, que eram incompatíveis entre si. Tanto o hardware quanto os softwares para cada arquitetura não funcionavam nas outras. Isso causava uma ineficiência generalizada, pois cada fabricante tinha que desenvolver tudo, da placa-mãe ao sistema operacional. No começo dos anos 80, os fabricantes começaram a se especializar. Surgiu então o PC que é uma arquitetura aberta, um conjunto de padrões que permite usar periféricos de vários fabricantes diferentes e roda vários tipos de sistemas operacionais.
O principal concorrente é a Apple, que produz os Macs. Ao contrário dos PCs, eles possuem uma arquitetura fechada. A Apple desenvolve tanto os computadores quando o sistema operacional. Naturalmente muita coisa é terceirizada e várias empresas desenvolvem programas e acessórios, mas como a Apple precisa manter o controle de tudo e desenvolver muita coisa por conta própria, o custo dos Macs acaba sendo bem mais alto que o dos PCs. Isso faz com que (embora tenham seus atrativos) eles sejam muito menos populares. Atualmente os Macs possuem menos de 3% do mercado mundial, o que significa uma proporção de mais de 30 PCs para cada Mac. No início da década de 80, a concorrência era mais acirrada e muitos achavam que o modelo da Apple poderia prevalecer, mas não foi o que aconteceu. Dentro da história da informática temos inúmeras histórias que mostram que os padrões abertos quase sempre prevalecem. Um ambiente onde existem várias empresas concorrendo entre si favorece o desenvolvimento de produtos melhores, o que cria uma demanda maior e, graças à economia de escala, permite preços mais baixos. Como os micros PC possuem uma arquitetura aberta, ou seja, a possibilidade de vários fabricantes diferentes desenvolverem seus próprios componentes baseados em padrões já definidos, temos uma lista enorme de componentes compatíveis entre si. Podemos escolher entre várias marcas e modelos os componentes que melhor atendam nossas necessidades e montar nossa própria configuração, de acordo com o uso. Qualquer novo fabricante, com uma placa-mãe mais barata ou um processador mais rápido, por exemplo, pode entrar no mercado, é apenas uma questão de criar a demanda necessária. A concorrência faz com que os fabricantes sejam obrigados a trabalhar com uma margem de lucro relativamente baixa, ganhando com base no volume de peças vendidas, o que é muito bom para nós que compramos.
Um pouco sobre redes
Montar uma rede já foi complicado e caro. Hoje em dia, as redes são algo onipresente, uma forma barata de trocar arquivos, compartilhar a conexão com a internet, compartilhar impressoras, CD-ROM e outros periféricos e assim por diante. O uso mais corriqueiro é compartilhar a conexão com a internet. Você tem apenas uma linha ADSL ou apenas uma assinatura do serviço de acesso via cabo e pode acessar, ao mesmo tempo, a partir de todos os micros que tiver em sua casa ou empresa. Neste caso um dos micros atua como um ponto de encontro, enviando os pedidos de todos para a internet e devolvendo as respostas. Além de compartilhar a conexão, este servidor pode compartilhar arquivos, servir como firewall (protegendo a rede de acessos externos), rodar um proxy (que permite criar um cache de arquivos e páginas acessados, melhorando a velocidade da conexão), além de outros serviços. Outra necessidade comum é compartilhar arquivos. Antigamente (naquela época em que os micros tinham 512 KB de memória e os homens eram homens e escreviam seus próprios sistemas operacionais) era usado o protocolo DPL/DPC (disquete pra lá, disquete pra cá), mas ele não era muito eficiente, principalmente quando o amigo que estava esperando os arquivos estava em outra cidade...
Os componentes básicos da rede são uma placa de rede para cada micro, os cabos e o hub ou switch que serve como um ponto de encontro, permitindo que todos os micros se enxerguem e conversem entre si. As placas de rede já foram componentes caros, mas como elas são dispositivos relativamente simples e o funcionamento é baseado em padrões abertos, qualquer um pode abrir uma fábrica de placas de rede, o que faz com que exista uma concorrência acirrada que obriga os fabricantes a produzirem placas cada vez mais baratas e trabalhem com margens de lucro cada vez mais estreitas. As placas de rede mais baratas chegam a ser vendidas no atacado por menos de três dólares. O preço final é um pouco mais alto naturalmente, mas não é difícil achar placas por 20 reais ou até menos.
Temos três padrões de redes Ethernet: de 10 megabits, 100 megabits e 1 gigabit. As placas são intercompatíveis, mas, ao usar placas de velocidades diferentes, as duas vão conversar na velocidade da placa mais lenta. As redes 10 megabits já são obsoletas, mas ainda é possível encontrar muitas instalações antigas por aí. Caso a rede já use cabos de categoria 5 (o número vem decalcado no cabo), é possível fazer um upgrade direto para 100 megabits, trocando apenas o hub e placas. Lembre-se de que a velocidade das placas é calculada em bits e não em bytes. Uma rede de 100 megabits permite uma taxa de transmissão (teórica) de 12.5 MB/s. Como além dos dados são transmitidas outras informações (a estrutura dos pacotes, retransmissões, códigos de correção de erros, etc.), a velocidade na prática fica sempre um pouco abaixo disso. Normalmente é possível transferir arquivos a no máximo 10.5 MB/s, com a taxa máxima variando sutilmente de acordo com a placa e o sistema operacional usado. A opção para quem precisa de mais velocidade são as redes Gigabit Ethernet, que transmitem a até 1000 megabits (125 megabytes) por segundo. As placas Gigabit atuais são compatíveis com os mesmos cabos de par trançado categoria 5, usados pelas placas de 100 megabits, por isso a diferença de custo fica por conta apenas das placas e do switch. Elas ainda são muito mais caras, mas pouco a pouco o preço vai caindo. Os cabos de rede também são um artigo relativamente barato. Os cabos de categoria 5 que usamos em redes de 100 ou 1000 megabits geralmente custam em torno de 80 centavos o metro, com mais alguns centavos por conector. Você pode comprar quantos metros de cabo quiser, junto com os conectores e fazer crimpar os cabos você mesmo, ou pode comprá-los já prontos. É no caso dos cabos já crimpados que o preço começa a variar. Algumas lojas chegam a crimpar os
cabos na hora cobrando apenas o valor do material, enquanto outras vendem os cabos por preços exorbitantes.
Os cabos devem ter um mínimo de 30 centímetros e um máximo de 100 metros, a distância máxima que o sinal elétrico percorre antes que comece a haver uma degradação que comprometa a comunicação. Na verdade, estes valores não são exatos, principalmente com relação ao comprimento máximo do cabo. Não é incomum ver gente usando cabos fora do padrão, com 120, 150 ou, em alguns casos até 200 metros. Dependendo da qualidade das placas de redes, cabos, conectores, crimpagem e do nível de interferências do ambiente, o sinal pode se propagar por distâncias bem acima dos 100 metros, mas neste caos sem garantia nenhuma de estabilidade. Até 100 metros você pode ter certeza de que a rede funcionará, acima disso começa a depender da sorte. Existem dois tipos de cabos de rede: os cabos retos (straight), que são os cabos "normais", usados para ligar os vários micros ao hub ou switch, e os cabos crossover, que utilizam um padrão diferente, que permite ligar diretamente dois micros, sem precisar de um hub. Todas as placas são ligadas ao hub ou switch, que serve como uma central, de onde os sinais de um micro são retransmitidos para os demais. Todas as placas de rede são ligadas ao hub ou switch e é possível ligar vários hubs ou switchs entre si (até um máximo de 7) caso necessário, formando redes maiores.
A diferença entre um hub é um switch é que o hub apenas retransmite tudo o que recebe para todos os micros conectados a ele, é um tagarela. Isso faz com que apenas um micro consiga transmitir dados de cada vez e que todas as placas precisem operar na mesma velocidade (sempre nivelada por baixo, caso você coloque um micro com uma placa de 10 megabits na rede, a rede toda passará a trabalhar a 10 megabits). Os switchs, por sua vez, são aparelhos mais inteligentes. Eles fecham canais exclusivos de comunicação entre o micro que está enviando dados e o que está recebendo, permitindo que vários pares de micros troquem dados entre si ao mesmo tempo. Isso melhora bastante a velocidade em redes congestionadas, com muitos micros. Antigamente, existia uma grande diferença de preço entre os hubs burros e os switchs, mas os componentes caíram tanto de preço que a partir de um certo ponto a diferença se tornou insignificante e os fabricantes passaram a fabricar apenas switchs, que por sua vez dividem-se em duas categorias: os switchs "de verdade", aparelhos caros, capazes de gerenciar o tráfego de uma quantidade maior de micros e que possuem várias ferramentas de gerenciamento e os "hub-switchs", os modelos mais simples e baratos, que usamos no dia-a-dia.
O TCP/IP e a configuração da rede
Tudo o que vimos até agora, sobre placas e cabos representa a parte física da rede, os componentes necessários para fazer os uns e zeros enviados por um computador chegarem ao outro. O TCP/IP é o protocolo de rede, o conjunto de regras e padrões que permite que eles realmente falem a mesma língua. Pense nas placas, hubs e cabos como o sistema telefônico e no TCP/IP como a língua falada que você usa para realmente se comunicar. Não adianta nada ligar para alguém na China que não saiba falar Português. Sua voz vai chegar até lá, mas ela não vai entender nada. Além da língua em si, existe um conjunto de padrões, como por exemplo dizer "alô" ao atender o telefone, dizer quem é, se despedir antes de desligar, etc.
Ligar os cabos e ver se os leds do hub e das placas estão acesos é o primeiro passo. O segundo é configurar os endereços da rede para que os micros possam conversar entre si, e o terceiro é finalmente compartilhar a internet, arquivos, impressoras e o que mais você quer que os outros micros da rede tenham acesso. Graças ao TCP/IP, tanto o Linux quanto o Windows e outros sistemas operacionais em uso são intercompatíveis dentro da rede. Não existe problema para as máquinas com o Windows acessarem a internet através da conexão compartilhada no Linux, por exemplo. Independente do sistema operacional usado, as informações básicas para que ele possa acessar a internet através da rede são:
- Endereço IP: Os endereços IP identificam cada micro na rede. A regra básica é que cada micro deve ter um endereço IP diferente e todos devem usar endereços dentro da mesma faixa. O endereço IP é dividido em duas partes. A primeira identifica a rede à qual o computador está conectado (necessário, pois numa rede TCP/IP podemos ter várias redes conectadas entre si, veja o caso da internet) e a segunda identifica o computador (chamado de host) dentro da rede. É como se o mesmo endereço contivesse o número do CEP (que indica a cidade e a rua) e o número da casa. A parte inicial do endereço identifica a rede e os últimos identificam o computador dentro da rede. Quando temos um endereço "192.168.0.1", por exemplo, temos o micro "1" dentro da rede "192.168.0". Quando alguém diz "uso a faixa 192.168.0.x na minha rede", está querendo dizer justamente que apenas o último número muda de um micro para outro. Na verdade, os endereços IP são números binários, de 32 bits. Para facilitar a configuração e memorização dos endereços, eles são quebrados em 4 números de 8 bits cada um. Os 8 bits permitem 256 combinações diferentes, por isso usamos 4 números de 0 a 255 para representá-los. Todos os endereços IP válidos na internet possuem dono. Seja alguma empresa ou alguma entidade certificadora que os fornece junto com novos links. Por isso não podemos utilizar nenhum deles a esmo. Quando você se conecta na internet você recebe um (e apenas um) endereço IP válido, emprestado pelo provedor de acesso, algo como por exemplo "200.220.231.34". É através deste número que outros computadores na Internet podem enviar informações e arquivos para o seu. Quando quiser configurar uma rede local, você deve usar um dos endereços reservados, endereços que não existem na internet e que por isso podemos utilizar à vontade em nossas redes particulares. Algumas das faixas reservadas de endereços são: 10.x.x.x, 172.16.x.x até 172.31.x.x e 192.168.0.x até 192.168.255.x Você pode usar qualquer uma dessas faixas de endereços na sua rede. Uma faixa de endereços das mais usadas é a 192.168.0.x, onde o "192.168.0." vai ser igual em todos os micros da rede e muda apenas o último número, que pode ser de 1 até 254 (o 0 e o 255 são reservados para o endereço da rede e o sinal de broadcast).
Se você tiver 4 micros na rede, os endereços deles podem ser, por exemplo, 192.168.0.1, 192.168.0.2, 192.168.0.3 e 192.168.0.4.
- Máscara de sub-rede A máscara é um componente importante do endereço IP. É ela que explica para o sistema operacional como é feita a divisão do endereço, ou seja, quais dos 4 octetos compõem o endereço da rede e quais contém o endereço do host, ou seja, o endereço de cada micro dentro da rede. Ao contrário do endereço IP, que é formado por valores entre 0 e 255, a máscara de sub-rede é formada por apenas dois valores: 0 e 255, como em 255.255.0.0 ou 255.0.0.0, onde um valor 255 indica a parte endereço IP referente à rede, e um valor 0 indica a parte endereço IP referente ao host. Se você está usando a faixa 192.168.0.x, por exemplo, que é um endereço de classe C, então a máscara de sub-rede vai ser 255.255.255.0 para todos os micros. Você poderia usar uma máscara diferente: 255.255.0.0 ou mesmo 255.0.0.0, desde que a máscara seja a mesma em todos os micros. Se você tiver dois micros, 192.168.0.1 e 192.168.0.2, mas um configurado com a máscara "255.255.255.0" e o outro com "255.255.0.0", você terá na verdade duas redes diferentes. Um dos micros será o "1" conectado na rede "192.168.0" e o outro será o "0.2", conectado na rede "192.168".
- Default Gateway (gateway padrão) Lembra que disse que quando você se conecta à internet através de um provedor de acesso qualquer, você recebe apenas um endereço IP válido? Quando você compartilha a conexão entre vários micros, apenas o servidor que está compartilhando a conexão possui um endereço IP válido, só ele "existe" na internet. Todos os demais acessam através dele. O default gateway ou gateway padrão é justamente o micro da rede que tem a conexão, que os outros consultarão quando precisarem acessar qualquer coisa na internet. Por exemplo, se você montar uma rede doméstica com 4 PCs, usando os endereços IP 192.168.0.1, 192.168.0.2, 192.168.0.3 e 192.168.0.4, e o PC 192.168.0.1 estiver compartilhando o acesso à internet, as outras três estações deverão ser configuradas para utilizar o endereço 192.168.0.1 como gateway padrão.
- Servidor DNS Memorizar os 4 números de um endereço IP é muito mais simples do que memorizar o endereço binário. Mas, mesmo assim, fora os endereços usados na sua rede interna, é complicado sair decorando um monte de endereços diferentes. O DNS (domain name system) permite usar nomes amigáveis ao invés de endereços IP para acessar servidores, um recurso básico que existe praticamente desde os primórdios da internet. Quando você se conecta à internet e acessa o endereço http://www.guiadohardware.net, é um servidor DNS que converte o
"nome fantasia" no endereço IP real do servidor, permitindo que seu micro possa acessar o site. Para tanto, o servidor DNS mantém uma tabela com todos os nomes fantasia, relacionados com os respectivos endereços IP. A maior dificuldade em manter um servidor DNS é justamente manter esta tabela atualizada, pois o serviço tem que ser feito manualmente. Dentro da internet, temos várias instituições que cuidam desta tarefa. No Brasil, por exemplo, temos a FAPESP. Para registrar um domínio é preciso fornecer à FAPESP o endereço IP real do servidor onde a página ficará hospedada. A FAPESP cobra uma taxa de manutenção anual de R$ 30 por este serviço. Servidores DNS também são muito usados em intranets, para tornar os endereços mais amigáveis e fáceis de guardar. Faz parte da configuração da rede informar os endereços DNS do provedor (ou qualquer outro servidor que você tenha acesso), que é para quem seu micro irá perguntar sempre que você tentar acessar qualquer coisa usando um nome de domínio e não um endereço IP. O jeito mais fácil de conseguir os endereço do provedor é simplesmente ligar para o suporte e perguntar. O ideal é informar dois endereços, assim se o primeiro estiver fora do ar, você continua acessando através do segundo. Também funciona com um endereço só, mas você perde a redundância. Exemplos de endereços de servidores DNS são: 200.204.0.10 e 200.204.0.138. No Kurumin você encontra a opção de configurar a rede dentro do Painel de Controle, em "Conectar na internet ou configurar a rede > Configurar conexão via rede local". O assistente vai perguntando as configurações da rede que vimos.
Um exemplo de configuração de rede completa para um dos micros da rede, que vai acessar a internet através do micro que está compartilhando a conexão seria: IP: 192.168.0.2 Máscara: 255.255.255.0 Gateway: 192.168.0.1 (o endereço do micro compartilhando a conexão) DNS: 200.204.0.10 200.204.0.138 O micro que está compartilhando a conexão por sua vez vai ter duas placas de rede, uma para a internet e outra para a rede local, por isso vai ter uma configuração separada para cada uma. A configuração da internet é feita da forma normal, de acordo com o tipo de conexão que você usa, e a configuração da rede interna segue o padrão que vimos até aqui.
É possível usar também um servidor DHCP para fornecer as configurações da rede para os micros, de forma que você não precise ficar configurando os endereços manualmente em cada um. O configurador do Kurumin pergunta sobre isso logo na primeira opção: "Configurar a rede via DHCP"? Respondendo "Sim", o micro simplesmente "pede socorro" na rede e é ajudado pelo servidor DHCP, que fornece para ele toda a configuração da rede, de forma automática. Você gasta um pouco mais de tempo configurando o servidor DHCP, mas em compensação economiza na configuração dos micros.
Redes wireless
Apesar de inicialmente muito mais caras, as redes wireless estão gradualmente caindo de preço e se popularizando rapidamente. Além da questão da praticidade, em muitos casos simplesmente não é viável usar cabos. Imagine que você precise ligar dois escritórios situados em dois prédios distantes, ou que a sua mãe/esposa/marido não deixa você nem pensar em espalhar cabos pela casa. O que você precisa prestar atenção na hora de comprar é se o modelo escolhido é bem suportado no Linux. Caso a placa tenha um driver disponível, a configuração será simples, quase como a de uma placa de rede normal, mas sem o driver você fica trancado do lado de fora do carro. Lembre-se, o driver é a chave e você nunca deve comprar um carro sem a chave :-). Numa rede wireless, o hub é substituído pelo ponto de acesso (access-point em inglês). Ele tem basicamente a mesma função: retransmitir os pacotes de dados, de forma que todos os micros da rede os recebam. Em geral os pontos de acesso possuem uma saída para serem conectados num hub tradicional, permitindo que você "junte" os micros da rede com fios com os que estão acessando através da rede wireless, formando uma única rede. Ao contrário dos hubs, os pontos de acesso são dispositivos inteligentes, que podem ser configurados através de uma interface de administração via web. Você se conecta num endereço específico usando o navegador (que muda de aparelho para aparelho, mas pode ser encontrado facilmente no manual), loga-se usando uma senha padrão e altera as configurações (e senhas!) de acordo com as necessidades da sua rede.
Ao contrário de uma rede cabeada, com um switch, em qualquer rede wireless a banda da rede é compartilhada entre os micros que estiverem transmitindo dados simultaneamente. Isso acontece pois não existem cabos independentes ligando o ponto de acesso a cada micro, mas um único meio de transmissão (o ar), o que faz com que a rede opere como se todos os micros estivessem ligados ao mesmo cabo. Enquanto um transmite, os outros esperam. Conforme aumenta o número de micros e aumenta o tráfego da rede, mais cai o desempenho. Outra questão é que a potência do sinal decai conforme aumenta a distância, enquanto a qualidade decai pela combinação do aumento da distância e dos obstáculos pelo caminho. É por isso que num campo aberto o alcance será muito maior do que dentro de um prédio, por exemplo. Conforme a potência e qualidade do sinal se degrada, o ponto de acesso pode diminuir a velocidade de transmissão a fim de melhorar a confiabilidade da transmissão. A velocidade pode cair para 5.5 megabits, 2 megabits ou chegar a apenas 1 megabit por segundo antes que o sinal se perca completamente. Existem três padrões diferentes de rede wireless em uso. O primeiro (e mais comum) é o 802.11b, onde a rede opera a uma taxa teórica de 11 megabits. O seguinte é o 802.11a, que ao contrário do que o nome dá a entender, é mais recente que o 802.11b. As redes 802.11a são mais rápidas (54 megabits) e são mais resistentes a interferências, pois operam na faixa de freqüência dos 5 GHz, ao invés dos 2.4 GHz usados no 802.11b. A desvantagem é que, pelo mesmo motivo (a freqüência mais alta), o alcance das redes 802.11a é menor, cerca de metade que numa rede 802.11b. As placas 802.11a são relativamente raras e, como a maioria é capaz de operar nos dois padrões, muitas delas acabam operando a 11 megabits, juntando-se a redes 802.11b já existentes. Finalmente, temos o 802.11g, o padrão atual. Ele junta o melhor dos dois mundos, operando a 54 megabits, como no 802.11a e trabalhando na mesma faixa de freqüência do 802.11b (2.4 GHz), o que mantém o alcance inicial. Para que a rede funcione a 54 megabits, é necessário que tanto o ponto de acesso, quanto todas as
placas sejam 802.11g, caso contrário a rede inteira passa a operar a 11 megabits, a fim de manter compatibilidade com as placas antigas. Muitos pontos de acesso permitem desativar este recurso, fazendo com que as placas de 11 megabits simplesmente fiquem fora da rede, sem prejudicar o desempenho das demais. Existem ainda as placas dual band, que são capazes de transmitir simultaneamente usando dois canais diferentes, dobrando a taxa de transmissão. Uma placa de "108 megabits" é na verdade uma 802.11g dual-band. As redes wireless também são redes Ethernet e também usam o TCP/IP. Mas, além da configuração dos endereços IP, máscara, gateway, etc., feita da mesma forma que numa rede cabeada, temos um conjunto de parâmetros adicional. A configuração da rede wireless é feita em duas etapas. Primeiro você precisa configurar o ESSID, canal e (caso usada encriptação) a chave WEP ou WPA que dá acesso à rede. O ESSID é uma espécie de nome de rede. Dois pontos de acesso, instalados na mesma área, mas configurados com dois ESSIDs diferentes formam duas redes separadas, permitindo que a sua rede não interfira com a do vizinho, por exemplo. Mesmo que existam várias redes na mesma sala, indicar o ESSID permite que você se conecte à rede correta. Em seguida temos o canal que, novamente permite que vários pontos de acesso dentro da mesma área trabalhem sem interferir entre si. Temos um total de 16 canais (numerados de 1 a 16), mas a legislação de cada país permite o uso de apenas alguns deles. Nos EUA, por exemplo, é permitido usar apenas do 1 ao 11 e na França apenas do 10 ao 13. Esta configuração de país é definida na configuração do ponto de acesso. O ESSID sozinho provê uma segurança muito fraca, pois qualquer um que soubesse o nome da rede poderia se conectar a ele ou mesmo começar a escutar todas as conexões. Embora o alcance normal de uma rede wireless, usando as antenas padrão das placas e pontos de acesso normalmente não passe de 30 ou 50 metros (em ambientes fechados) usando antenas maiores, de alto ganho e conseguindo uma rota sem obstáculos, é possível captar o sinal de muito longe, chegando a 2 ou até mesmo 5 KM, de acordo com a potência do seu ponto de acesso. Como é praticamente impossível impedir que outras pessoas captem o sinal da sua rede, a melhor solução é encriptar as informações, de forma que ela não tenha utilidade fora o círculo autorizado a acessar a rede. Existem atualmente três padrões de encriptação, o WEP de 64 bits, WEP de 128 bits e o WPA, o padrão mais recente e considerado mais seguro. Embora nenhum dos três seja livre de falhas, elas são uma camada essencial de proteção, que evita que sua rede seja um alvo fácil. É como as portas de uma casa. Nenhuma porta é impossível de arrombar, mas você não gostaria de morar numa casa sem portas. Ao usar WEP, você define numa chave de 10 (WEP de 64 bits) ou 26 (WEP de 128 bits) caracteres em hexa, onde podem ser usados números de 0 a 9 e as letras A, B, C, D, E e F. Também é possível usar caracteres ASCII (incluindo acentuação e todo tipo de caracteres especiais); neste caso as chaves terão respectivamente 5 e 13 caracteres.
A regra básica é que os micros precisam possuir a chave correta para se associarem ao ponto de acesso e acessarem a rede. Em geral os pontos de acesso permitem que você especifique várias chaves diferentes, de forma que cada micro pode usar uma diferente.
Acesso Remoto
Muitos dispositivos, como por exemplo modems ADSL, pequenos servidores de impressão, roteadores, etc. possuem várias opções de configuração; muitas vezes rodam o Linux ou outro sistema operacional completo, mas não possuem nem teclado nem monitor. Nestes casos toda a configuração é feita remotamente, através de algum utilitário de configuração. O mais comum é o uso de alguma interface http, que você acessa de qualquer micro da rede local usando o navegador, ou então o uso do ssh ou telnet. Eu, por exemplo, uso um modem ADSL Parks 600, que pode ser configurado como roteador ou bridge, através de uma interface de administração simples, que acesso via telnet, a partir de qualquer micro da rede. O telnet é um protocolo primitivo que permite rodar comandos remotamente através de uma interface de modo texto. Existem clientes telnet para vários sistemas operacionais. Tanto no Linux quanto no Windows, você acessa uma máquina remotamente via telnet usando o comando "telnet" seguido do endereço IP destino, como em: $ telnet 192.168.0.1
O grande problema é que o telnet não oferece nenhum tipo de segurança. Todas as informações, incluindo as senhas são transmitidas em texto puro, de forma legível pela rede e são fáceis de interceptar. É como se você fizesse suas transações bancárias gritando pela janela. O ssh já é mais evoluído. Ele utiliza um sistema de criptografia bastante seguro para proteger os dados. Alguém pode interceptar as informações, afinal a internet é uma rede pública, mas os dados capturados não terão utilidade nenhuma. O ssh é a opção mais usada para administrar servidores remotamente. Hoje em dia poucas empresas hospedam seus websites "in house" ou seja, em servidores instalados dentro da própria empresa. Quase sempre os servidores ficam hospedados em data centers, complexos que oferecem toda a estrutura necessária para que os servidores fiquem no ar de forma confiável, incluindo links redundantes (se o link principal cai, existe um segundo de reserva), nobreaks de grande porte, geradores, refrigeração (a temperatura ambiente mais baixa ajuda os componentes a trabalhar de forma mais estável) e assim por diante. Isto significa que, apesar do servidor ser "seu", você não tem nenhum tipo de acesso físico a ele. Não pode usar o teclado ou mouse por exemplo, tudo precisa ser feito a distância. No Linux, toda a configuração do sistema, instalação de novos programas, etc. pode ser feita a partir do modo texto, o que permite configurar o servidor e mantêlo atualizado remotamente, via ssh. Outro ponto interessante é que apesar de ser nativo do Unix, existem clientes ssh também para Windows e outras plataformas, permitindo que o responsável administre o servidor a partir de uma estação Windows, por exemplo. Outra possibilidade interessante para o ssh é suporte a distância. Você pode se conectar no micro de um amigo para corrigir algum problema, por exemplo. Para acessar uma máquina remotamente via ssh, você deve informar o login que você usará para se conectar, seguido do IP da máquina, que pode estar tanto na rede local quanto na internet. Se o seu amigo criou o login "suporte" para que você acesse o micro dele remotamente e o IP é 200.221.34.32, o comando seria: $ ssh
[email protected] O ssh pede a senha (tudo feito através da conexão segura) e depois você já vê o prompt da outra máquina:
Embora o uso mais comum seja rodar comandos de modo texto, o ssh também permite rodar aplicativos gráficos. Se você estiver se conectando a partir do Linux, geralmente não precisará fazer nada além de chamar o programa pelo nome, como em: $ konqueror O programa roda no servidor, mas a imagem é exibida no seu monitor:
Este recurso de rodar aplicativos gráficos remotamente é mais útil dentro de uma rede local, pois consome muita banda, deixando as respostas lentas se você acessa via modem, por exemplo. Outro programa interessante para acessar outros micros remotamente é o VNC. Ele permite ver uma extensão do desktop da outra máquina, incluindo o KDE ou outra interface gráfica. O VNC é dividido em dois módulos, um cliente e um servidor. O servidor VNC é instalado na máquina que será acessada remotamente, enquanto as que vão acessar precisam apenas do cliente, um programa pequeno que já vem pré-instalado na maioria das distribuições. Os dois estão disponíveis tanto para Linux quanto para Windows, de forma que você pode acessar um micro com o Windows a partir do Kurumin ou vice-versa.
Finalmente, temos as interfaces de administração via web. Como disse, elas são usadas por muitos modems ADSL (são mais fáceis de usar que a interface de modo texto do meu Parks) e também por programas de configuração destinados a servidores Linux, como o Swat e o Webmin. O Swat permite configurar o Samba, usado para compartilhar arquivos com máquinas Windows, enquanto o Webmin é uma ferramenta completa, que permite configurar vários servidores diferentes. Caso instalados no servidor, ambos podem ser acessados a partir de outro micro da rede local, ou até mesmo via internet, usando o navegador:
O Kernel e as distribuições
Nas reportagens sobre o Linux você lerá muito sobre Linus Torvalds, o criador do Kernel do Linux. Ele (o Kernel) é a peça fundamental do sistema, responsável por prover a infra-estrutura básica para os programas funcionarem. O Kernel é algo comum em todas as diferentes distribuições; muda a versão, mas o Kernel do Linus está sempre ali. O Kernel é o responsável por dar suporte aos mais diferentes periféricos: placas de rede, som, e o que mais você tiver espetado no micro. Uma nova versão sempre traz suporte a muita coisa nova, o que faz diferença principalmente para quem pretende trocar de PC em breve ou está de olho em algum handheld ou mp3player exótico. É por isso que o lançamento de uma atualização importante, como o Kernel 2.6, é sempre tão comemorado. Mas, apesar de toda a sua importância, o grande objetivo dos desenvolvedores é que o Kernel seja invisível. Ele deve simplesmente fazer seu trabalho sem que você precise se preocupar com ele. Você só se dá conta que o Kernel existe quando algo não funciona, de forma que quanto menos você notá-lo melhor, sinal de que as coisas estão funcionando bem... :-). Uma distribuição Linux é como uma receita, ao invés de ficar compilando o Kernel e os programas como faziam os pioneiros, você simplesmente instala um conjunto que uma equipe desenvolveu e disponibilizou. O bom dos softwares é que uma vez criados eles podem ser distribuídos quase sem custo. Ao contrário de um objeto material, que se quebra ao ser dividido, quanto mais pessoas copiarem e usarem sua distribuição melhor: seu trabalho terá mais reconhecimento e apoio.
Alguns exemplos de distribuições são o Debian, Mandriva, Fedora, SuSE, Slackware e Gentoo. Qualquer pessoa ou empresa com tempo e conhecimentos suficientes pode desenvolver uma distribuição. O mais comum é usar uma distribuição já existente como ponto de partida e ir incluindo novos recursos a partir daí. No mundo opensource não é preciso reinventar a roda, os trabalhos anteriores são respeitados e reutilizados, aumentando radicalmente a velocidade de desenvolvimento de novos projetos. A distribuição mais antiga, ainda ativa é o Slackware, que em julho de 2006 completou 13 anos. O Slackware é uma das distribuições mais espartanas, que tem como objetivo preservar a tradição dos sistemas Unix, provendo um sistema estável, organizado, mas com poucas ferramentas automatizadas, que te obriga a estudar e ir mais a fundo na estrutura do sistema para conseguir usar. Muita gente usa o Slackware como ferramenta de aprendizado, encarando os problemas e deficiências como um estímulo para aprender. Pouco depois, em novembro de 1994, foi lançado o Red Hat, que foi desenvolvido com o objetivo de facilitar a configuração e automatização do sistema, incluindo várias ferramentas de configuração. Apesar de sua alma comercial, todas as ferramentas desenvolvidas pela equipe do Red Hat tinham seu código aberto, o que possibilitou o surgimento de muitas outras distribuições derivadas dele, incluindo o Mandrake (França) e o Conectiva (Brasil). Devido à sua origem comum, estas distribuições preservam muitas semelhanças até hoje, sobretudo na estrutura do sistema e localização dos arquivos de configuração. A partir de 2003, a Red Hat mudou seu foco, concentrando seus esforços no público empresarial, desenvolvendo o Red Hat Enterprise e vendendo pacotes com o sistema, suporte e atualizações. O Red Hat Desktop foi descontinuado em 2004, pouco depois do lançamento o Red Hat 9. A partir daí, passou a ser desenvolvido o Fedora combinando os esforços de parte da equipe da Red Hat e vários voluntários que, com a maior abertura, passaram a contribuir com melhorias, documentações e suporte comunitário nos fóruns. O Fedora herdou a maior parte dos usuários do Red Hat Desktop e é atualmente uma das distribuições mais usadas. O Mandrake começou de uma forma modesta, como uma versão modificada do Red Hat, lançada em julho de 1998, cuja principal modificação foi a inclusão do KDE (ainda na versão 1.0). O Mandrake conquistou rapidamente um número relativamente grande de usuários e passou a ser desenvolvido de forma independente, com foco na facilidade de uso. Em 2005 aconteceu a fusão entre o Mandrake e o Conectiva, que deu origem ao atual Mandriva, que passou a ser desenvolvido combinando os esforços dos desenvolvedores das duas distribuições. A história do SuSE é um pouco mais complicada. As primeiras versões foram baseadas no SLS, uma das primeiras distribuições Linux que se têm notícia. Em 1995 os scripts e ferramentas foram migrados para o Jurix, que por sua vez era baseado no Slackware. A partir a versão 5.0, lançada em 1998, o SuSE passou a utilizar pacotes RPM, o formato do Red Hat e passou a incorporar características e ferramentas derivadas dele. Todas estas ferramentas foram integradas no Yast, um painel de controle central que facilita bastante a administração do sistema.
Devido a todas estas mudanças, o SuSE é difícil de catalogar, mas atualmente o sistema possui muito mais semelhanças com o Fedora e o Mandriva do que com o Slackware, por isso é mais acertado colocá-lo dentro da família Red Hat. Em 2003, a SuSE foi adquirida pela Novell, dando origem ao Novell Desktop (uma solução comercial) e ao OpenSuSE, um projeto comunitário, que usa uma estrutura organizacional inspirada no exemplo do Fedora. Finalmente, temos o Debian, cuja primeira versão oficial (chamada Buzz) foi lançada em 1996. O Debian deu origem a uma grande linhagem de distribuições, que incluem de produtos comerciais, como o Linspire e o Xandros a projetos comunitários, como o Ubuntu, Knoppix, Mephis e o próprio Kurumin. As principais características do Debian são a grande quantidade de pacotes disponíveis (atualmente, quase 25 mil, se incluídas as fontes não oficiais) e o aptget, um gerenciador de pacotes que permite baixar, instalar, atualizar e remover os pacotes de forma automática. O Debian utiliza um sistema de desenvolvimento contínuo, onde são desenvolvidas simultaneamente 3 versões, chamadas de Stable (estável), Testing (teste) e Unstable (instável). A versão estável é o release oficial, que tem suporte e atualizações de segurança freqüentes. A versão estável atual é o Sarge (3.1), lançado em junho de 2005; antes dele veio o Woody (3.0), lançado em julho de 2002 e o Potato (2.2), lançado em agosto de 2000. O lançamento da próxima versão estável (batizada de Etch), está planejada para o final de 2006. Apesar do longo intervalo entre os lançamentos das versões estáveis, os pacotes ficam congelados, recebendo apenas correções de segurança. Isso faz com que os pacotes do Stable fiquem rapidamente defasados em relação a outras distribuições. Para solucionar este problema, existe a opção de usar o Testing, composto de pacotes recentes porém menos testados e, como última opção, existe o Unstable, que é a porta de entrada para as últimas versões e por isso sujeito a mais problemas. Em algumas épocas, o uso do Unstable é impraticável, pois muitas alterações são feitas simultaneamente, fazendo com que muitos pacotes fiquem quebrados e apareçam problemas diversos. Tipicamente, os pacotes começam no Unstable, onde recebem uma primeira rodada de testes. Depois de algumas semanas, são movidos para o Testing. Periodicamente, os pacotes no Testing são congelados, dando origem a uma nova versão estável. Além destes, existe o Experimental, usado como um laboratório para a inclusão de novos pacotes. O Debian em si é bastante espartano em termos de ferramentas de configuração e por isso reservado a usuários mais avançados. Porém, muitas distribuições derivadas dele, como Ubuntu, o Mepis e o Kurumin, são desenvolvidas com foco na facilidade de uso e incluem muitas ferramentas e assistentes de configuração. Você pode ver uma tabela mais completa com as origens de cada distribuição neste link do Distrowatch: http://distrowatch.com/dwres.php?resource=independence Veja que dentre as distribuições cadastradas no site, a grande maioria é baseada no Debian (129) ou no Knoppix (50). Naturalmente, as distribuições baseadas no Knoppix também são indiretamente derivadas do Debian e, de fato, muitas distribuições são incluídas dentro das duas categorias.
Em seguida temos as distribuições derivadas do Fedora (63), do Slackware (28) e do Mandriva (14). Até o Kurumin já entrou na lista, com 5 filhos.
Os live-CDs
Tradicionalmente, qualquer sistema operacional precisa ser instalado no HD antes de ser usado. Você dá boot usando o CD ou DVD de instalação e é aberto um sistema compacto, que roda o instalador e se encarrega de instalar e configurar o sistema principal. Depois de algum tempo respondendo perguntas e vendo a barra de progresso da cópia dos arquivos, você reinicia o micro e pode finalmente começar a usar o sistema. Isso é válido tanto para o Windows quanto para a maior parte das distribuições Linux. Os live-CDs são distribuições Linux que rodam diretamente a partir do CD-ROM, sem necessidade de instalar. Um dos pioneiros nesta área é o Knoppix (derivado do Debian), que até hoje é um dos live-CDs de maior sucesso. O Kurumin é um descendente direto dele, desenvolvido com base no Knoppix 3.1 (a versão mais recente no início de 2003) e desenvolvido de forma mais ou menos autônoma a partir daí, utilizando como base os pacotes do Debian, combinados com atualizações provenientes do Knoppix e várias outras distribuições, além de um conjunto de scripts e ferramentas de configuração próprias, centralizadas na forma do Clica-aki.
Para quem já se acostumou com a idéia, pode parecer natural rodar o sistema a partir do CD e até mesmo instalar novos programas, sem precisar modificar as informações salvas no HD, mas o aparecimento do Knoppix foi um verdadeiro marco dentro do mundo Linux. A base de tudo é um módulo de Kernel chamado cloop, um hack que permite que o sistema rode a partir de um sistema de arquivos compactado, gravado no CD-
ROM. Os dados são descompactados "on-the-fly", conforme são necessários. É algo que funciona de forma similar às partições compactadas pelo smartdrive no Windows 95/98 (ainda lembrado pelos saudosistas :), mas com um desempenho melhor e otimizado para CD-ROMs. Graças à compressão, uma distribuição como o Kurumin pode incluir cerca de 1.2 GB de programas, em uma imagem com pouco mais de 400 MB. Além de reduzir o tamanho do sistema, comprimir os arquivos melhora também a taxa de transferência do CD-ROM, diminuindo a perda de desempenho causado pela baixa taxa de leitura. A idéia é que um CD-ROM de 40X é capaz de ler a em média 4 MB/s, pois como o CD gira sempre na mesma velocidade, as informações gravadas nas trilhas da parte externa do CD (mais longas), são lidas a mais ou menos o dobro da velocidade das do centro (que são mais curtas). Um CD-ROM de 40x lê a 6 MB/s nas trilhas externas mas a apenas 3 MB/s nas internas. Como o CD-ROM é gravado a partir do centro, na maior parte do tempo ele lê os dados a 3, 4 ou 5 MB/s. Mas, ao ler 4 MB/s de dados compactados a uma razão de 3x, ele estará lendo na prática a quase 12 MB/s, quase a mesma taxa de transferência de um HD de meia década atrás. Naturalmente ainda existem outros problemas, como o tempo de busca, que é muito mais alto num CD-ROM, mas o problema principal é bastante amenizado. Se não fosse o sistema de compressão, os live-CDs descendentes do Knoppix seriam três vezes maiores e três vezes mais lentos ao rodar do CD, o que os tornariam sistemas muito menos atrativos. Em contrapartida, o trabalho do processador passa a ser maior, pois, além de processar os dados referentes aos programas, ele tem que ao mesmo tempo descompactar os dados lidos pelo CD-ROM. Por isso, mais do que em outras distribuições, o desempenho (ao rodar do CD) aumenta de acordo com o poder de processamento da máquina. Numa máquina lenta, um Pentium II 300, por exemplo, o desempenho é cerca de 50% menor do que seria ao rodar uma distribuição instalada no HD, enquanto num Athlon XP ou Pentium 4 a diferença já é muito menor. A primeira etapa do boot é a tela de boas-vindas e uma linha onde você pode fornecer parâmetros para o boot. Logo depois é carregado o Kernel, que por sua vez inicializa o hardware, cria um ramdisk usando uma parte (pequena) da memória RAM onde são armazenados arquivos de configuração e outros dados que precisam ser alterados durante o uso. Depois disso entra em ação o hwsetup, o programa de detecção que se encarrega de detectar a placa de vídeo, som, rede, modem e outros periféricos suportados, desenvolvido por Klaus Knopper com base no Kudzu do Red Hat.
Este trabalho de detecção é justamente o grande trunfo. Em poucos segundos o sistema é capaz de detectar, configurar e ativar todos os periféricos suportados na máquina, baseado nos códigos de identificação dos dispositivos, sem nenhuma intervenção do usuário. Claro, sempre existem casos de problemas. Algumas placas-mãe travam durante a detecção do ACPI, alguns notebooks travam durante a etapa inicial, onde o sistema procura por placas SCSI e assim por diante. Mas na grande maioria dos casos estes problemas podem ser resolvidos desativando as partes da detecção que causam problemas, usando opções de boot. Veremos mais detalhes sobre isso no capítulo 3. Durante o boot ele tenta sempre configurar automaticamente a rede, obtendo o IP e outros dados a partir de um servidor DHCP disponível na rede. Se a máquina acessar a internet através de uma conexão compartilhada dentro da rede local ou através de um modem ADSL configurado como roteador, ele já será capaz de acessar a web logo após o boot, caso contrário você pode configurar a rede manualmente. Uma questão importante ao usar qualquer live-CD é a questão da memória RAM. Como o sistema por padrão não utiliza as partições do HD, tudo é feito usando a memória RAM, incluindo a instalação de novos programas. O ramdisk que é criado durante o boot vai crescendo conforme são feitas modificações. Em micros com pouca RAM você verá uma mensagem de "disco cheio" (quando na verdade o que acabou foi o espaço no ramdisk), ou até mesmo efeitos diversos por falta de memória RAM disponível.
A instalação de novos programas é possibilitada pelo UnionFS, mais um hack que monitora tentativas de alterações nos arquivos do CD (originalmente impossíveis, já que o CD é somente-leitura) e engana os programas, fazendo-as no ramdisk, permitindo que você altere arquivos e instale novos programas, mesmo ao rodar o sistema a partir do CD. Este recurso está disponível a partir do Knoppix 3.8 e do Kurumin 5.0. A configuração mínima para rodar o Kurumin é um Pentium II com 128 MB de RAM. Para o Knoppix ou outras distribuições, os requisitos variam de 128 a 256 MB. Para usar o apt-get e instalar novos programas (UnionFS), você precisa ter 512 MB de RAM. Para poder abrir vários programas simultaneamente e para melhorar o desempenho geral do sistema, é recomendável ter disponível uma partição swap, que pode ser criada usando o gparted, cfdisk, ou outro programa de particionamento. Muitas distribuições criam uma partição swap automaticamente ao serem instaladas. A memória swap (ou memória virtual) é um recurso usado por todos os sistemas operacionais atuais quando não existe memória RAM suficiente. Ele passa a armazenar os dados que não "cabem" na memória num arquivo ou partição swap criada no HD. É o uso da memória swap que permite que o sistema continue funcionando, mesmo quando não existe memória RAM suficiente. Como não é possível fazer memória swap no CD-ROM, o sistema é capaz de detectar e montar automaticamente partições de memória swap de outras distribuições Linux. Caso você tenha apenas o Windows instalado, ele tentará em último caso criar um arquivo de swap dentro da partição do Windows, mas isto só é possível se o HD estiver formatado em FAT32 (o sistema de arquivos usado pelo Windows 98). Por enquanto ainda não é possível fazer isso em partições NTFS do Windows XP. Ou seja, para rodar o Kurumin em micros com pouca memória RAM, você deve preferencialmente usar um programa de particionamento qualquer para criar uma partição Linux swap ou pelo menos certificar-se de que o HD está formatado em FAT32 e não em NTFS, caso contrário ele não terá para onde correr quando a memória RAM acabar ;-). Além do Knoppix e do Kurumin, existem muitos outros live-CDs, tanto baseados no Debian quanto baseados em outras distribuições, como o Slax (baseado no Slackware) e o PcLinuxOS (baseado no Mandriva).
Como baixar, gravar e dar boot
A forma mais popular de disponibilizar novas versões das distribuições é através de arquivos ISO, cópias binárias do conteúdo dos CDs ou DVD de instalação, que você pode gravar usando o Nero, K3B ou outro programa de gravação, obtendo um CD idêntico ao original. Gravar um arquivo ISO é diferente de gravar um arquivo qualquer no CD. Um arquivo ISO é uma imagem binária que deve ser copiada bit a bit no CD-ROM, e não simplesmente adicionado dentro de uma nova seção. Todos os bons programas de gravação suportam a gravação de arquivos ISO, veja como gravar o arquivo usando alguns programas populares.
Ao usar o Easy CD Creator, abra o Easy CD Creator e clique em "File > Menu > Record CD from CD Image". Aponte o arquivo que será gravado. Marque a opção "ISO Image Files (*.iso)" na janela de navegação e clique em "Start Recording" para gravar o CD. No Nero Burning Rom, clique em File > Burn Image, aponte o arquivo que será gravado e clique em "Write" para gravar o CD. Ao usar o K3B (no Linux), clique em Ferramentas > Gravar Imagem ISO (ou Queimar imagem de CD), aponte o arquivo, escolha a velocidade de gravação e clique em "Gravar".
Depois de gravado o CD, o próximo passo é configurar o setup da placa-mãe para dar boot através do CD-ROM. A maioria dos micros vem configurados para dar boot preferencialmente através do CD-ROM. Neste caso basta deixar o CD na bandeja e você já cai na tela de boas vindas do sistema. Se não for o seu caso, pressione a tecla DEL durante o teste de memória para entrar no Setup. Procure pela seção "Boot" e coloque o CD-ROM como dispositivo primário. Tudo pronto, agora é só salvar a configuração acessando o menu exit, escolhendo a opção "Save & Exit setup".
Ao reiniciar o micro sem o CD no drive, ele volta a carregar o Windows ou outro sistema que estiver instalado no HD. Esta alteração apenas faz com que ele passe a procurar primeiro no CD-ROM. Um hábito saudável é verificar a integridade do arquivo .ISO antes de gravar o CD. Sempre é possível que o arquivo esteja incompleto, ou venha corrompido, seja por problemas com a conexão ou no gerenciador de download usado. Você pode detectar este tipo de problema (e evitar gastar mídias à toa), verificando o MD5SUM do arquivo, um teste que soma todos os bits do arquivo e devolve uma "assinatura", um código de 32 dígitos que permite detectar qualquer mudança no arquivo. Os códigos de assinatura dos arquivos estão quase sempre disponíveis na página de download, como em: 11479ced7eea505506b5a3314d33ee70 kurumin-5.0.iso Você precisa apenas rodar o MD5SUM no arquivo baixado e ver se o resultado é igual ao número da página. No Linux (qualquer distribuição), acesse a pasta onde o arquivo foi baixado e digite: $ md5sum kurumin-5.0.iso Se o número retornado for igual, você pode gravar a imagem sem medo, o arquivo está ok. Caso o número seja diferente, então o arquivo chegou corrompido ou incompleto. Uma dica nesta caso é que é possível corrigir arquivos corrompidos usando o bittorrent (se o arquivo estiver disponível para download através dele). Para isso, baixe o arquivo .torrent para a mesma pasta do arquivo corrompido e inicie o download. O bittorrent usa um algoritmo próprio para verificar cada pedaço do arquivo, descartando os pedaços corrompidos. Isso permite que ele baixe novamente apenas os pedaços corrompidos, sem precisar baixar novamente todo o arquivo. No Windows baixe o programa disponível no http://www.md5summer.org/download.html. Ele é gráfico, até mais fácil de usar que a versão Linux. Uma última dica é com relação aos famosos "Cloop Errors", erros de leitura que aparecem ao tentar rodar qualquer live-CD (que usa o módulo cloop para
compactar os dados) a partir de uma mídia ruim. O cloop possui um sistema próprio para verificar as integridade dos dados no CD, detectando e avisando sobre os erros de leitura. Nestes casos você verá vários "CLOOP READ erros" durante o boot, que indicam justamente que o sistema não está conseguindo ler os dados corretamente. Veja um exemplo: CLOOP READ ERROR:AT POS 5233960 IN FILE/CDROM/KNOPPIX/KNOPPIX CLOOP:ERROR-3 UNCOMPRESSING BLOCK 46065536/0/23207/05233960I/O ERROR DEV OB:00, SECTOR 17212 LINUXRC CANNOT CREAT/VAN/RUN/VTMP.DIRECTORY NOEXISTENT
Os cloop erros podem ser causados por três fatores: a) O arquivo baixado está incompleto ou corrompido. b) O CD ou CD-RW está riscado/danificado e o sistema não está conseguindo ler os dados corretamente (o mais comum). Os CD-RW dão esse tipo de problema mais freqüentemente, pois o índice de refração luminosa da mídia é mais baixa e a superfície de gravação mais frágil, facilitando o aparecimento de problemas de leitura. c) O próprio leitor CD-ROM ou o cabo IDE podem estar com problemas e por isso os dados não estão sendo lidos corretamente, embora a mídia esteja em bom estado. Os CLOOP ERRORS são sempre causados direta ou indiretamente por um destes três fatores; problemas com o CD ou com o hardware do seu micro e não por problemas do software. O sistema pode apresentar outros tipos de problemas na sua máquina, como travar durante a detecção de algum componente, mas este erro específico é justamente um aviso de problemas com a leitura dos dados. Em muitos casos, o sistema roda normalmente a partir do CD, mas apresenta problemas estranhos ao ser instalado (o modo gráfico não abre, alguns aplicativos não funcionam, mensagens de erro diversas reclamando da falta de aplicativos ou bibliotecas, etc.), causados por problemas de leitura durante a instalação. Prefira usar mídias CDR normais e depois doar suas cópias antigas para amigos que ainda não conheçam o sistema, assim você estará evitando dor de cabeça e ainda fazendo uma boa ação :).
Linguagens de programação
Os computadores são funcionários quase perfeitos. Fazem tudo o que mandamos, não reclamam, não se importam de trabalhar até tarde da noite, não cobram hora extra nem tiram férias. Mas, em compensação, também não pensam. Para que façam qualquer coisa é preciso explicar tudo com os mínimos detalhes e na língua deles. Considerando que tudo o que os computadores conseguem entender são seqüências intermináveis de números binários, fornecer estas "instruções" pode ser muito penoso para um ser humano. Você consegue se imaginar lendo um manual
de 5.000 páginas e decorando um a um centenas de códigos binários que representam as instruções do processador? Se os programadores precisassem programar diretamente em binários, decorando seqüências como 10111011101101101110110011001010 para cada instrução do processador e para cada endereço de memória a ser acessado, provavelmente não teríamos mais programadores; já estariam todos loucos. Para facilitar as coisas, começaram a ser desenvolvidas as linguagens de programação, que diferem na sintaxe e recursos, mas têm um ponto em comum, que é a existência de um compilador. Seja programando em C, ou seja em Kylix, você usará um editor para escrever seu programa, respeitando as regras da linguagem escolhida e em seguida rodará o compilador, que interpretará os comandos que formam o seu programa e os transformará em um arquivo binário, que contém as instruções binárias que são entendidas pelo processador. No Windows não temos muito contato com código fonte, pois os programas são quase sempre distribuídos apenas em formato binário, que você não tem como alterar. Mas, no caso do Linux, temos a possibilidade de baixar o código fonte de praticamente todos os programas que usamos no dia-a-dia. Muita gente aprende a programar fuçando no código fonte de algum programa que conhece bem, começando com pequenas traduções e mudanças, e acaba entendendo bem a sintaxe da linguagem e vários dos truques usados. Depois de cada rodada de alterações, é possível compilar todo o código, abrir o programa e verificar de que forma elas alteraram o programa final. A vantagem de usar linguagens de programação é que o desenvolvedor passa a trabalhar com instruções como "if", "else", etc. além de todas as facilidades oferecidas pela linguagem ao invés de gigantescos endereços binários. Sem dúvida muito mais simples. Existem diversas linguagens de programação. Meu objetivo aqui é dar algumas noções básicas sobre as peculiaridades e utilidade de algumas delas Para começar, existe uma linguagem "básica" para quem quer aprender a programar, ensinada nos cursos de lógica da programação, o pseudocódigo. Ele não é uma linguagem "de verdade", mas sim uma maneira mais simples para aprender os fundamentos usados em todas as linguagens de programação. Podemos começar com um exemplo simples. Vamos fazer um programa capaz de tomar uma decisão fácil. Ele pergunta a nota do aluno e diz se ele passou ou não. Para um ser humano isso seria um problema muito elementar, mas para o computador as coisas não são assim tão simples. Lembre-se de que ele é burro e precisa ser orientado passo a passo. Nosso programinha em pseudocódigo poderia ficar assim: escreva: "Qual é a nota do aluno?" leia nota se nota maior ou igual a sete então: escreva "Ele passou" senão: escreva: "Ele foi reprovado"
fim do se fim do programa Este programinha perguntaria a nota e, com base no número que for digitado, avisaria se o aluno passou ou não. Ele poderia ser escrito em qualquer linguagem, mas a lógica seria a mesma. De acordo com os recursos oferecidos pela linguagem escolhida, ele poderia ter uma interface simples em modo texto, uma interface gráfica mais trabalhada, aparecer no meio de uma pagina web e assim por diante. O mesmo programinha escrito em shell script, a linguagem mais elementar que temos no Linux, onde utilizamos comandos de terminal, poderia ficar assim: echo "Qual é a nota do aluno" read nota if [ "$nota" -ge "7" ] then echo "Ele passou" else echo "Ele foi reprovado" fi As linguagens de programação são conjuntos de padrões e comandos que você pode usar para dar ordens para nossos amigos burros. Assim como nas línguas faladas, existem diferenças de sintaxe, gramática e existem linguagens mais simples ou mais complicadas de aprender e linguagens mais adequadas para cada tipo de tarefa a realizar. Veja alguns exemplos de linguagens de programação:
- Assembly: O Assembly foi provavelmente a primeira linguagem de programação da história, surgida na década de 50, época em que os computadores ainda usavam válvulas. A idéia do Assembly é usar um comando em substituição a cada instrução de máquina. No Assembly, cada uma destas instruções equivale a uma instrução do processador. Ao invés de usar instruções como 10101011, você pode usar outras bem mais fáceis de entender e de memorizar, como add, div, mul, and, or, not, etc. Você também pode criar variáveis, que são pequenos espaços na memória RAM reservados para guardar algum tipo de informação, que o programa precisará mais tarde. Você pode usar aquelas instruções que citei para lidar com elas. Por exemplo, a instrução "add" faz com que o processador some duas variáveis; "add x, y" por exemplo, soma os valores de x e y. Apesar de ser exaustivamente trabalhoso, você pode perfeitamente desenvolver pequenos programas em Assembly. Para isso só vai precisar de um compilador e bastante paciência para aprender. Um bom ponto de partida é baixar o MenuetOS, um sistema operacional aberto, inteiramente escrito em Assembly, que inclui todas as ferramentas e compiladores necessários para começar a programar. Na página você encontra também alguns tutoriais e exemplos: http://www.menuetos.net/ O compilador transforma o código escrito em Assembly em linguagem de máquina, que finalmente poderá ser entendida pelo processador.
Existem também os decompiladores, que fazem o trabalho inverso, de transformar um programa já compilado em código Assembly. Este recurso é chamado de engenharia reversa. É assim que conseguem crackear programas, quebrar códigos de proteção (como o do DVD), etc. Claro que para isso, é preciso alguém que conheça muito de Assembly e que tenha disposição para ficar estudando o código até encontrar o que procura. Por causa desta característica de permitir trabalhar diretamente com as instruções do processador, o Assembly é uma linguagem de baixo nível. Existem também linguagens de alto nível, como C++ ou Pascal, onde é possível usar várias funções já prontas ou mesmo ferramentas visuais, como o Kdeveloper ou o Kylix, que são ainda mais fáceis. Em se tratando de programação, o fato de uma linguagem ser "de baixo nível", não significa que ela é ruim, mas apenas que ela manipula diretamente as instruções e endereços de memória e, por isso, é mais trabalhosa e voltada para o desenvolvimento de aplicativos otimizados.
- Fortran: O Fortran foi uma das primeiras linguagens de alto nível da história. Enquanto o Assembly é chamado de linguagem de baixo nível, por nele utilizarmos diretamente as instruções e endereços do processador e memória, numa linguagem de alto nível temos várias funções prontas, o que facilita muito a programação, mas em compensação torna em muitos casos o programa maior e mais pesado, já que o compilador jamais conseguirá gerar um código tão otimizado quanto um programador experiente conseguiria. Fortran é a contração de "Formula Translator". A primeira versão do Fortran foi criada no final da década de 50, mas a linguagem começou a ser usada em larga escala a partir da metade da década de 60, quando surgiram várias versões diferentes. Atualmente o Fortran é ainda usado em diversos aplicativos relacionados a engenharia. Ele é também ensinado em várias universidades, como uma forma mais prática de ensinar lógica da programação.
- Pascal: O Pascal é outra linguagem de alto nível, criada durante a década de 60. O Pascal é uma linguagem bastante estruturada, com regras bastante rígidas, o que a torna difícil de usar. Hoje em dia o Pascal original é pouco usado, mas seus descendentes diretos como o Free Pascal evoluíram muito. O próprio Kylix (junto com o Delphi) é uma evolução do Pascal.
- Cobol: Cobol significa "Common Business Oriented Language". Esta linguagem foi desenvolvida no final da década de 50, com o objetivo de ser uma plataforma de desenvolvimento para aplicações bancárias e financeiras em geral. Comparado com o Pascal e o Assembly, comuns na época, o Cobol é uma linguagem relativamente amigável, o que garantiu uma grande aceitação. Até hoje esta linguagem é usada em muitos sistemas bancários, o que explica a grande procura por programadores experientes nesta linguagem na época do bug do ano 2000.
- C: O C foi desenvolvido durante a década de 70, mas ainda é largamente utilizado. A grande vantagem do C é permitir escrever tanto programas extremamente otimizados para a máquina, como seria possível apenas em Assembly, e ao mesmo tempo vir com várias funções prontas, como uma
linguagem de alto nível, que podem ser utilizadas quando não for necessário gerar um código tão otimizado. A maior parte dos programas Linux e quase todo o Kernel foram escritos em C, o que explica o porquê do sistema ser tão rápido em algumas tarefas.
- C++: O C++ mantém os recursos do C original, mas traz muitos recursos novos, como recursos orientados a objetos, sendo também bem mais fácil de utilizar. O C++ é bastante usado atualmente para desenvolver muitos programas para várias plataformas. Ele é, por exemplo, a linguagem oficial do KDE e da maioria dos programas para ele.
- Python: O Python é uma linguagem de programação com uma sintaxe muito simples e intuitiva e ao mesmo tempo bastante poderosa, que pode ser usada por toda classe de usuários. É uma boa opção de linguagem para quem está começando a programar. No Kurumin, você pode abrir o interpretador do Python em Iniciar > Sistema > Desenvolvimento. A maior parte das distribuições instalam o Python por default. Basta abrir um terminal e chamar o comando "python". Existe também uma versão for Windows que pode ser baixada no: http://www.python.org/download/. Ao abrir um programa, você verá um prompt como este:
Este é o interpretador do Python, um prompt onde você pode digitar um comando de cada vez e já ir vendo os resultados. Bom para ir testando os comandos enquanto você não quiser realmente desenvolver nenhum programa completo. Vamos começar com uma coisa simples. Que tal ouvir um bom dia? Para isso podemos usar o "print" que é o comando para escrever coisas na tela. Este comando é simples de usar, basta escrever a frase entre aspas: print "Bom Dia!". E você terá um:
Podemos personalizar um pouco isto, fazendo com que ele primeiro pergunte o seu nome e depois dê bom dia. Para isso, podemos usar o comando "raw_input", que lê texto digitado no teclado. Este texto precisa ser guardado em algum lugar, para armazená-lo usamos uma variável, que é um pequeno espaço de memória reservado e que pode ser usado mais tarde. Experimente usar a linha abaixo: nome = raw_input("Olá, qual é o seu nome? ") Isso faz com que ele pergunte o seu nome e fique esperando você digitar alguma coisa e dar Enter. Em seguida ele armazena o texto digitado na variável "nome" e volta para o prompt. O texto entre aspas pode ser substituído por outra coisa se quiser. Como disse, a variável armazena dados que podem ser usados mais tarde. Como agora já temos o seu nome armazenado na variável "nome", podemos completar nosso bom dia, fazendo com que ele escreva junto o seu nome (ou o que for que você tenha digitado no passo anterior :-): print "Bom dia", nome Ele escreve a frase "Bom Dia" que está entre aspas e em seguida completa com o texto armazenado na variável "nome". Não se esqueça da vírgula, ela indica que além de escrever o texto armazenado na variável, o interpretador deve adicionar a palavra "nome" em seguida.
Experimente agora abrir o kedit (ou outro editor de textos qualquer) e salvar nosso pequeno programa num arquivo de texto. Ele pode se chamar, por exemplo, "programa.py" (.py de python). Eu enfeitei um pouco mais o meu. Os "\n" no meio do texto são quebras de linha:
Este arquivo pode ser executado usando o interpretador do Python. Para isso, abra um terminal e chame o comando: $ python programa.py O programa vai fazer o mesmo que no prompt do Python, a diferença é que agora ele executa os comandos escritos no arquivo de texto ao invés de ir perguntando. Podemos agora fazer algo usando uma instrução de tomada de decisão. Que tal perguntar a idade e com base nela decidir qual será a próxima frase do diálogo? Se o interlocutor responder que menos de 18 anos, ele pode receber um "Beleza, tem aula hoje?" e se tiver 18 ou mais recebe um "Ei, você não vai trabalhar hoje?". Para isso precisamos começar perguntando a idade. De volta ao nosso editor de textos acrescentamos ao que já tínhamos feito: idade = input("Quantos anos você tem? ") Veja que mudamos o "raw_input" para apenas "input". A diferença entre os dois é que o raw_input pode ser qualquer tipo de dados (letras, números, binários), enquanto o "input" serve para armazenar números. Agora chegamos à parte mais importante, que é fazer o programa descobrir se o número digitado é maior ou menor que 18 e depois decidir qual frase deve escrever. Para isso, vamos usar a instrução "if" (se) que tem sua companheira inseparável, a "elif" (então se). Funciona assim: if idade < 18: print "Beleza, tem aula hoje?" elif idade >= 18: print "Ei, você não vai trabalhar hoje?" Parece complicado à primeira vista, mas não é. O primeiro if verifica se o número é menor (<) que 18. Caso seja, ele escreve o "Beleza, tem aula hoje?" e o programa acaba. Caso o número seja maior que 18, então o primeiro if não faz nada e ele passa para o elif que vai verificar se o número é maior ou igual (>=) a 18. Caso seja, ele
imprime a frase "Ei, você não vai trabalhar hoje?". Veja que eu aproveitei pra colocar mais quebras de linha, que servem para deixar a saída de texto do programa mais legível.
Como vimos, o Python pode trabalhar com expressões aritméticas, usando números e os operadores: + (mais) - (menos) * (multiplicação) / (divisão) == (igual a) != (diferente de) > (maior que) >= (maior ou igual a) < (menor que) <= (menor ou igual a) ** (exponenciação, elevado à) Podemos usá-los para resolver aquele problema clássico de tirar a média das notas do aluno e dizer se ele passou de ano. Digamos que sejam 4 provas e a média para passar seja 7. Precisaríamos perguntar as notas das quatro provas, tirar a média e depois usar o if e o elif para descobrir se a média é maior ou menor que 7. O programa poderia ficar assim: aluno = raw_input("\n Qual o nome do aluno? ") prova1 = input("\n Nota da primeira prova: ") prova2 = input("\n Nota da segunda prova: ") prova3 = input("\n Nota da terceira prova: ") prova4 = input("\n Nota da quarta prova: ") media = (prova1 + prova2 + prova3 + prova4) / 4 if media < 7: print "\n Média", media,". Que vergonha", aluno,". Levou bomba!" elif media >=7: print "\n Média", media,".", aluno, "passou. Parabéns!"
Imagine agora que você não queria saber apenas a média de um aluno, mas da sala inteira. Você precisaria que o programa ficasse perguntando as notas de todos os alunos, um por vez e depois desse a média geral. Para isso precisamos usar a instrução "while" (enquanto), que repete uma seqüência de instruções até que uma condição seja atingida. Podemos começar o programa perguntando o número de alunos na sala e criar uma variável "contagem" com o valor zero. Cada vez que são dadas as notas de um aluno, a variável "contagem" aumenta em 1. Quando ela chegar ao número de alunos da sala, sabemos que todos foram contados. O programa ficaria assim: alunos = input("\n Quantos alunos esta sala tem?") contagem = 0 total = 0 while contagem < alunos: contagem = contagem + 1 print "\n Notas do aluno ", contagem prova1 = input(" Nota da primeira prova: ") prova2 = input(" Nota da segunda prova: ") prova3 = input(" Nota da terceira prova: ") prova4 = input(" Nota da quarta prova: ") total = total + prova1 + prova2 + prova3 + prova4 media = total / alunos / 4 print "\n\n A média geral da sala é", media, "\n\n" Este já ficou um pouco mais complexo que o anterior. Temos três novas variáveis. A variável "alunos" armazena o número de alunos da sala. A variável "contagem" começa com zero mais vai aumentando em 1 a cada vez que o programa roda. O while vai perguntando as notas e vai somando tudo na variável total. Quando finalmente o número de alunos é atingido, vamos para a parte final do programa, onde a média é calculada e escrita na tela. Ao ser executado, o programa primeiro pergunta o número de alunos da sala e depois vai perguntando as notas de cada prova até chegar ao resultado.
O Python reconhece a parte do texto que pertence ao while pela indentação do texto. Quando acaba a indentação, acaba o while. Para indentar uma linha, basta
pressionar espaço quatro vezes. Alguns editores, como o Kwrite e o Kate, possuem botões para indentar blocos de texto, o que facilita seu trabalho neste caso.
- Java: O Java é uma linguagem de programação multiplataforma, com uma sintaxe até certo ponto parecida com o C++, porém com bibliotecas diferentes. Os programas em Java podem ser executados em qualquer sistema operacional, desde que o interpretador esteja instalado. A JVM é um programa que converte o código Java em comandos que o sistema operacional possa executar. Existem máquinas virtuais para vários sistemas operacionais: o problema é que, devido ao processamento executado pela máquina virtual, o programa torna-se mais pesado do que seria caso escrito diretamente para a plataforma. Um exemplo de programa desenvolvido desta forma é o Mercury (um cliente MSN com versões para Linux e Windows, um dos primeiros a oferecer suporte a webcam e por isso bastante famoso). Embora o código fonte do programa seja relativamente simples e bem escrito, ele é bem mais pesado que outros programas similares, por causa da máquina virtual. Explicando de forma mais elaborada, linguagens de programação "tradicionais", como o C e o C++, utilizam um compilador diferente para cada plataforma ou sistema operacional em que o programa irá rodar. O código fonte em si pode ser escrito de forma a ser facilmente portável, ou seja, rodar em diferentes versões do Unix ou em várias famílias de processadores diferentes sem muitas alterações, mas ainda assim será necessário recompilar o código fonte, gerando um binário diferente para cada caso. Embora o trabalho inicial seja maior, a vantagem desta abordagem é que o desempenho é o melhor possível, já que sempre teremos um programa binário otimizado para a plataforma. O Java utiliza um conceito diferente. Ao invés de gerar um binário diferente para cada plataforma, é gerado um binário que pode ser executado em qualquer plataforma, dentro de uma máquina virtual. Este binário "universal" é chamado de bytecode. A idéia é criar aplicativos que possam ser escritos uma vez e a partir daí serem executados em qualquer plataforma, reduzindo os custos de desenvolvimento. Apenas o software da máquina virtual é que precisa ser reescrito para cada plataforma, mas isso é problema dos desenvolvedores da linguagem, não do programador. Existe ainda a opção de abrir mão da flexibilidade do bytecode em troca de um maior desempenho, passando a compilar os programas com otimizações para uma determinada plataforma. Isso é muito útil quando o programa será executado apenas dentro de computadores de uma certa plataforma, como PCs rodando Linux, por exemplo. No caso do Java, a máquina virtual que executa os programas é chamada de Java Virtual Machine. Muitas páginas web utilizam applets Java, por isso a maioria das pessoas acaba instalando o suporte a Java. Hoje em dia, além do Java da Sun, temos versões alternativas, como o Blackdown e o Kofee, que possuem conjuntos de recursos variados, mas são a princípio compatíveis com o código gerado para o Java da Sun.
Embora tenha ganhado relevância com o Java, este conceito não é exatamente novo. Linguagens mais antigas como o LISP e o Prolog já utilizam bytecode e máquinas virtuais.
- Shell Script: Qualquer distribuição Linux inclui um número absurdo de comandos e pequenos utilitários de modo texto, que são o terror dos iniciantes, mas a alegria dos usuários mais avançados. O motivo de utilitários como o "tar", "dump", "dd", "rsync" e muitos outros terem sobrevivido durante tantas décadas sem muitas modificações, não é apenas resultado do saudosismo de alguns, mas resultado do fato de que, ao contrário da maioria dos utilitários gráficos, eles podem ser combinados com outros comandos e entre si, formando scripts poderosos de backup, automatização de tarefas diversas e muitas outras coisas. O shell script é uma espécie de linguagem universal no Linux, pois combina comandos de terminal com estruturas lógicas, similares às encontradas em outras linguagens para criar programas de poucas linhas, capazes de executar tarefas complexas. Via shell script é possível desenvolver em minutos ferramentas que demandariam horas de trabalho em outras linguagens. Muitos dos utilitários de configuração usados nas distribuições (embora muitas vezes não pareçam) são na verdade shell scripts elaborados, que aparentam ser muito mais complexos do que realmente são. Um exemplo de uso de shell scripts são os ícones mágicos, painéis e outras ferramentas que desenvolvi para uso no Kurumin. Uma outra vantagem é que estes programas não precisam ser compilados. Você simplesmente escreve os comandos num arquivo de texto e executa diretamente. Quando precisa fazer alguma alteração você altera o arquivo e pronto, o problema está resolvido. Um exemplo de shell script, que serve só para mostrar uma janelinha dando olá na tela seria simplesmente: kdialog --msgbox "Olá, tudo bem?"
Não escrevi errado, ele só tem uma linha mesmo. Na verdade, quando você escreve um shell script, você simplesmente usa funções de outros programas que estão instalados, por isso ele é tão simples se comparado às linguagens de programação "de verdade" que vimos acima. Você pode encontrar os scripts usados no Kurumin dentro da pasta "/usr/local/bin/". Para estudá-los, você pode abrí-los em qualquer editor de texto e começar fazendo pequenas modificações, para ir aprendendo como eles funcionam. Os painéis gráficos são desenvolvidos com a ajuda do Kommander, que permite criar scripts gráficos, usando as funções do KDE. Os arquivos vão na pasta
"/etc/Painel/" e podem ser abertos usando o "kmdr-editor", no "Iniciar > Sistema > Desenvolvimento". Um shell script nada mais é do que um arquivo de texto comum, contendo os comandos que serão executados, em ordem. Basicamente, se você sabe como fazer alguma tarefa via linha de comando, você não tem problemas em fazer o mesmo via shell script. Este é um exemplo de script simples, que serve para fazer backup dos arquivos de uma pasta num segundo HD, usando o rsync: #!/bin/sh rsync -av /mnt/hda6/ARQUIVOS/ /mnt/hdb6/ARQUIVOS Todo shell script deve começar com a linha "#!/bin/sh" (ou "#!/bin/bash", que tem exatamente a mesma função), que indica quem irá executar os comandos a seguir, neste caso o próprio bash, o interpretador de comandos do Linux. Na verdade, estas linhas não são realmente necessárias, pois o bash é o padrão de qualquer forma, mas não custa nada fazer as coisas de forma elegante ;-). O rsync é eficiente para este tipo de tarefa, pois ele sincroniza o conteúdo das duas pastas transferindo apenas as modificações e não os arquivos completos, como aconteceria se você fizesse uma cópia simples. Para que este arquivo de texto vire um script, é necessário que ele tenha permissão para ser executado, o que é feito usando o comando "chmod +x", como em "chmod +x script". Este é um exemplo de script bem mais complexo, que faz parte do ícone mágico para instalar o VMware Player no Kurumin. Ele faz download do arquivo, verifica se foi baixado corretamente e, se necessário, remove o arquivo e começa de novo, até ter certeza de que ele está ok. Depois, são executados os passos necessários para instalar o programa via linha de comando. No final, ele verifica se o programa foi mesmo instalado e exibe a mensagem apropriada. Este exemplo é mais complexo que os anteriores, pois minha idéia é dar um exemplo de script que é usado na prática: #!/bin/sh cd /packages md5sum=`md5sum vmware-player-distrib.tar.bz2` while [ "$md5sum" != \ "9e41fed4b2d15d3f44522e5861b4bf5a vmware-player-distrib.tar.bz2" ] do cd /packages rm -f vmware-player-distrib.tar.bz2 wget -c http://downloads-guiadohardware.net/vmware-player-distrib.tar.bz2 md5sum=`md5sum vmware-player-distrib.tar.bz2` done tar -jxvf vmware-player-distrib.tar.bz2 cd vmware-player-distrib/ sudo ./vmware-install.pl rm -rf vmware-player-distrib/ if [ -e /usr/bin/vmplayer ]; then kdialog --msgbox "O VMware Player foi instalado com sucesso. Você pode criar novas máquinas virtuais e alterar suas configurações usando o Kurumin-EMU, encontrado no Iniciar > Escritório e Utilitários." else kdialog --msgbox "Aparentemente houve algum problema durante a instalação. Verifique se está conectado
à Internet. Se o servidor do arquivo estiver fora do ar, espere alguns minutos e tente novamente." fi
À primeira vista, o script não parece tão simples assim, mas sem dúvida é bem mais simples que programas escritos em outras linguagens. Dentro do código, podemos notar algumas funções lógicas, como o while (enquanto), o "if" (então) e o "else" (senão). O script começa acessando a pasta onde será feito o download e verificando se o arquivo já não foi baixado. Isso evita que ele baixe de novo se ele já foi instalado anteriormente. Em seguida temos um while, que faz com que ele execute um trecho de código repetidamente, até que uma determinada condição seja satisfeita. No caso, a condição é que o md5sum do arquivo precisa estar correto. Se necessário, ele deleta o arquivo e começa de novo. Depois de baixar o arquivo e verificar o md5sum, ele parte para a instalação, descompactando o arquivo, acessando a pasta que é criada e executando o programa de instalação. No final ele verifica (if [ -e ) se o executável "/usr/bin/vmware" existe, um indício de que o programa foi realmente instalado. Se algo de errado aconteceu e o executável não existe, ele exibe uma mensagem avisando do problema. Hoje em dia, muitos programas gráficos podem ser controlados via linha de comando. Graças a isso, um script pode fazer coisas como abrir e fechar programas, criar novas janelas, minimizá-las ou maximizá-las, alterar seu conteúdo e assim por diante. Via script também é possível acessar bancos de dados, modificar arquivos de configuração de outros programas ou alterar a configuração do sistema e assim por diante. Você pode ler mais sobre o desenvolvimento de shell scripts no meu livro Linux, Ferramentas Técnicas.
Capitulo 2: Entendendo o Sistema Apesar das distribuições estarem cada vez mais fáceis de instalar e existir a opção de rodar o sistema direto a partir do CD-ROM, o "modus operandi" do sistema é bem diferente que o do Windows, o que faz com que muitas vezes mesmo tarefas simples, como instalar novos programas ou configurar a rede, pareçam complicadas. Existe ainda a famosa linha de comando, um recurso extremamente poderoso, que não encontra similar no Windows (o prompt do DOS não passa de uma sombra ridícula e subnutrida que nem entra na conta ;). Este capítulo é um resumo geral da organização do sistema, uso da linha de comando, instalação de novos programas e outras dúvidas comuns. Ele é escrito de forma bem genérica, para que as informações sejam aplicáveis a várias distribuições.
As interfaces e programas
No Windows, a interface gráfica se confunde com o restante do sistema. Existe uma interface "tamanho único" e você simplesmente não tem escolha a não ser se habituar com ela. No Linux, o conceito de interface gráfica é um pouco diferente. O X.org, ou apenas X para os íntimos, é o responsável pela infra-estrutura básica. Ele é o responsável por se comunicar com a placa de vídeo, montar as imagens que serão mostradas no monitor e fornecer os recursos de que os programas precisam. Mas, assim como o Kernel, ele é "invisível". Quem você vê não é o X.org, mas sim um gerenciador de janelas, que é o programa que monta as janelas e menus que você vê na tela. A vantagem é que você pode escolher qual gerenciador de janelas usar. O KDE, usado por padrão no Kurumin e muitas outras distribuições, tem um visual mais ou menos parecido com o do Windows. Se você quiser alguma coisa mais parecida com o MacOS, pode experimentar o Gnome (usado por padrão em muitas distribuições, como o Ubuntu); se quiser algo mais geek, pode tentar o Fluxbox, e assim por diante. Eu pessoalmente recomendo o KDE como melhor opção para quem está começando. Ele tem muitas opções de personalização, permitindo que você deixe-o com praticamente a cara que quiser. Você pode baixar temas, ícones, sons, papéis de parede, etc. no http://kde-look.org. Como o nome sugere, ele é um site dedicado a tudo relacionado a "embelezamento" do KDE. Claro que o Kernel, o X e o KDE são importantes, eles são a base, mas o que interessa mesmo são os programas. Aqui cai bem uma frase interessante do Linus: "Uma coisa interessante sobre os sistemas operacionais é que ninguém realmente usa um sistema operacional, as pessoas usam os programas instalados nele". De que adiantaria um Kernel rápido e estável e uma interface bonita se você não pudesse navegar na internet, assistir filmes nem ouvir música?.
Por serem dois sistemas operacionais muito diferentes, não existe a princípio qualquer compatibilidade entre os programas escritos para o Linux e o Windows. Disse "a princípio", pois hoje em dia existem alternativas para quem precisa rodar programas do Windows no Linux, o que acho muito positivo já que aumenta nossa liberdade de escolha. Não seria muito agradável se você encontrasse vários recursos interessantes no Linux, mas ficasse preso ao Windows por causa de algum programa que você não pode viver sem. Existem basicamente duas opções: o Wine permite executar diretamente programas Windows no Linux. Ele funciona muito bem em alguns casos e não tão bem em outros. O Cedega é uma versão do Wine otimizada para jogos, que permite rodar um grande número de games, como o Counte Strike e Warcraft III, e o CrossOver Office é uma versão otimizada para rodar o Office e outros aplicativos de produtividade. Temos ainda o VMware, que permite rodar o Windows inteiro dentro de uma janela e conseqüentemente todos os programas que quiser. A grande diferença entre o Wine e o VMware, é que o Wine executa os programas Windows diretamente, com compatibilidade limitada, enquanto o VMware permite que você execute diretamente uma instância completa do Windows dentro de uma janela, e rode os programas dentro dela. Mas, voltando ao ponto principal, aqui vai uma pequena amostra de alguns dos programas incluídos nas distribuições atuais, que dão conta das tarefas mais comuns. Mais adiante teremos um capítulo inteiro dedicado a mostrar e analisar os programas disponíveis.
O Konqueror é o navegador incluído no KDE. Ele é bastante rápido e serve também como um excelente gerenciador de arquivos. O Konqueror é bastante versátil, pois pode ser usado para acessar compartilhamentos de rede, ripar CDs, acessar as configurações do KDE e muitas outras funções. Concorrendo com ele temos o Firefox, que se tornou uma espécie de navegador padrão, roubando até mesmo o espaço do IE no Windows. O Firefox deu origem a outros navegadores, como o Epiphany e o Galeon, encontrados em algumas distribuições. Entre os programas de mensagem instantânea, temos o Gaim, Kopete e Sim, que combinam acesso a vários protocolos, como o Trillian for Windows. Entre os programas especializados, que acessam apenas o MSN, temos o Mercury (que inclui inclusive suporte a webcam) e o Amsn, além do Skype, que possui versão Linux. Para assistir filmes e DVDs, você pode contar com o Kaffeine, Xine (e suas variantes, como o gXine e o Toten) e o Mplayer. O suporte a formatos de vídeo diversos já foi um problema no Linux, mas hoje em dia a situação é muito mais confortável que no Windows, com suporte inclusive a vídeos via streaming através do navegador. A maior parte dos codecs disponíveis já vem incluídos no sistema, e o suporte aos formatos de vídeo mais "complicados", como o QuickTime e o WMF, é adicionado instalando um pacote adicional, o "w32codecs". Para assistir DVDs protegidos, você precisa do pacote "libdvdcss2". Existe ainda uma versão Linux do RealPlayer, que completa o time.
Existem algumas exceções a esta regra, como o Fedora, OpenSuSE e o Ubuntu, que vem por padrão com um conjunto capado de codecs, com o objetivo de eliminar qualquer possibilidade de problemas relacionados a licenças ou patentes. Nestes casos, você tem suporte apenas aos formatos mais básicos (muitas vezes sequer a arquivos MP3) e precisa adicionar os demais manualmente. Para ouvir música temos o clássico XMMS, que oferece um conjunto de funções similar ao WinAmp, o próprio Kaffeine e um conjunto de players de "nova geração", como o Amarok, que seguem a tendência de organizar as músicas na forma de coleções, inaugurada pelo iTunes da Apple. Para edição de texto, planilhas e apresentações, a opção mais desenvolvida é o OpenOffice. Como ele é atualizado muito freqüentemente, recebe correções e melhorias num ritmo muito acelerado. Ele já está à frente do MS Office em várias áreas, oferece por exemplo um recurso de salvar qualquer documento como um arquivo PDF, um formato ideal para mandar por e-mail ou publicar na web por exemplo. Em outubro de 2005, foi lançado o OpenOffice 2.0, que trouxe melhorias expressivas na interface e na compatibilidade com os arquivos do Office e o OpenOffice Base, um aplicativo de banco de dados que concorre com o Access. Apesar do OpenOffice ser de longe o mais conhecido e aberto, temos outras opções, como o Koffice, a suíte office do KDE, composta de 11 aplicativos, incluindo o Kword, Koffice, Kpresenter, Kivio (fluxogramas), Krita (editor de imagens), Kchart, Kformula e outros. Eles oferecem a vantagem de serem mais leves que o OpenOffice e possuírem menos funções, o que os torna mais fáceis de usar para muitos. Mais uma opção é a dupla Abiword (texto) e Gnumeric (planilhas), que são bem completos mas ainda assim bastante leves em comparação com o OpenOffice. Para edição de imagem temos o Gimp, um concorrente direto do Photoshop. Para desenho vetorial temos o Inkscape, Sodipodi, Karbon14 e o próprio OpenOffice Draw. O Mozilla Thunderbird é um cliente de e-mails com muitos recursos, incluindo um filtro anti-span adaptável, que "aprende" durante o uso, relacionando novas mensagens de span com outras anteriormente recebidas, enquanto o Evolution é mais parecido com o Outlook, incluindo compatibilidade com servidores Exchange. Temos ainda o Kmail, que se diferencia dos dois por ser um cliente mais simples e leve, integrado ao KDE. Existem muitos jogos que rodam nativamente no Linux, como o Unreal (2003 e 2004), toda a série Quake (incluindo o 4), vários jogos próprios para a plataforma e muitos que rodam através do Cedega. Uma grande diferença entre o Windows e as principais distribuições nesta área é que o Windows em si traz poucos aplicativos e você precisa baixar ou comprar os programas adicionais e ir instalando-os posteriormente. No caso das distribuições, o sistema já vem com um grande conjunto de programas, fazendo com que em muitos casos o principal trabalho seja remover os que não usa.
Onde estou?? Entendendo os diretórios
O primeiro choque para quem está chegando agora é a estrutura de diretórios do Linux, que não lembra em nada o que temos no Windows. No Windows temos os arquivos do sistema concentrados nas pastas Windows e Arquivos de programas, e você pode criar e organizar suas pastas da forma que quiser. No Linux é basicamente o contrário. O diretório raiz está tomado pelas pastas do sistema e espera-se que você armazene seus arquivos pessoais dentro da sua pasta no diretório /home. Mas, as diferenças não param por aí. Para onde vão os programas que são instalados se não existe uma pasta central como a "Arquivos de programas"? E para onde vão os arquivos de configuração se o Linux não possui nada semelhante ao registro do Windows? A primeira coisa com que você precisa se habituar é que no Linux os discos e partições não aparecem necessariamente como unidades diferentes, como o C:, D:, E: do Windows. Tudo faz parte de um único diretório, chamado diretório raiz ou simplesmente "/". Dentro deste diretório temos não apenas todos arquivos e as partições de disco, mas também o CD-ROM, drive de disquete e outros dispositivos, formando a estrutura que você vê no gerenciador de arquivos.
O diretório "/bin" armazena os executáveis de alguns comandos básicos do sistema, como o su, tar, cat, rm, pwd, etc. Geralmente isto soma de 5 a 7 MB, pouca coisa. O grosso dos programas ficam instalados dentro do diretório /usr (de "Unix System Resources", ou recursos de sistema Unix). Este é de longe o diretório com mais arquivos em qualquer distribuição Linux, pois é aqui que ficam os executáveis e bibliotecas de todos os principais programas. A pasta "/usr/bin" (bin de binário), por exemplo, armazena cerca de 2.000 programas e atalhos para programas numa instalação típica. Se você tiver que chutar em que pasta está o executável de um programa qualquer, o melhor chute seria justamente a pasta /usr/bin :-). Outro diretório "populado" é o "/usr/lib", onde ficam armazenadas bibliotecas usadas pelos programas. A função destas bibliotecas lembra um pouco a dos arquivos .dll no Windows. As bibliotecas com extensão ".a" são bibliotecas estáticas, que fazem parte de um programa específico, enquanto as terminadas em ".so.versão" (xxx.so.1, yyy.so.3, etc.) são bibliotecas compartilhadas, usadas por vários programas. Subindo de novo, a pasta "/boot" armazena (como era de se esperar) o Kernel e alguns arquivos usados pelo Lilo (o gerenciador de boot do sistema), que são carregados na fase inicial do boot. Estes arquivos são pequenos, geralmente ocupam menos de 5 MB. Versões antigas do Red Hat e de outras distribuições criam por default uma partição separada para o diretório "/boot" de cerca de 30 MB, posicionada no início do disco para evitar o limite de 1024 cilindros dos BIOS de micros antigos. Isto não é necessário hoje em dia, pois nas versões atuais do Lilo este limite não existe mais. Apesar disso, alguns usuários preferem manter o "/boot" numa partição separada por questão de hábito. Se tiver curiosidade, o arquivo "config-2.6.11-kanotix-7" (o número de versão muda de acordo com a distribuição) é justamente o arquivo compactado com o Kernel do sistema, que é carregado durante o boot.
Quando se fala em particionamento, as possibilidades são muitas, existem até listas de discussão dedicadas exclusivamente ao assunto. Afinal, talvez usar o sistema de arquivos xxx na partição yyy possa melhorar em 0,03% o desempenho do sistema... Tem gente que realmente se prende aos detalhes. :-). Logo abaixo temos o diretório "/dev", que é de longe o exemplo mais exótico de estrutura de diretório no Linux. Todos os arquivos contidos aqui, como, por exemplo, "/dev/hda", "/dev/dsp", "/dev/modem", etc., não são arquivos armazenados no HD, mas sim ponteiros para dispositivos de hardware. Por exemplo, todos os arquivos gravados no "arquivo" "/dev/dsp" serão reproduzidos pela placa de som, enquanto o "arquivo" "/dev/mouse" contém as informações enviadas pelo mouse. Esta organização visa facilitar a vida dos programadores, que podem acessar o hardware do micro simplesmente fazendo seus programas lerem e gravarem em arquivos. Não é preciso nenhum comando esdrúxulo para tocar um arquivo em .wav, basta "copiá-lo" para o arquivo "/dev/dsp", o resto do trabalho é feito pelo próprio sistema. O mesmo se aplica ao enviar um arquivo pela rede, ler as teclas do teclado ou os clicks do mouse e assim por diante. O Kernel se encarrega da parte complicada. O diretório "/etc" concentra os arquivos de configuração do sistema, substituindo de certa forma o registro do Windows. A vantagem é que enquanto o registro é uma espécie de caixa preta, os scripts do diretório "/etc" são desenvolvidos
justamente para facilitar a edição manual. É verdade que na maioria dos casos isto não é necessário, graças aos vários utilitários de configuração disponíveis, mas a possibilidade continua aí. Os arquivos recebem o nome dos programas seguidos geralmente da extensão .conf. Por exemplo, o arquivo de configuração do servidor DHCP (que pode ser configurado para atribuir endereços IP aos outros micros da rede) é o "/etc/dhcpd.conf", enquanto o do servidor FTP é o "/etc/proftpd.conf". Claro, ao contrário do registro, os arquivos do "/etc" não se corrompem sozinhos e é fácil fazer cópias de segurança caso necessário. O diretório "/mnt" (de "mount") recebe este nome justamente por servir de ponto de montagem para o CD-ROM (/mnt/cdrom), drive de disquetes (/mnt/floppy), drives Zip e outros dispositivos de armazenamento. O uso do diretório /mnt é apenas uma convenção. Você pode alterar o ponto de montagem do CD-ROM para /CD, ou qualquer outro lugar se quiser. Isso é configurável através do arquivo "/etc/fstab", onde vai a lista de todos os dispositivos usados pelo sistema e as pastas em que cada um é montado.
Nada impede que você crie mais pastas no diretório raiz para armazenar seus arquivos. Apesar de ser recomendável em termos de organização e segurança, você não é obrigado a concentrar seus arquivos dentro do seu diretório de usuário. Nada impede que você abra o gerenciador de arquivos como root (kdesu konqueror), crie
uma pasta /MP3, abra o menu de permissões para que seu login de usuário tenha permissão para acessá-la e a utilize para guardar suas músicas, por exemplo.
Usando o terminal
No início, todos os sistemas operacionais usavam apenas interfaces de modo texto. Antes do Windows, existiu o DOS e, antes do KDE, Gnome e todas as outras interfaces que temos atualmente, o Linux tinha também apenas uma interface de modo texto. A diferença é que no Linux a interface de modo texto evoluiu junto com o restante do sistema e se integrou de uma forma bastante consistente com os aplicativos gráficos. Quanto mais você aprende, mais tempo você acaba passando no terminal; não por masoquismo, mas porque ele é realmente mais prático para fazer muitas coisas. Você pode chamar qualquer aplicativo gráfico a partir do terminal; na maioria dos casos o comando é o próprio nome do programa, como "konqueror" ou "firefox". Durante o livro você vai notar que, em muitos exemplos, ensino os passos para executar tarefas através da linha de comando, pois os atalhos para abrir os programas, itens nos menus, etc., podem mudar de lugar, mas os comandos de texto são algo mais ou menos universal, mudam pouco mesmo entre diferentes distribuições. Esta mesma abordagem é adotada de forma geral dentro dos livros sobre Linux. Por exemplo, para descompactar um arquivo com a extensão .tar.gz, pelo terminal, você usaria o comando: $ tar -zxvf arquivo.tar.gz Aqui o "tar" é o comando e o "-zxvf" são parâmetros passados para ele. O tar permite tanto compactar quanto descompactar arquivos e pode trabalhar com muitos formatos de arquivos diferentes, por isso é necessário especificar que ele deve descompactar o arquivo (-x) e que o arquivo está comprimido no formato gzip (z). O "v" é na verdade opcional, ele ativa o modo verbose, onde ele lista na tela os arquivos extraídos e para onde foram. Se você tivesse em mãos um arquivo .tar.bz2 (que usa o bzip2, um formato de compactação diferente do gzip), mudaria a primeira letra dos parâmetros, que passaria a ser "j", indicando o formato, como em: $ tar -jxvf arquivo.tar.bz2 Você poderia também descompactar o arquivo clicando com o botão direito sobre ele numa janela do Konqueror e usando a opção "Extrair > Extrair aqui". Para quem escreve, é normalmente mais fácil e direto incluir o comando de texto, mas você pode escolher a maneira mais prática na hora de fazer. Existe um número muito grande de pequenos aplicativos de modo texto, cada um deles suportando muitos parâmetros diferentes, por isso é quase impossível conhecer todos. Aprender a usar o modo texto é parecido com aprender uma segunda língua, é um processo gradual e constante, onde você sempre está
aprendendo comandos, parâmetros e truques novos. É uma área em que ninguém pode dizer que sabe tudo. Existem duas formas de usar o terminal. Você pode acessar um terminal "puro" pressionando as teclas "Ctrl+Alt+F1", mudar entre os terminais virtuais pressionando "Alt+F2", "Alt+F3", etc. e depois voltar ao modo gráfico pressionando "Alt+F7", "Alt+F5" ou mesmo "Alt+F3", dependendo do número de terminais de texto usados na distribuição em uso. Estes terminais são às vezes necessários para manutenção do sistema, em casos em que o modo gráfico deixa de abrir, mas no dia-a-dia não é prático usá-los, pois sempre existe uma pequena demora ao mudar para o texto e voltar para o ambiente gráfico, e, principalmente, estes terminais não permitem usar aplicativos gráficos. Na maior parte do tempo, usamos a segunda forma, que é usar um "emulador de terminal", um terminal gráfico que permite rodar tanto os aplicativos de texto, quanto os gráficos. No KDE, procure o atalho para abrir o Konsole. Ele possui várias opções de configuração (fontes, cores, múltiplas janelas, etc.). Se você preferir uma alternativa mais simples, procure pelo Xterm. O Xterm é o mais simples, que abre quase instantaneamente. O Konsole por sua vez é bem mais pesado, mas oferece mais recursos, como abrir vários terminais dentro da mesma janela, fundo transparente, etc. Dê uma olhada rápida em cada um e veja qual lhe agrada mais. Além destes dois, existem vários outros, como o Gnome Terminal, Rxvt e Eterm, incluídos ou não de acordo com a distribuição. Na maioria dos casos, ao chamar um programa gráfico através do terminal, você pode passar parâmetros para ele, fazendo com que ele abra diretamente algum arquivo ou pasta. Por exemplo, para abrir o arquivo "/etc/fstab" no Kedit, use: $ kedit /etc/fstab Para abrir o arquivo "imagem.png" no Gimp, use: $ gimp imagem.png No começo, faz realmente pouco sentido ficar tentando se lembrar do comando para chamar um determinado aplicativo ao invés de simplesmente clicar de uma vez no ícone do menu. Mas, depois de algum tempo, você vai perceber que muitas tarefas são realmente mais práticas de fazer via terminal. É mais rápido digitar "kedit /etc/fstab" do que abrir o kedit pelo menu, clicar no "Arquivo > Abrir" e ir até o arquivo usando o menu. É uma questão de costume e gosto. O importante é que você veja o terminal como mais uma opção, que pode ser utilizada quando conveniente, e não como algo intimidador.
Completando com a tecla Tab
Um dos recursos que torna o terminal um ambiente dinâmico é a possibilidade de completar comandos e nomes de arquivos usando a tecla Tab do teclado. Por exemplo, imagine o comando: $ md5sum kurumin-6.0alpha1.iso Um pouco desconfortável de digitar não é mesmo? Nem tanto. Com a ajuda da tecla tab, você pode digitá-lo com apenas 8 toques: md5
kur. Prontinho, fica faltando só dar o enter :-). Se por acaso houver outro comando começado com "md5" ou outro arquivo na mesma pasta começado com "kur", então o Tab completará até o ponto em que as opções forem iguais e exibirá uma lista com as possibilidades para que você termine de completar o comando. Por exemplo, se tivesse os arquivos kurumin-5.1.iso e kurumin-6.0alpha1.iso na mesma pasta, ele completaria até o "md5sum kurumin-", onde os nomes diferem e deixaria que completasse o comando. Pressionando duas vezes, ele exibe uma lista das opções disponíveis. Por exemplo, digitando: aptget remove, ele pergunta: Display all 826 possibilities? (y or n) Continuando, ele exibe uma lista de todos os pacotes (atualmente instalados), que poderiam ser removidos usando o comando. O autocompletar é bem inteligente, entendendo a sintaxe dos comandos usados e exibindo apenas as possibilidades que se aplicam a eles.
Comandos do prompt
Apesar da interface gráfica ser muito mais fácil de usar, é bom você ter pelo menos uma boa noção de como as coisas funcionam pelo prompt de comando, isso vai lhe dar um domínio muito maior sobre o sistema. Em vários pontos deste livro, sem falar de outros tipos de documentação sobre Linux, você verá receitas com longas listas de comandos que devem ser dados para configurar ou alterar algo. Na grande maioria dos casos, existe algum utilitário gráfico que permite fazer o mesmo, mas os autores geralmente preferem dar a receita de como fazer via linha de comando, pois nem todo mundo terá os utilitários à mão e muitas vezes existem diferenças entre as opções disponíveis nas diferentes distribuições. Dar simplesmente uma lista de comandos torna a dica utilizável para um número maior de pessoas. Outro ponto é que muitas vezes é realmente mais fácil simplesmente dar um comando para abrir um arquivo e descomentar algumas linhas do que abrir um utilitário que demora 10 segundos para carregar, navegar por um monte de menus diferentes e marcar algumas opções escondidas. Uma coisa interessante no Linux é que você não precisa realmente digitar os comandos, basta selecionar a linha e usar o botão do meio do mouse para colá-la na janela do prompt. O modo de comando é uma forma de "conversar" com o sistema, com mais opções do que seria possível através de um utilitário gráfico e obtendo respostas mais rápidas. É claro que o modo de comando pode assustar no início, mas um pouco de insistência vai facilitar bastante sua vida daqui em diante. Não seja apressado, o legal é justamente ir aprendendo comandos novos conforme os problemas forem aparecendo. Aqui estão alguns comandos básicos: cd: Serve para navegar entre os diretórios. Ao abrir o terminal, você começa dentro do seu diretório home (como "/home/kurumin"). Para acessar um diretório específico, especifique-o como parâmetro, como em
"cd /etc". Para subir um diretório use "cd .." e, para voltar ao home, digite simplesmente "cd", sem parâmetro algum. Sempre que quiser confirmar em qual diretório está, use o comando "pwd". Se você estiver dentro da pasta "/home/kurumin/arquivos/", por exemplo, e quiser ir para a pasta "/usr/local", não é preciso usar o "cd .." até voltar ao diretório raiz, para só depois abrir a pasta, basta dar o comando "cd /usr/local", de qualquer lugar, para ir diretamente à pasta desejada. Se, por outro lado, você quiser acessar a pasta "trabalho", dentro da pasta atual, digite apenas "cd trabalho". ls: Serve para listar os arquivos e diretórios dentro da pasta atual. Na maioria das distribuições, a listagem aparece colorida, permitindo diferenciar as pastas e os diferentes tipos de arquivos. As pastas aparecem em azul, os links em azul claro, os arquivos compactados em vermelho, as imagens em rosa, os executáveis em verde e os arquivos de texto e outros formatos em preto.
Para incluir os arquivos ocultos (que no Linux começam com "."), use "ls -a". Para ver mais detalhes sobre cada arquivo, incluindo o tamanho, permissões de acesso e dono, use "ls -lh". Para incluir os ocultos, adicione o "a", como em "ls -lha". A ordem dos parâmetros não altera o resultado do comando. Tanto faz digitar "tar -zxvf arquivo.tar.gz", quando "tar -xzfv arquivo.tar.gz". Acostume-se a sempre usar a tecla Tab para completar os comandos (principalmente os nomes de arquivos), assim, além de digitar mais rápido, você diminui a possibilidade de erros. man: Como disse, ninguém pode dizer que sabe tudo sobre todos os comandos do terminal. Para facilitar as coisas, cada comando possui um manual, onde são citados todos os parâmetros e vários exemplos. Todos estes manuais são acessados através de um comando único, o "man". Para ver as (muitas) opções do "ls", por exemplo, use "man ls". Use as setas para rolar a tela e, para sair do manual, pressione a tecla "q". O man acaba sendo um componente essencial para quem usa muito a linha de comando, pois mesmo comandos simples, como o ls, cat, grep, tail, usados no dia-a-dia possuem mais parâmetros do que é possível memorizar (pelo menos para uma pessoa normal ;), de forma que o man acaba servindo como um guia de consulta rápida. Mas, devido à quantidade de parâmetros disponíveis, os manuais de muitos programas são muito longos e complicados. Por isso, muitos suportam o parâmetro "--help", que exibe uma ajuda resumida, contendo apenas os parâmetros mais usados. Experimente, por exemplo, o "ls --help".
Se você quiser apenas uma descrição rápida do que um determinado comando faz, experimente o comando "whatis" (o que é), como em: "whatis ls". Mais uma variante do man é o comando "info", que contém manuais alternativos para muitos comandos. Enquanto os manuais do man são técnicos, desenvolvidos para serem manuais de referência, os do info normalmente utilizam uma linguagem mais simples, abordando apenas as opções mais comuns. Nem todos os comandos possuem uma página info, mas o número vem crescendo. Para usá-lo, basta digitar "info comando", como em "info lsmod". cp: Este é o comando usado para copiar arquivos de uma pasta a outra. Inclua o nome do arquivo e a pasta para onde ele vai, como em "cp arquivo.tar.gz /mnt/sda1". Se você quiser copiar um arquivo que está em outra pasta para o diretório atual, inclua a localização completa do arquivo e em seguida o "./" (que representa o diretório atual), como em "cp /mnt/cdrom/video.avi ./". O cp é por padrão um comando bastante chato e difícil de entender. Se você quer copiar uma pasta do CD para o diretório atual, o mais lógico seria digitar "cp /mnt/cdrom/musicas ./", não é?. Mas, se você fizer isso, ele responde: "cp: omitindo diretório '/mnt/cdrom/musicas' ". Para copiar toda a pasta, você precisaria incluir o comando "-r", que explica que ele deve copiar recursivamente, incluindo todos os arquivos e subdiretórios. Um parâmetro bastante útil é o "-a", que faz com que o cp sempre copie recursivamente, mantenha as permissões do arquivo original e preserve os links simbólicos que encontrar pelo caminho. Em resumo, faz o cp se comportar de uma forma mais simples e lógica. Para copiar a pasta do exemplo original, experimente usar "cp -a /mnt/cdrom/musicas ./". Você pode ainda usar o "*" e a "?" como curingas quando quiser copiar vários arquivos. Para copiar todos os arquivos da pasta atual para a pasta "/mnt/hda6", por exemplo, use "cp * /mnt/hda6". A "?" por sua vez é mais contida, substituindo um único caractere. Por exemplo, "cp arquivo?.txt /mnt/hda6", copia o "arquivo1.txt", "arquivo2.txt" e o "arquivo3.txt", mas não o "arquivo21.txt". Lembre-se da diferença entre usar a barra ou não no início do arquivo. Uma barra especifica que você está dando o caminho completo a partir do diretório raiz, como em "/mnt/cdrom/musicas", por exemplo. Ao dar o nome de uma pasta ou arquivo, sem a barra, o sistema entende que ele está dentro do diretório atual. Por exemplo, se você está no diretório /home e quer acessar a pasta "/home/kurumin/arquivos", você precisaria digitar apenas "cd kurumin/arquivos". Outra dica é que existem no shell algumas variáveis de ambiente que podem ser usadas para abreviar comandos. Por exemplo, o caractere "~" representa seu diretório home (como "/home/kurumin"). Você pode usá-lo para abreviar comandos: para copiar a pasta "/mnt/cdrom/musicas" para o home, você pode usar "cp -a /mnt/cdrom/musicas ~", ao invés de digitar "cp -a /mnt/cdrom/musicas /home/kurumin", por exemplo. mv: O mv serve tanto para mover arquivos de um lugar para o outro quanto para copiar arquivos. Para mover o arquivo foto.png para a pasta "/mnt/hda6/", o comando seria "mv foto.png /mnt/hda6". Você pode usar o mv também para mover e renomear pastas. A diferença entre o mv e o cp é que, ao mover, o arquivo original deixa de existir. rm: O rm serve para remover tanto arquivos quanto diretórios, de acordo com os parâmetros usados. Para remover um arquivo simples, basta usá-lo diretamente, como em "rm arquivo". Para que ele remova sem pedir a confirmação, adicione o parâmetro "-f", como em "rm -f arquivo". Para remover uma pasta e todos os arquivos e diretórios dentro dela, adicione o parâmetro "-r", como em "rm -rf arquivos/". Tome cuidado ao usar o "-rf", pois ele não pede confirmação, deleta os arquivos diretamente, sem escalas. Respire fundo e verifique se realmente está deletando a pasta certa antes de pressionar Enter.
É possível também usar caracteres curingas na hora de remover arquivos. Para remover todos que possuírem a extensão ".jpg", use "rm -f *.jpg". Para remover todos os arquivos que começarem com "img", use "rm -f img*". Lembre-se de que você pode usar também o "?" quando quiser usar o curinga para apenas um caractere específico. Se você quiser remover os arquivos "doc1.txt", "doc2.txt" e "doc3.txt", mas sem remover o "doc10.txt" e o "doc11.txt", você poderia usar o comando "rm -f doc?.txt". mkdir: Este serve para criar novos diretórios, como em "mkdir /mnt/hda6/arquivos". É possível também criar pastas recursivamente, criando se necessário todas as pastas necessárias até chegar a que você pediu, adicionando o parâmetro "-p" como em "mkdir -p /mnt/hda6/arquivos/novos/2006". Mesmo que a pasta "novos" não exista, ela será criada. rmdir: Esta é uma variação do mkdir, que permite remover diretórios. A diferença entre ele e o "rm -rf" é que o rmdir só remove diretórios vazios. Acostume-se a usá-lo no lugar do "rm -rf" ao deletar uma pasta que acha que está vazia, assim você evita acidentes. locate: Este é um dos comandos mais úteis na minha opinião; ele permite encontrar arquivos de forma instantânea. Assim como mecanismos de busca, como o Google, o locate não sai procurando em todo o HD até achar o arquivo que pediu. Ele procura apenas dentro de uma base de dados, que contém os nomes de todos os arquivos. Esta base é gerada ao rodar o comando "updatedb", sua cara metade. A vantagem de usar a base de dados é que as buscas são instantâneas, a desvantagem é que você precisa rodar o updatedb (como root) de vez em quando, a fim de incluir as últimas modificações. Para procurar um arquivo, simplesmente use "locate arquivo". Se você está procurando por um programa, experimente o comando "which", uma variante do locate que mostra apenas executáveis. find: O find também permite localizar arquivos, mas funciona da forma tradicional, realmente vasculhando os diretórios em busca dos arquivos, ao invés de usar uma base de dados, como o locate. Embora seja lento ao procurar em diretórios com muitos arquivos e subdiretórios, o find é eficiente se você souber previamente onde procurar. Por exemplo, o diretório "/etc" concentra as configurações do sistema. Se você estiver procurando pelo arquivo "smb.conf" (onde é armazenada a configuração do Samba), você poderia ir direto à fonte, usando o comando "find /etc -name smb.conf". Note que além do diretório onde ele vai procurar (/etc no exemplo), você deve usar o parâmetro "-name" antes de indicar o nome do arquivo que está procurando. Omitindo o diretório, ele simplesmente procura dentro do diretório atual. Você pode também fazer buscas por todos os arquivos com uma determinada extensão, como em "find /mnt/hda6 -name *.mp3". Uma forma mais amigável de procurar arquivos é usar o kfind, o "Procurar arquivos" do KDE, que serve como uma interface para o find. Através dele você pode procurar pelo nome ou tipo de arquivo (você pode fazer uma busca incluindo apenas arquivos de imagem, por exemplo), procurar dentro de pastas específicas ou localizar arquivos pertencentes a um determinado usuário ou grupo do sistema, ou até mesmo procurar por arquivos modificados recentemente.
su: No Linux, existe uma separação clara entre o root e os demais usuários do sistema. O root é o único que pode alterar a configuração do sistema e usar a maior parte das ferramentas de configuração. Os usuários normais, por sua vez, podem usar os programas instalados e modificar arquivos dentro do seu diretório home. Esta organização permite que várias pessoas usem o mesmo micro (o que é vital no caso dos servidores), sem que um possa alterar as configurações do outro, nem muito menos mudar as configurações do sistema. Por um lado, isso torna o sistema muito mais robusto, mas por outro faz com que algumas tarefas sejam mais complexas, pois você precisará primeiro se logar como root, para depois executar o comando. O su permite que você "vire" root a qualquer momento, passando a abrir os programas, modificar arquivos e usar todas as ferramentas sem limitações. Digite "su" e forneça a senha de root. O "$" do terminal vira um "#", alertando que a partir daí você tem plenos poderes. Se ao tentar abrir arquivos gráficos você receber uma mensagem dizendo que não é possível se conectar ao X, experimente usar o comando "sux" no lugar do su. Ele configura as permissões corretamente. Algumas distribuições, como o Kurumin e o Ubuntu incluem uma variação dele, o "sudo", que permite executar comandos específicos como root. Para abrir o Konqueror (o gerenciador de arquivos), como root, de forma a conseguir alterar arquivos fora do seu home, digite "sudo konqueror". Dependendo da configuração, ele abre sem pedir senha, ou confirma sua senha de usuário, uma proteção contra a possibilidade de outra pessoa estar usando seu micro. cat: Serve para ver o conteúdo de um arquivo. Por exemplo, "cat carta" mostra o conteúdo do arquivo "carta". Este comando serve bem para ver o conteúdo de arquivos de texto pequenos, sem precisar abrir um editor mais sofisticado. Ele também pode ser combinado com outros comandos para realizar tarefas mais complexas. Por exemplo, se você tem um arquivo "boot.img" com a imagem de um disquete de boot, não bastaria simplesmente copiar o arquivo para o disquete com o comando cp; você precisaria fazer uma cópia bit a bit. Existem várias formas de fazer isso, mas uma solução simples seria usar o comando "cat boot.img > /dev/fd0". Neste caso, ele lista o conteúdo do arquivo, mas ao invés de mostrar na tela ele o escreve no disquete (/dev/fd0). No shell existem alguns caracteres especiais, como o ">", ">>" e o "|", que permitem enviar informações e o texto de resposta de comandos de um lugar para o outro. Você verá muitos usos úteis para estes recursos especiais ao estudar sobre shell script. clear: Limpa a tela, uma forma de colocar a ordem na casa antes de executar novos comandos. Ao invés de digitar, você pode pressionar "Ctrl+L", que é o atalho de teclado para ele.
head: Este é um dos primos do cat, ele permite ver apenas as primeiras linhas do arquivo, ao invés de exibir a coisa inteira. Basta especificar o número de linhas que devem ser exibidas, como por exemplo "head -20 texto.txt". Outro parente distante é o tail (cauda), que mostra as últimas linhas do arquivo. O uso é o mesmo, basta indicar o número de linhas que devem ser mostradas e o nome do arquivo, como "tail -12 meu_longo_texto.txt". Este comando é muito usado por administradores de sistemas para acompanhar os arquivos de log de seus servidores. Como as novas entradas destes arquivos vão sendo inseridas no final do arquivo, o tail permite verificar rapidamente apenas as novas inclusões, sem precisar perder tempo abrindo o arquivo inteiro. du: O du permite ver uma lista com o espaço ocupado por cada pasta dentro do diretório atual. É uma forma rápida de encontrar grandes arquivos ou pastas que estão consumindo muito espaço. Em geral usamos "du -h", onde o -h faz com que ele exiba o tamanho dos arquivos de forma "humana", escrevendo "2,8G" ao invés de "2876322", por exemplo. O Konqueror inclui um modo de visualização que funciona de maneira similar, mostrando os arquivos e pastas na forma de blocos coloridos, classificados de acordo com o tamanho. Para ativar este modo, clique no último botão da barra de funções:
| (pipe): Junto com as setas de redirecionamento (> e >>), o pipe ( | ) é muito usado em scripts e comandos diversos. Ele permite fazer com que a saída de um comando seja enviada para outro ao invés de ser mostrada na tela. Parece uma coisa muito exótica, mas acaba sendo incrivelmente útil, pois permite "combinar" diversos comandos que originalmente não teriam nenhuma relação entre si, de forma que eles façam alguma coisa específica. Por exemplo, imagine que você quer imprimir o manual de algum dos comandos, ou mandar por e-mail para alguém que não tem Linux instalado. Uma forma de fazer isso seria usar o comando "man comando | col -b > arquivo.txt", que copia toda a saída do comando man para o
arquivo.txt, mantendo a formatação e as quebras de linha. Aqui usamos o pipe para enviar a saída do man, que originalmente seria mostrada na tela, para ser reformatada pelo comando "col -b" e, a partir daí, para o arquivo. O pipe é um componente de muitos comandos que veremos ao longo do livro. grep: O grep permite filtrar a saída de um determinado comando, de forma que ao invés de um monte de linhas, você veja apenas a informação que está procurando. Ele é freqüentemente usado em conjunto com o pipe, sobretudo em scripts. Um exemplo simples: sua placa de rede não está funcionando e você quer saber se o módulo de kernel "sis900", que dá suporte a ela, está carregado. Você pode ver os módulos que estão carregados usando o comando "lsmod", mas a lista é um pouco longa. Você poderia completar o lsmod com "| grep sis900", que vai filtrar usando o grep, mostrando na tela apenas as linhas contendo "sis900". O comando ficaria então "lsmod | grep sis900". Se não aparecer nada na tela, você sabe de antemão que o módulo não está ativo, Neste caso, você poderia tentar carregá-lo manualmente usando o comando "modprobe sis900", como root. split: Esse comando serve para quebrar arquivos em vários pedaços. Muito útil quando você precisa gravar arquivos grandes em vários disquetes ou CDs, por exemplo. Imagine que você queira quebrar um arquivo de 3 GB chamado "tenshi.avi" em vários arquivos de 650 MB cada um, de forma a conseguir gravá-lo em vários CDs. Poderia usar o comando "split -b 650m tenshi.avi". O "650m" é o tamanho de cada pedaço, no caso 650 MB. Você precisa apenas trocar o tamanho dos pedaços e o nome do arquivo. Esse comando vai gerar vários arquivos: xaa, xab, xac, xad, etc. que podem ser transportados. Para juntá-los depois, usamos o comando cat que vimos acima. Basta reunir todos na mesma pasta novamente e rodar o comando "cat x* > tenshi.avi". Isso junta todos os arquivos (na ordem) restaurando o arquivo original. Isso funciona porque os fragmentos de arquivo gerados pelo split sempre começam com "x". Outro truque é que você pode usar o cat também para juntar diversos arquivos, formando um só. Isto funciona para músicas e vídeos, por exemplo. Para juntar vários vídeos curtos, num único maior, use "cat video1.avi video2.avi video3.avi > videozao.avi". &: Este é um parâmetro que permite rodar aplicativos mantendo o terminal livre. No Linux, todos os aplicativos, mesmo os gráficos, podem ser chamados a partir de uma janela de terminal. O problema é que, ao chamar algum aplicativo, o terminal ficará bloqueado até que o aplicativo seja finalizado, obrigando-lhe a abrir um para cada programa. Acrescentar o & no final do comando, como em "konqueror /etc &" resolve este problema, mantendo o terminal livre. Se você esquecer de acrescentar ao "&" ao abrir um programa, ainda pode "destravar" o terminal pressionando "Ctrl+Z" (que paralisa o programa e te devolve o controle do terminal) e depois "bg", que reinicia o programa em background. Note que alguns aplicativos exibem mensagens diversas e avisos depois de serem abertos, o que "suja" o terminal, mas sem comprometer o que você está fazendo. Se isto te incomodar, você pode adicionar um "&>/dev/null" ao comando, o que descarta todas as mensagens, como em "konqueror /etc & &>/dev/null". startx: Serve para abrir a interface gráfica a partir do prompt, caso você tenha escolhido inicializar o sistema em modo texto. Histórico: O terminal mantém um histórico dos últimos 500 comandos digitados. Para repetir um comando recente, simplesmente pressione as setas para cima ou para baixo até encontrá-lo. Para fazer
uma busca use o comando "history | grep comando" , como em "history | grep cp" para mostrar todas as entradas onde foi usado o comando "cp". Ponto e vírgula: Você também pode executar uma fila de comandos de uma vez. Basta separá-los por ponto e vírgula, como em "ls; pwd" ou "cd /mnt/arquivos; ls" Lembre-se de que no Linux o terminal distingue entre letras maiúsculas e minúsculas. "ls" é diferente de "LS". Quando criar novos arquivos e pastas, prefira usar nomes em minúsculas, assim você evita confusão. Desligando: Assim como no Windows, você precisa desligar o sistema corretamente para evitar perda de arquivos e corrompimentos diversos na estrutura da partição. Além das opções nos menus do KDE ou Gnome, você pode desligar via terminal, usando os comandos abaixo. Não se esqueça que todos eles precisam ser executados como root. Use primeiro o comando su ou o sudo: reboot: Reinicia o micro. halt: Desliga o micro. shutdown -h now: Também serve para desligar o sistema, mas permite que você especifique um horário. É muito útil se você deixar o micro ligado à noite fazendo alguma coisa ou baixando um arquivo, mas quiser que ele desligue sozinho depois de um certo tempo. Substitua now (agora) por um tempo em minutos que o sistema esperará antes de desligar, usando o parâmetro "+" como em shutdown -h +60. Você pode ainda especificar um horário, no formato hh:mm como em shutdown -h +06:00 (para desligar às 6:00 da manhã). Ctrl+Alt+Del: Este é um atalho de teclado que, dado no terminal de texto, serve para reiniciar o micro. Não tem tanta utilidade quanto no Windows, mas é mais rápido que fazer o login e rodar o comando "reboot" ;).
Editando os arquivos de configuração
Complementando os comandos de terminal, existem os arquivos de configuração. Ao contrário do Windows, onde as configurações são salvas numa caixa preta, o registro, difícil de entender e ainda mais de editar, no Linux as configurações são salvas sempre dentro de arquivos de texto, na maior parte das vezes legíveis, que você pode editar manualmente quando necessário. Na verdade, a maioria dos programas de configuração nada mais são do que assistentes que facilitam a configuração destes arquivos. O programa lhe mostra as opções de uma forma amigável, mas na hora de salvá-las eles simplesmente reescrevem os arquivos correspondentes. Eu tenho uma certa experiência no desenvolvimento destes utilitários, pois ao longo dos anos desenvolvi muitos deles para incluir no Kurumin, mas, para não alongar muito, vou me limitar a dar uma visão geral sobre os principais arquivos de configuração do sistema. Não é realmente necessário que você estude cada um destes arquivos (a menos que você esteja estudando para alguma prova de certificação), mas é importante ter pelo menos uma idéia geral sobre a função de cada um, pois ao pesquisar sobre instalação de drivers e programas, pesquisar soluções para problemas diversos, ou mesmo receber ajuda de alguém através dos fóruns, você vai ver muitas referências a arquivos de configuração diversos. Eles são o denominador comum entre as diversas distribuições, por isso a única forma de escrever algum artigo ou howto explicando sobre como instalar um driver de um modem ou placa wireless, por exemplo, em diversas distribuições diferentes, é explicar o caminho das pedras através dos arquivos de configuração, que é justamente a abordagem que a maioria dos autores acaba adotando.
Ou seja, gostando ou não, muitas vezes você precisará editar algum arquivo de configuração, ou talvez prefira fazer isso algumas vezes para ganhar tempo ou para ter acesso a opções que não estejam disponíveis nos utilitários de configuração. Para editar os arquivos, você precisará apenas de um editor de textos. Existem vários exemplos: você pode por exemplo usar o kedit ou o kwrite no KDE, o gedit no Gnome, ou o mcedit, joe, nano ou mesmo o antigo e pouco amigável vi, caso esteja em modo texto. Lembre-se de que em qualquer um deles você pode abrir o editor diretamente no arquivo que quiser editar, como em "mcedit /etc/fstab". Tanto o kedit quanto o gedit são editores relativamente simples, que lembram até certo ponto o notepad do Windows. O kwite já é um editor mais avançado, voltado para quem escreve scripts ou mesmo programa em linguagens diversas. Ele é capaz de realçar a sintaxe de várias linguagens, diferenciando os comandos, condicionais, comentários, etc., através de cores. Isso ajuda muito a entender o código e permite identificar erros muito mais rápido. Nos editores de modo texto as coisas são um pouco mais complicadas, já que eles são controlados através de atalhos de teclado, mas você acaba precisando deles para resolver problemas em situações onde o modo gráfico não está mais abrindo, ou ao usar outras máquinas remotamente, via SSH. O mais simples é o mcedit. Ele faz parte do pacote "mc", que é encontrado em todas as distribuições. Se ele não estiver instalado, você resolve o problema instalando o pacote. Nele, as funções são acessadas usando as teclas F1 a F10, com uma legenda mostrada na parte inferior da tela. Para salvar você pressiona F2 e para sair, F10.
O joe é um meio termo. Ele é muito parecido com o antigo Wordstar do DOS e usa as mesmas teclas de atalho que ele. Para salvar o arquivo e sair, você pressiona Ctrl+K e depois X. Para salvar e sair no nano, pressione Ctrl+X, depois S e Enter. Finalmente, temos o vi, que por algum motivo conquistou um grupo de usuários fiéis ao longo de seus quase 30 anos de vida e, graças eles, continua vivo até hoje, muito embora seja um dos editores menos amigáveis. O vi tem três modos de operação: comando, edição e o modo ex. Ao abrir o programa, você estará em modo de comando; para começar a editar o texto, pressione a tecla "i". A partir daí, ele funciona como um editor de textos normal, onde o Enter insere uma nova linha, as setas movem o cursor, etc.
Quando terminar de editar o arquivo, pressione Esc para voltar ao modo de comando e em seguida "ZZ" (dois Z maiúsculos) para salvar o arquivo e sair. Para sair sem salvar pressione Esc e digite ":q!" (exatamente como aqui, dois pontos, quê, exclamação, seguido de Enter). Uma segunda opção para salvar e sair é pressionar Esc seguido de ":wq". Para apenas salvar, sem sair, pressione Esc seguido de ":w" e para sair sem salvar use o Esc seguido de ":q!". Resumindo, o Esc faz com que o vi volte ao modo de comando, o ":" nos coloca no modo ex, onde podemos salvar e fechar, entre outras funções. O "q" fecha o programa, o "w" salva o arquivo e o "!" é uma confirmação. Embora não seja exatamente pequeno (se comparado a editores mais simples, como o joe ou o nano), muito menos fácil de usar, o vi é praticamente o único editor que pode ser encontrado em qualquer distribuição. Em muitos casos é usado o elvis, uma versão simplificada, mas que funciona mais ou menos da mesma forma. O pequeno grupo de usuários forma um bando bem organizado, que urra, balança os galhos das árvores e atira cocos nas cabeças dos desenvolvedores, sempre que uma distribuição se atreve a removê-lo :-P. Ao sair do editor, volta para o terminal. Você pode verificar se o arquivo realmente foi salvo corretamente usando o cat, como em "cat /etc/fstab". No caso de arquivos longos, acrescente "| more", que permite ler uma página de cada vez, como em "cat /var/log/syslog | more". Alguns arquivos particularmente importantes são: /etc/fstab: Aqui vai uma lista das partições que são acessadas pelo sistema, onde cada uma é montada e quais delas são montadas automaticamente na hora do boot. Além das partições, o fstab pode ser usado também para incluir CD-ROMs e até mesmo compartilhamentos de rede. /etc/modules: Neste arquivo vão módulos que são carregados durante o boot. Em geral, usamos este arquivo para ativar o carregamento de módulos para placas wireless, modems e placas de som que não foram instalados manualmente, ou que não foram detectados automaticamente durante a instalação. Você vai ver muitas referências a este arquivo em tutoriais falando sobre a instalação de drivers diversos. /etc/lilo.conf: O lilo é o gerenciador de boot, responsável por carregar o sistema. O lilo pode ser configurado para carregar diversos sistemas operacionais diferentes, onde você escolhe qual usar na hora do boot. Você pode fazer dual-boot entre Linux e Windows, ou até mesmo instalar diversas distribuições diferentes no mesmo HD. Sempre que fizer alterações no arquivo, rode o comando "lilo" (como root) para salvar as alterações. /boot/grub/menu.lst: Muitas distribuições adotam o grub como gerenciador de boot ao invés de usar o lilo. No caso do grub, as alterações no arquivo são aplicadas automaticamente. /etc/X11/xorg.conf: Este é o arquivo onde vai a configuração do vídeo, que inclui o driver usado, resolução, taxa de atualização e configuração de cores do monitor, além da configuração do mouse. Hoje em dia, praticamente todas as distribuições (com exceção do Slackware) são capazes de configurar o vídeo corretamente durante a instalação, mas você pode manter uma cópia do arquivo à mão para poder restaurar a configuração do vídeo em caso de problemas. Você pode também usar o arquivo gerado em outras distribuições. O xorg.conf é usado pelo X.org, que é a versão atual do servidor gráfico. Distribuições antigas usam o Xfree, que armazena as configurações num arquivo diferente, o "/etc/X11/XF86Config-4". /etc/passwd, /etc/shadow e /etc/group: Estes arquivos armazenam a base de dados dos usuários, senhas e grupos do sistema. Naturalmente, você não precisa se preocupar em alterá-los, pois eles são modificados automaticamente pelo adduser, users-admin e outras ferramentas, mas é interessante saber que eles existem. Você pode ver o conteúdo dos três apenas como root. O "/etc/passwd" guarda os logins e outras informações sobre ou usuários. Você notará que além do root e dos usuários que adicionou, existem vários usuários de sistema, como o cupsys, proxy, sys, etc. Estes
usuários são usados internamente pelos programas, você não pode fazer login através dele. Esta prática de ter usuários separados para cada programa aumenta bastante a segurança do sistema. Apesar do nome, o "/etc/passwd" não armazena as senhas, elas vão no arquivo "/etc/shadow" num formato encriptado.
Criando links
O comando ln permite criar links. Existem dois tipos de links suportados pelo Linux, os hard links e os links simbólicos. Os links simbólicos têm uma função parecida com os atalhos do Windows: eles apontam para um arquivo, mas se o arquivo é movido para outro diretório, o link fica quebrado. Os hard links por sua vez são semelhantes aos atalhos do OS/2 da IBM, eles são mais intimamente ligados ao arquivo e são alterados junto com ele. Se o arquivo muda de lugar, o link é automaticamente atualizado. Isto é possível porque nos sistemas de arquivos usados pelo Linux cada arquivo possui um código de identificação (chamado de inode), que nunca muda. O sistema sabe que o arquivo renomeado é o mesmo do atalho simplesmente procurando-o pelo inode ao invés do nome. O comando ln dado sem argumentos cria um hard link, como em: $ ln /home/morimoto/arquivo.txt arquivo Onde será criado um link chamado "arquivo" no diretório corrente, que apontará para o arquivo.txt dentro do diretório /home/morimoto. Para criar um link simbólico, acrescente o argumento "-s", como em: $ ln -s /home/morimoto/arquivo.txt arquivo Você pode criar tanto links apontando para arquivos, quanto links apontando para diretórios. Por exemplo, se você acha muito trabalhoso acessar o CD-ROM através do diretório /mnt/cdrom, você pode simplesmente criar um link para ele dentro do seu diretório de usuário, ou onde você quiser. Ao clicar sobre o link no gerenciador de arquivos, você acessará o CD-ROM. Para criar um link chamado "CD" dentro do seu diretório de usuário apontando para o CD-ROM, o comando seria: $ ln -s /mnt/cdrom ~/CD O interpretador de comandos se encarregará de substituir automaticamente o "~" pela localização correta da sua pasta de usuário, não importa qual seja. Você pode ainda criar links que funcionarão em qualquer parte do sistema. Por exemplo, imagine que você armazene seus arquivos de trabalho na pasta /home/seu_nome/trabalho/arquivos. Ao invés de digitar o caminho completo, você poderia criar um link simbólico "arquivos" que poderia ser acessado a partir de qualquer pasta do sistema. Para isto, basta acessar o diretório "/usr/bin" e criar o link por lá, usando os comandos: $ cd /usr/bin $ ln -s /home/seu_nome/trabalho/arquivos arquivos Você verá muitos links espalhados pela estrutura de diretórios do Linux, um recurso muito usado quando os arquivos de sistemas mudam de lugar numa nova versão. Mantendo um link na localização antiga, todos os programas antigos continuam funcionando sem problemas.
Fechando programas travados
Apesar do Kernel do Linux ser extremamente estável, quase impossível de travar, os programas nem sempre são. Para complicar, o rápido desenvolvimento do sistema e a necessidade por novos aplicativos acabam fazendo com que muitas vezes as distribuições tragam programas ainda em estágio beta, ou mesmo alpha, que ainda não estão completamente estáveis. Isto acaba muitas vezes resultando em travamentos. A vantagem do Linux neste ponto é que você quase nunca precisará reiniciar todo o sistema, basta matar o aplicativo problemático, ou, no pior dos casos, reiniciar o ambiente gráfico. A forma mais prática de finalizar aplicativos é usar o xkill. Ao clicar sobre o ícone do programa, ou chamá-lo pelo terminal (digitando xkill), o cursor do mouse vira um ícone de caveira e basta clicar sobre o programa travado para matá-lo sem dó. Você pode também chamar o xkill usando o atalho "Ctrl+Alt+ESC.
Se a coisa for séria e o mouse parar de responder, você pode reiniciar o X, o que reabre toda a parte gráfica, pressionando "Ctrl+Alt+Backspace". Embora você possa perder arquivos não salvos, esta é uma solução muito menos radical (e mais rápida) do que reiniciar o micro no botão. Embora mais trabalhoso, você pode também finalizar os programas através do terminal, usando os comandos kill e killall. O killall pode ser usado sempre que você souber o comando que inicializa o programa a ser fechado. Por exemplo, para fechar o xmms, o mesmo do screenshot acima, bastaria escrever "killall xmms"; para finalizar o konqueror o comando seria "killall konqueror", e assim por diante. O problema com o killall é que em muitos casos o comando para fechar o programa não é o mesmo que seu nome. Para fechar o Firefox, por exemplo, você teria que digitar "killall firefox-bin" e não apenas "killall firefox", que seria o mais lógico. Para os casos onde você não souber o nome do programa, existe o comando "ps" que mostra todos os processos abertos. Existem várias opções para este comando. A que costumo usar mais freqüentemente é "ps -x | more", que mostra todos os processos iniciados por você, sempre dando uma pausa quando esta encher a tela:
Na coluna direita da lista você verá os nomes dos aplicativos. Veja que em muitos casos o mesmo programa aparece várias vezes, seja porque você abriu várias instâncias do programa, seja por ele realmente ser dividido em vários processos diferentes, mas o killall se encarrega de acabar com todos os vestígios. Na coluna da esquerda está o PID de cada processo, um número de identificação que pode ser usado em conjunto com o comando kill para matar um processo específico, como em "kill 4060". Além do ps -x, você pode tentar o "ps -aux", que inclui todos os processos ativos. A lista é sempre longa, pois inclui todos os serviços e componentes do sistema que são carregados automaticamente durante o boot. Outro programa de texto com a mesma função é o pstree. Ele mostra os processos na forma de uma árvore, permitindo que você veja como eles se relacionam. Se você estiver no KDE, pode gerenciar os processos de uma forma muito mais amigável usando o Ksysguard. Basta procurar por ele no iniciar ou pressionar "Ctrl+Esc" para abri-lo:
Montando e desmontando
Embora cada vez mais as distribuições detectem as partições, CD-ROMs, pendrives e outros dispositivos automaticamente, criando ícones no desktop ou algo similar, por baixo dos panos é sempre necessário montar os dispositivos antes de acessá-los. Isto é feito automaticamente quando você clica no ícone do CD-ROM no desktop, por exemplo, mas, dependendo da distribuição que resolver usar, você acabará precisando fazer isso manualmente em muitos casos. Vamos então entender como esse processo funciona. Cada dispositivo ou partição é acessado pelo sistema através de um device, um arquivo especial criado dentro do diretório "/dev". Para entender a ordem usada para nomear estes dispositivos é preciso usar algumas noções de hardware. Na placa-mãe você encontra duas portas IDE (primária e secundária), que são usadas para instalar o HD e CD-ROM. Cada uma das duas permite conectar dois dispositivos, de forma que podemos instalar um total de 4 HDs ou CD-ROMs na mesma placa. Os drives IDE "tradicionais", que usam os cabos de 40 ou 80 vias são chamados de "PATA", de "parallel ATA".
Cada par de drives é instalado na mesma porta. Para diferenciar os dois é usado um jumper, que permite configurar cada drive como master (mestre) ou slave. O mais comum é usarmos apenas um HD e mais um CD-ROM ou DVD, cada um instalado em sua própria porta e ambos configurados como master. Ao adicionar um segundo HD, você poderia escolher entre instalar na primeira ou segunda porta IDE, mas de qualquer forma precisaria configurá-lo como slave, mudando a posição do jumper. Independentemente de ser um HD, CD-ROM ou qualquer outro tipo de dispositivo, os drives são detectados pelo sistema da seguinte forma: IDE primária, master: /dev/hda IDE primária, slave: /dev/hdb IDE secundária, master: /dev/hdc IDE secundária, slave: /dev/hdd Os HDs Serial ATA (SATA) são vistos pelo sistema da mesma forma que HDs SCSI. Isso também se aplica a pendrives e outros dispositivos USB. Aqui entra uma história interessante: como o código é aberto, é muito comum que novos módulos sejam baseados ou utilizem código de outros módulos já existentes. O suporte a drives SCSI no Kernel é tão bom que ele passou a ser usado (com pequenas adaptações) para dar suporte a outros tipos de dispositivos. Na época do Kernel 2.4, até os gravadores de CD eram vistos pelo sistema como drives SCSI.
O primeiro dispositivo SCSI é detectado como "/dev/sda", o segundo como "/dev/sdb" e assim por diante. Se você tiver um HD SATA ou pendrive, o drive é visto como "/dev/sda" e não como "/dev/hda", como seria se fosse um drive IDE. Se você tiver um HD SATA e um pendrive, instalados na mesma máquina, então o HD será visto como "/dev/sda" (pois é inicializado primeiro, logo no início do boot) e o pendrive como "/dev/sdb". Se você plugar um segundo pendrive, ele será visto como "/dev/sdc", e assim por diante. Ao contrário dos dispositivos IDE, os devices são definidos seqüencialmente, conforme o sistema vai detectando os dispositivos. Quem chega primeiro leva. Se você tiver um HD IDE e um pendrive, então o HD será visto como "/dev/hda" e o pendrive como "/dev/sda". Uma observação é que você quase sempre encontrará uma opção dentro do Setup que permite colocar as portas SATA em modo de compatibilidade (Legacy Mode ou Compatibility Mode, dependendo da placa). Ao ativar esta opção, seu HD SATA passará a ser visto pelo sistema como " /dev/hda', como se fosse um HD IDE normal. Esta opção é útil ao instalar distribuições antigas, que ainda não oferecem um bom suporte a HDs SATA.
Em seguida vem a questão das partições. Ao invés de ser um espaço único e indivisível, um HD é como uma grande sala comercial, que pode ser dividida em vários escritórios e ambientes diferentes. Ao instalar o sistema operacional, você tem a chance de particionar o HD, onde é feita esta divisão. É sempre recomendável usar pelo menos duas partições separadas, uma para o sistema e outra para seus arquivos. Isto permite reinstalar o sistema sempre que necessário, sem perder seus arquivos e configurações. No Linux existe ainda a necessidade de criar uma partição separada para a memória swap. Esta partição utiliza uma organização própria, otimizada para a tarefa. Embora um pouco mais complicada, esta abordagem faz com que o acesso seja mais rápido que no Windows, onde o swap é feito dentro de um arquivo, criado na partição de instalação de sistema. Existem diversos programas de particionamento, os mais usados no Linux são o cfdisk, gparted e o qtparted. Muitas distribuições incluem particionadores próprios, o Mandriva por exemplo inclui o diskdrake. Veremos mais detalhes sobre o particionamento e instalação do sistema no próximo capítulo.
Acima temos um screenshot do Gparted. Como pode ver, cada partição recebe um número e é vista pelo sistema como um dispositivo diferente. A primeira partição do "/dev/hda" é vista como "/dev/hda1" e assim por diante. O mesmo acontece com os pendrives, que do ponto de vista do sistema operacional são uma espécie de HD em miniatura. O sistema nunca acessa os dados dentro da partição diretamente. Ao invés disso, ele permite que você "monte" a partição numa determinada pasta e acesse os arquivos dentro da partição através dela, o que é feito usando o comando "mount". A sintaxe básica inclui o dispositivo e a pasta onde ele será acessado, como em: # mount /dev/hda2 /mnt/hda2 O mais comum é que as partições "extras" sejam montadas dentro da pasta "/mnt", que é própria para a tarefa, mas isso não é uma regra; você pode montar as partições em qualquer pasta vazia. Não se esqueça de criar a pasta desejada, se necessário, usando o comando "mkdir". No caso do CD-ROM, citamos apenas o dispositivo, sem incluir a partição (já que um CD-ROM não pode ser particionado, como um HD). Você pode tanto usar o dispositivo correto, como "/dev/hdc" ou "/dev/hdd", quanto usar o "/dev/cdrom", um link que é criado durante a instalação: # mount /dev/cdrom /mnt/cdrom Se quiser trocar o CD que está na bandeja, você deve primeiro "desmontar" o CD-ROM, com o comando "umount /mnt/cdrom". O mesmo se aplica a pendrives e HDs externos: é sempre necessário desmontar antes de desplugá-los. No caso dos pendrives e HDs, desmontar é fundamental, pois as alterações não são necessariamente salvas imediatamente por causa do cache de disco. Removendo sem desmontar, existe uma probabilidade muito grande das últimas alterações serem perdidas. É muito comum as pessoas gravarem arquivos no pendrive, desplugarem logo depois (sem desmontar) e, ao tentar usar de novo, verem que os arquivos simplesmente não foram gravados. Se por acaso você tiver um drive de disquetes (em que século você vive? :), o comando para montá-lo manualmente é "mount /dev/fd0 /mnt/floppy" e, para desmontar, "umount /mnt/floppy". Assim como no caso dos pendrives, é importante desmontar antes de remover o disquete do drive. Os pontos de montagem, ou seja, as pastas onde as partições serão montadas podem ser configurados através do arquivo "/etc/fstab". Quase sempre, este arquivo é configurado durante a instalação, incluindo
referências a todas as partições e CD-ROMs disponíveis, de forma que você pode montar as partições digitando apenas "mount /mnt/hda6" (por exemplo), sem precisar usar o comando completo. Naturalmente, além da forma manual, existem maneiras mais práticas de acessar o CD-ROM e partições. Em primeiro lugar, ao usar o KDE, você pode sempre usar o ícone no desktop, clicando sobre ele para montar e usando a opção "desmontar" (que aparece ao clicar com o botão direito sobre o ícone) para liberar o CD na hora de remover. Na maioria das distribuições, ao plugar um pendrive é criado automaticamente um ícone no desktop para acessar os arquivos. Geralmente o ícone inclui uma opção para desmontar, acessível ao clicar sobre ele com o botão direito. Ainda no KDE, você pode acessar as demais partições do HD abrindo o Konqueror e acessando a url "media:/" (ou "devices:/", nas versões antigas). Assim como no caso do CD-ROM, você acessa os arquivos clicando sobre o ícone. No caso das partições do HD, não é necessário desmontar depois de usar, pois elas são desmontadas ao desligar o micro.
Muitas distribuições incluem o automount, que faz com que o acesso ao CD-ROM e disquete seja transparente, como no Windows. Você coloca o CD-ROM na bandeja. Ao acessar a pasta "/mnt/cdrom" o sistema se encarrega de montá-lo automaticamente. Quando você pressiona o botão para ejetar o CD, o sinal é interceptado pelo sistema que se encarrega de desmontá-lo e em seguida ejetar o CD. O clipboard e o terceiro botão O botão central do mouse, que não tem muita serventia no Windows, permite copiar e colar entre aplicativos ou até mesmo entre aplicativos gráficos e terminais abertos dentro da interface gráfica. Isso substitui o Ctrl+C, Ctrl+V, com a vantagem do comando ser dado com um único clique do mouse. Basta selecionar o trecho de texto, a imagem, ou o que quiser copiar numa janela e clicar com o botão central na janela onde quiser colar a seleção. Se você não tiver um mouse de três botões, pressione simultaneamente os dois botões.
Porém, este modo "padrão" tem algumas deficiências. Ele não funciona muito bem para copiar grandes quantidades de texto, e o texto a ser copiado precisa ficar selecionado durante a operação. Basicamente, você consegue copiar o que puder ser visualizado na tela. Não funciona para copiar 120 páginas de texto do Abiword para o OpenOffice, por exemplo. Pensando nisso, os desenvolvedores do KDE e do Gnome se preocuparam em incluir sistemas de copiar e colar com um funcionamento semelhante ao do Windows. Você pode selecionar várias páginas de texto do Kword e colar no Kmail, por exemplo, usando o bom e velho Ctrl+C, Ctrl+V. O KDE inclui até um Applet, o Klipper (que no Kurumin e em outras distribuições baseadas no Debian pode ser instalado com o comando "apt-get install klipper"), que multiplica a área de transferência. Você tem vários slots que armazenam todas as últimas operações e pode colar qualquer uma das anteriores, selecionando a desejada através do ícone ao lado do relógio, de forma bem prática.
Trabalhando com permissões
Apesar de toda a evolução em relação aos antigos sistemas Unix, usados nas décadas de 70 e 80, o Linux mantém suas raízes multiusuário. Isso significa que o sistema pode ser usado por várias pessoas simultaneamente (imagine o caso de um servidor de rede), sem que uma atrapalhe o trabalho da outra, nem possa ver e alterar arquivos que não deveria. Para isso, é usado um sistema de permissões simples, porém eficiente, que consiste num conjunto de três permissões de acesso (ler, gravar e executar) e três grupos (dono, grupo e outros), que combinadas permitem fazer muita coisa. Este sistema de permissões é bem similar ao usado do Windows 2000 e no Windows XP, a principal diferença é que no Windows você usa o sistema como administrador
(equivalente ao root) por padrão e muitos programas não funcionam corretamente quando você tenta usar uma conta sem privilégios especiais. No Linux é o contrário, você usa o sistema com um login de usuário e os programas são projetados para funcionar desta forma. Apenas os utilitários de configuração e alguns programas para tarefas específicas precisam ser executados como root. Isso faz com que o sistema seja fundamentalmente mais seguro. Um argumento comum é que não existem muitos vírus, worms e trojans para Linux porque o sistema é menos popular. Porém, nos servidores, o Linux já é mais usado que o Windows e mesmo assim os casos de problemas de segurança continuam sendo mais raros. Segundo a Netcraft, quase 70% dos sites da internet rodam sobre o Apache, a grande maioria deles sobre o Linux, enquanto apenas 20% rodam sobre o IIS da Microsoft. Mas, mesmo assim, é muito mais comum termos notícias de problemas de segurança no IIS do que no Apache: http://news.netcraft.com/archives/2005/10/04/october_2005_web_server_survey. html Voltando às permissões, clicando sobre as propriedades de qualquer arquivo no Konqueror você verá uma janela com três menus de seleção, que permitem ajustar individualmente as permissões para o dono do arquivo, para usuários que façam parte do mesmo grupo e para os outros, que inclui todo mundo que tenha acesso ao sistema.
Cada um dos campos aceita três possibilidades: "negado", "pode ler" e "pode ler e escrever". Por default, o dono é o único que pode ler e escrever, os demais (grupo e outros) podem apenas ler o arquivo, mas sem modificar.
No caso dos arquivos, existe uma quarta permissão que é o campo "É executável". Esta é uma daquelas diferenças fundamentais entre o Linux e o Windows: o sistema não decide quais arquivos são programas pela extensão, mas sim pelas permissões. Isso aumenta bastante a segurança do sistema, mas por outro lado causa um pouco de dor de cabeça em algumas situações. Sempre que você baixar um instalador qualquer via web (o driver da nVidia, por exemplo), vai precisar primeiro marcar o "É executável" nas propriedades do arquivo antes de conseguir instalá-lo. O "dono" do arquivo é por default o usuário que criou o arquivo. Apenas este usuário pode alterar as permissões de acesso ao arquivo e pasta. Em seguida vem a configuração do grupo, que permite que vários usuários tenham acesso a um arquivo ou pasta, sem ter que apelar para o campo "outros" que daria acesso a qualquer um. Imagine que estamos configurando um servidor em uma empresa importante, e neste servidor temos uma pasta chamada "projeto_apolo" com vários arquivos confidenciais que deverá ser acessada apenas pelos programadores que estão trabalhando no projeto. Desativaríamos de imediato o campo "todos", mantendo marcados apenas os campos "usuário" e "grupo". O próximo passo seria justamente criar um novo grupo de usuários ("apolo", por exemplo) e incluir neste grupo todos os usuários que fazem parte do projeto. A partir daí, todos os programadores passariam a ter acesso à pasta, já que fazem parte do grupo. Você pode criar novos grupos e adicionar usuários a eles através do "usersadmin" ou do "kuser", usando o que estiver disponível na distribuição. Basta chamá-los pelo terminal ou procurar pelo atalho no menu. No Fedora, o users-admin se chama "system-config-users", e, no Mandriva, "userdrake". O Kuser é usado em um número menor de distribuições, mas é também bastante usado.
Para criar um novo grupo, clique em "Grupo > Adicionar grupo". Na janela que será aberta, especifique o nome do grupo e os usuários que farão parte dele. Um mesmo usuário pode fazer parte de vários grupos simultaneamente. Muita gente cria um grupo diferente para cada pasta importante, de forma a poder definir individualmente quem terá acesso a ela.
Você notará que nesta tela aparecem vários usuários que não são mostrados na tela principal, como o "bin", "daemon" e "mail". Estes são usuários ocultos do sistema, contas sem privilégios e que não possuem senhas definidas (é simplesmente impossível fazer login com qualquer uma delas), que são usadas para isolar os programas, fazendo com que cada um tenha acesso apenas a seus próprios arquivos. Isso limita muito os danos que um programa ou servidor com bugs ou falhas de segurança pode causar quando alguma coisa dá errado. De fato, a configuração default da maior parte das distribuições Linux atuais é dar acesso de leitura para a maioria das pastas (com exceção, naturalmente, dos arquivos de senha e outros arquivos críticos) para todos os usuários, mas ao mesmo tempo dar acesso de gravação apenas para o diretório home de cada um. Ou seja, por default você, logado como usuário normal, poderá navegar por quase todos os diretórios do sistema, mas só poderá criar e alterar arquivos dentro da sua pasta de usuário. Nos outros lugares receberá sempre um aviso de acesso negado. Isso impede que os usuários possam fazer besteira no sistema, como por exemplo, tentar deletar a pasta de módulos do Kernel ;-).
Claro, como todas as regras, as permissões de acesso têm sua exceção: o root. Ele é o único que não possui restrições: pode alterar, executar ou deletar o que bem entender. Pode alterar o dono das pastas ou alterar as permissões de acesso. O root é o deus do sistema. Você precisará usar o root sempre que for alterar as permissões de acesso a uma pasta do sistema ou criada por outro usuário, mas não use-o regularmente, a menos que esteja apenas brincando com o sistema e possa reinstalá-lo a qualquer momento, pois além de poder destruir facilmente arquivos do sistema, usar o root abre as portas para várias brechas de segurança ao usar programas de IRC, abrir anexos em e-mails ou mesmo navegar na web. A maioria dos problemas de segurança a que os usuários do Windows estão submetidos decorre justamente do fato de utilizarem contas com privilégios equivalentes ao do root no Linux. Se você pode fazer o que quiser no sistema, os programas executados por você (incluindo trojans, scripts incluídos de páginas web executados pelo navegador, etc.) também poderão não ter restrições. Se você se pergunta como alguns vírus do Windows, como o Ninda e o Sircan podem se espalhar tão rapidamente, saiba que o problema é justamente este: a combinação de um sistema com um fraco controle de segurança, combinado com o uso de contas administrativas por usuários sem noções de segurança. Voltando ao tema da criação de usuários, se você não gostou dos utilitários gráficos, pode adicionar novos usuários também usando os comandos "adduser" e "passwd" (como root). Por exemplo: # adduser manuel (cria o usuário manuel, já definindo a senha)
# passwd manuel (altera a senha posteriormente) Para remover um usuário anteriormente criado, utilize o comando "userdel", como em "userdel manuel". Por questões de segurança o comando remove apenas o login, preservando o diretório home do usuário. Caso você tenha certeza que não vá mais precisar de nada, deve deletar o diretório manualmente depois. Você também pode bloquear temporariamente um usuário, um amigo que vem jogar Warcraft 3 com você apenas nos fins de semana, por exemplo, e não precisa ficar com o login ativo no resto do tempo. Neste caso, use o comando "passwd -l usuário" para bloquear o login e "passwd -u usuário" para desbloqueá-lo. Para alterar as permissões de acesso de arquivos e pastas via linha de comando, você deve usar o comando chmod. A sintaxe dele parece um pouco complicada à primeira vista, mas nada que um pouco de prática não possa resolver: # chmod 744 arquivo Temos aqui o comando chmod propriamente dito, o arquivo ou pasta que terá suas permissões de acesso alteradas e um número de três dígitos que indica as novas permissões para o arquivo. Note que o "744" é só um exemplo. Os três números indicam respectivamente: 7: Permissões para o dono do arquivo. 4: Permissões para o grupo. 4: Permissões para os demais usuários. Você deve lembrar que temos três permissões: leitura, gravação e execução. Como é possível representar estes três atributos através de um único número? Bem, os programadores costumam ser muito bons em matemática e, como em outros casos, usaram um pequeno truque para resolver este problema. Cada permissão é representada por um número: 4: Ler. 2: Alterar o conteúdo, criar novos arquivos (no caso de uma pasta). 1: Execução (no caso dos arquivos) ou listar os arquivos (no caso das pastas). Você simplesmente soma estes números para ter o número referente ao conjunto de permissões que deseja: 0: Sem permissão alguma. Se for uma pasta, o usuário sequer pode ver o conteúdo. 1: Permissão apenas para executar (não é possível ler o arquivo ou alterá-lo, apenas executar um programa). No caso de uma pasta, 1 permite que se liste os arquivos dentro dela, mas sem ler ou alterar os arquivos. 4: Apenas leitura. 5 (4+1): Ler e executar (no caso de um arquivo) ou ver os arquivos e abri-los, no caso de uma pasta. 6 (4+2): Leitura + gravação. 7 (4+2+1): Controle total: leitura + gravação + permissão para executar.
Uma observação importante é que ao configurar as permissões de acesso de uma pasta, você sempre deve usar 5 (4+1) ou 7 (4+2+1), pois, sem permissão para listar o conteúdo da pasta, você não consegue ver os arquivos dentro dela. Engenhoso, não é? Se você quer dar controle total do arquivo ou pasta para o dono e para o grupo, mas permissão de apenas leitura para os demais usuários, usaria o número 774; se você quisesse que todos os usuários tivessem permissão de leitura e gravação, mas sem poder executar nada, usaria o número 666; se quisesse dar controle total para todo mundo, usaria 777 e assim por diante. Como disse, parece um pouco complicado, mas depois de usar o comando algumas vezes você não vai esquecer mais. Para alterar o dono e o grupo do arquivo, você deve usar o comando chown. O uso dele é simples, basta indicar qual é o novo dono e em seguida indicar o arquivo ou pasta que mudará de dono, como em: # chown manuel projeto_apollo/ Se você quiser que a alteração se aplique a todos os arquivos e subpastas do diretório, use a opção -R (de recursivo) como em: # chown -R manuel projeto_apolo/ Se você quiser alterar também o nome do grupo, acrescente o nome do novo grupo após o nome do dono, separando ambos por um ponto: # chown -R manuel.apolo projeto_apolo/ Agora a pasta "projeto_apolo" passa a ser propriedade do usuário manuel e do grupo apolo. Fizemos a mesma coisa que no exemplo anterior, mas agora usando o comando de modo texto. Você escolhe qual forma prefere.
Rodando programas como root
No Linux, o usuário root é o deus do sistema, o único que tem acesso a todos os arquivos e configurações. Os usuários normais têm acesso apenas a seus arquivos dentro do diretório /home e outros para os quais você alterar as permissões manualmente. Todos os programas salvam suas configurações dentro de pastas ocultas (o nome começa com ponto, como em ".kde"), dentro do home do seu usuário. Isso faz com que cada usuário tenha suas configurações separadas, sem que possa interferir com as configurações de outros ou alterar as configurações padrão do sistema. Isso torna o sistema bastante seguro contra barbeiragens em geral feitas pelos usuários. Como eles podem apenas alterar suas próprias configurações, na pior das hipóteses você pode deletar o usuário e criar outro. Você pode criar uma conta de usuário separada para cada pessoa que precisar user seu micro e ter certeza de que eles não destruirão a instalação do sistema e seus arquivos. Nas versões recentes do KDE, existe uma opção interessante, que permite abrir uma segunda seção do X, onde é possível se logar com um usuário diferente. Para usar esse recurso, clique no "Iniciar > Trocar de Usuário > Bloquear a atual & Iniciar nova sessão".
Como vimos no tópico sobre comandos, é possível também executar programas como root, usando o comando "su" e suas variantes. Num terminal de texto, digite simplesmente "su" e forneça a senha de root. O símbolo do terminal muda de um "$" para um "#", indicando que a partir daí, todos os comandos digitados (apenas nesse terminal específico) serão executados como root. Use isso sempre que precisar editar arquivos do sistema, mover arquivos ou mudar permissões, criar novos usuários, etc. Para abrir os programas gráficos, a melhor opção é usar o "kdesu", que exibe um prompt de senha gráfico e ajusta todas as permissões e variáveis do sistema de forma que o programa possa rodar sem sobressaltos. Use o kdesu num terminal, ou usando o "Executar comando" do KDE (alt+F2), seguido do comando que será executado como root, como em "kdesu konqueror /etc", o que abrirá uma janela do Konqueror, como root e já mostrando os arquivos do diretório "/etc".
Muitas distribuições, como o Kurumin e o Ubuntu, usam o "sudo" como uma forma de facilitar o uso do sistema. O sudo é uma variante do su, que permite criar usuários "administrativos", que podem executar comandos como root, sem precisar fornecer a senha. No Kurumin, o usuário padrão, "kurumin", vem configurado com permissão para executar qualquer comando como root, sem precisar fornecer a senha. Isso permite que os painéis e scripts de configuração funcionem diretamente, sem que você precise ficar fornecendo a senha de root toda hora, o que facilita sobretudo ao rodar do CD. Basta adicionar o "sudo" antes do comando, como em "sudo konqueror /etc". O Ubuntu usa uma abordagem mais conservadora, confirmando sua senha de usuário antes de executar o comando, mas em ambos os casos a configuração de quais usuários podem usar o sudo vai no arquivo "/etc/sudoers". A idéia é que você configure o sistema e instale todos os programas desejados e depois, se desejar, desative o sudo ou crie um novo usuário sem privilégios para uso normal do sistema. Para que um determinado usuário tenha permissão para usar o sudo e, conseqüentemente, instalar programas através dos ícones mágicos e alterar a configuração do sistema, adicione uma nova linha no arquivo /etc/sudoers: usuario ALL=NOPASSWD: ALL
... substituindo o "usuário" pelo login desejado. Você pode também comentar a linha referente ao usuário kurumin para tirar seus superpoderes, ou simplesmente criar outro usuário com seu nome e passar a usá-lo no dia-a-dia, deixando para usar o user kurumin apenas quando precisar instalar novos programas ou alterar a configuração do sistema.
Máquinas virtuais
Quase tudo pode ser simulado via software. É possível até mesmo simular um computador de arquitetura diferente, para que os softwares escritos pare ele rodem da mesma forma que rodam dentro do seu sistema nativo. Um dos exemplos mais conhecidos são os emuladores de videogames antigos, que permitem rodar jogos de Atari, Nintendo 8 bits, Mega-Drive, Super-Nes, Playstation e outros. Assim como é possível emular um videogame para rodar os jogos escritos para ele, é possível simular um PC completo e rodar outros sistemas operacionais, dentro de uma janela. Isso permite que você rode o Windows dentro do Linux ou vice-versa. Esse PC "de mentira" é chamado de máquina virtual. O sistema principal neste caso passa a ser chamado de host (hospedeiro) e o outro sistema operacional que está rodando dentro da máquina virtual é chamado de "guest" (convidado). Ele acha que tem um PC completo para si, enquanto na verdade está rodando dentro de uma "matrix", na máquina virtual. Naturalmente, este trabalho de simular um PC completo e ainda por cima com um bom desempenho não é simples, veja o caso dos emuladores de videogame de uma forma geral, que sempre precisam de um PC muito mais poderoso do que o sistema original. É preciso um Pentium 200 para emular um Super Nes (que usa um processador de 3.5 MHz e 128 KB de RAM) com qualidade. Existem atualmente três softwares que se destacam nesta categoria, o VMware, Qemu e o Xen, que trabalham de forma ligeiramente diferente, mas com grandes diferenças práticas. O VMware usa um conceito de virtualização. Ele tenta sempre que possível converter os comandos usados pelo sistema dentro da máquina virtual em comandos que o sistema host entenda e execute diretamente. Por exemplo, se o Windows dentro da máquina virtual tenta tocar alguma coisa na placa de som, o VMware simplesmente pega os dados e toca na placa de som "real" do micro, como se fosse outro programa qualquer. O mesmo se aplica a todo tipo de instruções básicas, que são executadas diretamente pelo processador principal. O VMware interpreta e converte instruções o mínimo possível. O Qemu por sua vez é um emulador. Ele tenta processar todas as instruções, o que acaba demorando mais tempo e fazendo com que a performance seja menor. Em geral o VMware (nas versões recentes) consegue fazer com que o sistema guest rode com 60 a 90% do desempenho que teria se estivesse rodando diretamente, enquanto o Qemu obtém de 5 a 10%. O Qemu possui um módulo adicional, o Kqemu, que faz com que ele passe a funcionar de forma mais similar ao VMware, virtualizando as instruções básicas do processador, ao invés de emular tudo. O Kqemu melhora consideravelmente o desempenho do Qemu, mas ainda assim o deixa bem atrás do VMware em questão de desempenho.
O Qemu é um projeto open-source, enquanto o VMware é comercial, disponível em duas versões. O VMware Workstation é a versão completa, um software relativamente caro (199 dólares), mas que pode ser usado por 30 dias. O VMware Player por sua vez é a versão gratuita, com bem menos funções, que pode ser usada para rodar máquinas virtuais criadas através do VMware Workstation, praticamente sem limitações, mas sem criar novas máquinas virtuais (VMs). A dica é que você pode obter a versão trial do VMware Workstation e usá-la para criar as máquinas virtuais e passar a usar o VMware Player depois que o trial expirar. Você pode baixar ambas no http://www.vmware.com. Baixe o pacote genérico, que pode ser instalado em várias distribuições. No Kurumin (a partir do 5.1) você encontra o VMware Player e um script para criar e alterar as configurações das VMs, provendo uma solução completa. Estas máquinas virtuais são extremamente úteis no dia-a-dia, pois permitem que você rode outros sistemas operacionais dentro de uma janela, tendo acesso a todos os softwares que precisa. Muita gente utiliza este recurso para manter uma cópia do Windows à mão para quando precisam de algum programa específico. Muitos micros (e quase todos os notebooks) vêm com uma licença do Windows de qualquer forma e esta é uma boa maneira de aproveitá-la sem sair do Linux. Conforme o Qemu e VMware forem evoluindo e os micros forem ficando cada vez mais rápidos, a perda de desempenho por rodar o Windows dentro da máquina virtual será cada vez menos significativo, permitindo que você tenha uma forma confortável de continuar rodando seus aplicativos antigos mesmo depois de migrar definitivamente para o Linux.
Outra grande utilidade é que você pode testar outras distribuições e ter um sistema "sparing", onde você pode testar de tudo sem medo de danificar sua instalação principal. Todos os arquivos da máquina virtual são salvos num "disco virtual", que nada mais é do que um arquivo comum, dentro da pasta com a VM, formatado de uma forma especial. Este arquivo é usado de tal forma que o sistema dentro da VM realmente acha que está usando um HD real, particionando, formatando e tudo mais. Tudo começa com a criação da máquina virtual, que consiste basicamente no arquivo com o disco virtual e um arquivo de configuração, salvos dentro da pasta escolhida. No VMware, o tamanho do disco virtual é apenas um limite. O arquivo começa vazio, ocupando apenas alguns kbytes e vai inchando conforme são instalados programas dentro da máquina virtual, ocupando sempre um espaço equivalente ao espaço ocupado pelo sistema instalado. A instalação do sistema dentro da máquina virtual é feita de forma normal. Você vai particionar e formatar o "HD" e tudo mais, só que tudo vai sendo feito dentro do disco virtual, sem que o Windows dentro da máquina virtual tenha acesso direto aos demais arquivos no HD. Se ele pega um vírus, apenas o que está dentro do disco virtual é afetado. Na pior das hipóteses você pode deletar o arquivo e começar de novo. Para todos os efeitos, a VM funciona como um PC real; você pode
até mesmo instalar Windows e Linux em dual boot, ou experimentar a instalação de várias distribuições Linux no mesmo HD. O VMware e o Qemu são os mais usados nos desktops, mas existe uma terceira opção, muito popular nos servidores, o Xen. O Xen utiliza uma idéia diferente, a paravirtualização, que consiste em dividir de forma transparente os recursos do hardware, permitindo que o sistema guest rode com uma redução de performance muito pequena (menos de 5%, na maioria dos casos). O maior problema é que para rodar dentro do Xen é necessário que o sistema guest seja modificado. Não é possível rodar qualquer sistema diretamente, como no caso do VMware e do Qemu. Isto não é um grande problema no caso das distribuições Linux, mas é no caso do Windows e outros sistemas de código fechado. O Xen é muito mais complicado de configurar que o VMware. No caso dos servidores (onde temos um público da área técnica) isto não chega a ser um grande problema, mas nos desktops ele é ainda pouco usado. Mesmo assim, é possível que o Xen evolua em termos de facilidade de uso e, graças ao bom desempenho, comece a disputar diretamente com o VMware. A página do Xen é a http://www.xensource.com/.
Capitulo 3: Instalando o Kurumin A primeira diferença fundamental entre live-CDs, como o Kurumin e o Slax e distribuições "tradicionais", como o Mandriva, Fedora e Slackware, é a forma como o sistema é instalado. Tradicionalmente, os CDs de instalação contém pacotes individuais de instalação dos programas junto com um programa de instalação. Durante a instalação, você pode escolher quais pacotes quer instalar e o instalador se encarrega de "montar" o sistema, instalando individualmente os pacotes marcados, como neste screenshot do instalador do Mandriva:
Esta abordagem permite um controle maior sobre o que será instalado, mas possui também algumas desvantagens: -Torna a instalação mais complexa e confunde os usuários iniciantes (e muitas vezes também os avançados), já que pouca gente conhece a função de cada pacote e não sabe bem quais instalar. Nem sempre as descrições dos pacotes dão uma visão clara sobre sua função e importância. Para amenizar isso, os instaladores adotam um "meio termo", onde você inicialmente escolhe entre algumas categorias, como "Ferramentas de escritório", "Programação", "Servidores", etc., e acessa a tela de seleção manual de pacotes apenas se quiser personalizar a instalação. -Aumenta muito o trabalho dos desenvolvedores, que precisam se preocupar em checar as dependências de cada pacote, etc. para manter a instalação consistente, independentemente do que o usuário escolher. -Neste caso o sistema pode ser apenas instalado, não roda direto do CD.
Nos live-CDs temos um sistema "base", já configurado que roda diretamente do CD. O instalador limitase a copiar este sistema para o HD e fazer as alterações necessárias para que ele se adapte ao novo ambiente. A instalação no HD mantém as configurações feitas durante o boot. Por isso, primeiro teste o sistema rodando a partir do CD e certifique-se que o vídeo está corretamente configurado, as placas de som e rede estão funcionando, etc. antes de iniciar a instalação. Neste livro abordo a instalação e configuração de três distribuições: Kurumin, Ubuntu e Slax. Esta não é uma escolha aleatória. O Kurumin é um dos melhores exemplos de distribuição amigável, que automatiza vários aspectos do uso do sistema, por isso uma das melhores opções para começar. Por baixo dos scripts e painéis de configuração, você tem uma instalação do Debian, que permite que você aprenda sobre a estrutura do sistema, sem ter que encarar o próprio logo no começo. O Slax é um live-CD derivado do Slackware, que mantém a mesma estrutura básica (incluindo os scripts de configuração e utilitários disponíveis no Slackware), mas roda do CD e é muito mais simples de instalar. Finalmente, temos o Ubuntu, o "Debian para desktops", que é oferecido em duas versões: um CD de instalação tradicional, que utiliza um instalador muito similar ao encontrado no Debian e um live-CD, que você pode usar para conhecer o sistema e ver se seu PC é compatível antes de instalar. O Ubuntu também difere do Kurumin e o Slax por utilizar o Gnome por padrão ao invés do KDE. Depois de abordar os conceitos gerais, vamos começar a abordar temas específicos dentro de cada distribuição e ver dicas sobre os programas e ferramentas de configuração disponíveis. Este terceiro capítulo é dedicado à instalação do Kurumin, incluindo o particionamento do HD, dual boot com o Windows e outras distribuições, uso do home em uma partição separada e solução de problemas. O quarto capítulo é dedicado à configuração do Kurumin e do KDE, abordando também vários fundamentos sobre a organização do sistema (das distribuições Linux de uma forma geral), configuração de redes e placas Wireless e assim por diante. O capítulo 5 é dedicado aos programas Linux de uma forma geral, sem se prender a uma única distribuição, enquanto o capítulo 6 volta a ser específico, falando sobre a instalação e configuração do Ubuntu (incluindo dicas sobre o Gnome) e do Slax. Os temas são abordados com um nível crescente de complexidade, sem repetir assuntos já abordados. O particionamento do HD e configuração do Lilo, por exemplo, são abordados apenas no capítulo 3, junto com a instalação do Kurumin, sem ser repetida no capítulo do Ubuntu. O ideal é que você realmente leia os capítulos seqüencialmente e pratique instalando cada uma no seu no seu micro. Se você não tem espaço suficiente no HD para criar várias partições, ou não quer arriscar seus arquivos mexendo no particionamento do HD (lembre-se: Só Jesus salva, o homem faz backup! ;), você pode ainda treinar usando o VMware Player, um virtualizador que permite instalar as distribuições dentro de máquinas virtuais, que abordo no capítulo 5. Embora no livro fale apenas sobre a versão Linux, o VMware também roda sobre o Windows XP ou 2000, com os mesmos recursos.
Opções de boot no Kurumin
Um dos principais atrativos do Kurumin e outros live-CDs é o fato do sistema rodar diretamente a partir do CD-ROM, sem necessidade de alterar o que está instalado do HD e detectar o hardware da máquina no boot, dando-lhe um desktop funcional em poucos minutos. Mas, ao contrário do que pode parecer à primeira vista, detectar todo o hardware de uma máquina atual e configurar o sistema para trabalhar sobre ele sem ficar perguntando, não é uma tarefa nada fácil. Algumas placas-mãe mal projetadas podem travar durante o processo de detecção do ACPI, SCSI ou RAID, pode ser que a placa de vídeo não tenha um driver específico, ou que use um código de
identificação diferente do padrão, pode ser que o mouse tenha scroll ou outro recurso especial que não seja possível detectar automaticamente e assim por diante. Além disso, o sistema simplesmente não tem como adivinhar que resolução de tela e taxa de atualização que você prefere usar, pode no máximo tentar "adivinhar" baseado nas características do monitor. Logo no início do boot você verá uma tela gráfica que apresenta algumas opções de boot. Estas opções permitem alterar o comportamento padrão do sistema, fazendo com que ele dê boot em placas problemáticas ou que utilize a resolução de vídeo de sua preferência, entre outras configurações, que podem ser usadas em casas onde o sistema de detecção não dê conta do recado. O Kurumin é capaz de dar boot diretamente em uns 90% dos micros, enquanto as opções permitem que ele funcione na maior parte dos 10% restantes. É raro um PC em que realmente não exista como fazer o Kurumin funcionar. Muitas destas opções são válidas também no Knoppix e nos outros live-CDs derivados dele, como o Kanotix e Mephis e também nos live-CDs derivados do Kurumin, como o Kalango e o Kurumin Games. A única mudança é que neles ao invés das opções começarem com "kurumin", começam com "knoppix", "kalango", ou o nome da distro. Existem opções de boot para especificar a configuração do vídeo, para desabilitar a detecção de determinados componentes, opções para copiar a imagem do Kurumin para o HD e dar boot com o drive de CD livre, dar boot a partir de um arquivo .ISO salvo no HD e até algumas opções específicas, que variam de uma distribuição para outra. No canto inferior da tela aparece um prompt (boot:) para digitar as opções. Se você apenas pressionar Enter, ou esperar 30 segundos, o sistema inicializa no modo default, tentando detectar tudo sozinho. As opções de boot permitem modificar o comportamento padrão do sistema, desabilitando algum recurso que está fazendo o micro travar no boot, alterar a resolução do vídeo e assim por diante.
No screenshot acima, estou usando como exemplo uma opção bem longa para configurar vídeo, especificando a resolução, taxa de atualização e o driver de vídeo e desabilitar o ACPI. Basta digitar a opção desejada e pressionar Enter. Os parâmetros devem ser digitados exatamente como descritos abaixo, sempre em minúsculas. Todos estes parâmetros são opcionais, eles foram desenvolvidos para serem usados em casos de problemas.
Opções de vídeo
As opções mais usadas são as referentes à resolução e taxa de atualização do monitor. Por default, o Kurumin tenta detectar automaticamente a sua placa de vídeo e utiliza uma resolução compatível com seu monitor, detectada via DCC. A configuração do monitor é composta por três parâmetros: 1- O driver de vídeo 2- A resolução e profundidade de cor 3- A taxa de atualização. O driver de vídeo é o que permite que o sistema se comunique com a placa de vídeo e, conseqüentemente, envie as imagens para o monitor. Cada placa de vídeo tem um conjunto próprio de recursos e se comunica numa linguagem diferente. O driver de vídeo é o "intérprete" que permite que o sistema converse com a sua. O software responsável por mostrar imagens na tela (o "servidor gráfico" falando em linguagem mais técnica) é o X.org. É ele quem contém os drivers para todas as placas de vídeo suportadas pelo sistema. Nas versões atuais do X.org temos um conjunto relativamente pequeno de drivers, um para cada fabricante (e não um para cada placa de vídeo como antigamente). O driver "sis", por exemplo, dá suporte a todas as placas de vídeo da SiS, o driver "nv" dá suporte a todas as placas da nVidia e assim por diante. Temos ainda dois drivers genéricos, o "vesa" e o "fbdev" que funcionam com quase todas as placas de vídeo. Eles podem ser usados, por exemplo, quando você tiver alguma placa de vídeo muito recente, que ainda não seja suportada. A resolução determina a quantidade de pontos mostrados na tela. Os monitores sempre suportam várias resoluções diferentes, permitindo que você use a que achar mais confortável. Um monitor de 17", por exemplo, geralmente suportará de 640x480 a até 1280x1024. O que muda ao usar resoluções diferentes é a taxa de atualização, que determina quantas vezes por segundo a imagem é atualizada no monitor. O grande problema é que os monitores atuais utilizam células de fósforo para formar a imagem. Estas células não conservam seu brilho por muito tempo e por isso precisam ser realimentadas constantemente. O ideal é usar uma taxa de atualização de 75 Hz (75 atualizações por segundo) ou mais. Usando menos que isso teremos um fenômeno chamado flicker, onde a tela fica instável, piscando, parecendo tremer, como se a tela do monitor fosse uma gelatina. É justamente o flicker que causa a sensação de cansaço ao se olhar para o monitor por muito tempo, e a médio prazo pode até causar danos à visão. Outra coisa que ajuda e muito a diminuir o flicker é diminuir o brilho do monitor. O ideal é usar a tela o mais escura possível, dentro do que for confortável, naturalmente. Uma dica é deixar o controle de brilho no mínimo e ajustar apenas pelo contraste. Quanto maior for a taxa de atualização e quanto menor for a claridade da imagem menor será o flicker e menor será o cansaço dos olhos. As taxas de atualização máximas dependem tanto da placa de vídeo quanto do monitor. Quanto mais baixa for a resolução de imagem escolhida, maior será a taxa de atualização suportada pelo monitor. A maioria dos monitores de 15" suportam 800x600 com 85 Hz de taxa de atualização ou 1024x768 a 70 Hz.
Os monitores de 17" geralmente suportam 1024x768 a 85 Hz, enquanto os monitores mais caros, como os Flatron e Trinitron, de 17" (CRT) chegam a suportar 1600x1200 com 60 Hz. A placas de vídeo também podem limitar a resolução máxima. Uma placa antiga, uma Trident 9680 por exemplo, não conseguirá trabalhar com mais de 70 Hz de refresh a 1024 x 768 (independentemente do monitor, é uma limitação da própria placa de vídeo). Muitas placas onboard são capazes de exibir 1024x768 com 85 Hz, mas apenas 70 Hz se você usar 1280x1024. Geralmente, apenas as placas de vídeo mais caras são capazes de trabalhar a 1600x1200 com 75 Hz de refresh ou mais, uma possibilidade que é suportada por alguns monitores de 19". Tudo o que falei até agora sobre taxa de atualização e flicker se aplica apenas aos monitores de CRT (os grandões que ainda usam tubo de imagem). Hoje em dia temos um segundo tipo de monitores, os monitores de LCD, aqueles modelos fininhos e com tela 100% plana, usados desde sempre nos notebooks. Nos monitores de LCD, cada ponto na tela é como uma lâmpada acesa, eles não possuem problemas com flicker, a imagem é sólida, independentemente da taxa de atualização usada. Em geral, os monitores de LCD suportam várias taxas de atualização, o mais comum é de 56 a até 75 Hz. Isto é feito para permitir que funcionem em conjunto com qualquer placa de vídeo e em várias configurações. Porém, neste caso, a taxa de atualização não afeta a qualidade da imagem. Se você fica muito tempo na frente do micro ou, principalmente, se trabalha com um, os monitores de LCD são a opção ideal. Eles são mais caros, mas se você dividir a diferença de preço por 36 meses (a vida útil média de um monitor) vai ver que o custo mensal não é tão alto assim. Eles também consomem menos energia (35 watts em média, contra 100 watts ou mais de um monitor CRT) o que economizará alguns trocados todo mês na conta de luz, ajudando a amortizar a diferença de preço. Mas, voltando à configuração do Kurumin, as opções de boot relacionadas com o vídeo permitem especificar a configuração que deseja usar e resolver os casos em que o sistema não consegue abrir o modo gráfico. Basta digitar a opção desejada na tela de boot: fb1024x768: Esta é uma espécie de opção à prova de falhas, que força a resolução de 1024x768 usando o driver fbdev (frame buffer). O frame buffer é um recurso suportado pelo kernel que permite exibir imagens manipulando diretamente o conteúdo da memória de vídeo. A grande vantagem é que não é preciso um driver de vídeo; este modo vai funcionar mesmo em placas de vídeo que não sejam oficialmente suportadas pelo Linux. O modo gráfico é aberto a 1024x768 usando 60 Hz de taxa de atualização, o que permite usar esta opção na grande maioria dos monitores de 14 e 15 polegadas. Funciona em cerca de 90% das placas de vídeo. fb800x600: É uma variação da opção acima, que utiliza resolução de 800x600. Algumas placas de vídeo onboard e algumas placas antigas só funcionam usando esta opção. kurumin xvrefresh=60: Esta opção força o sistema a utilizar uma taxa de atualização de apenas 60 Hz para o monitor. Ela é necessária em alguns monitores de LCD que não suportam taxas de atualização mais altas e em vários monitores antigos. O "60" pode ser substituído por qualquer outra taxa de atualização desejada, como em: kurumin xvrefresh=75. Você pode verificar qual é a configuração usada no Windows (ou no sistema atual) e especificar manualmente aqui. kurumin xdepth=16: Esta opção complementa as outras, permitindo configurar a profundidade de cor. O "16" indica a quantidade de cores em bits. Lembre que 16 bits equivalem a 65 mil cores, 24 equivalem a 16 milhões de cores e 8 equivalem a apenas 256 cores. Em geral o Kurumin dá sempre boot usando 16 ou 24 bits de cor, de acordo com o suportado pela placa, mas caso você tenha um micro muito antigo, com uma placa de vídeo com apenas 1 MB, você pode preferir usar 256 cores para que a placa possa trabalhar a 1024x768. kurumin desktop=fluxbox: Esta opção faz com que o Kurumin use o fluxbox como gerenciador de janelas ao invés do KDE. O Fluxbox é bem mais simples e menos amigável, mas permite usar o Kurumin em máquinas antigas, onde o KDE fica muito lento. Usando o Fluxbox o consumo de memória durante o boot (ao rodar do CD) cai quase pela metade, permitindo usar o sistema em micros com 64 MB de RAM.
Algumas remasterizações do Kurumin podem incluir outros gerenciadores de janelas, como o Gnome, IceWM ou o Blanes. Nestes casos, você pode usar esta opção para especificar qual gerenciador usar, como em "kurumin desktop=gnome". kurumin screen=1280x1024: Esta opção é dedicada especialmente para quem usa monitores grandes, de 17" ou mais. É preciso que o monitor suporte 1280x1024 com 75 Hz de taxa de atualização. kurumin screen=1024x768: Força o Kurumin a usar resolução de 1024x768. Este modo é diferente do "fb1024x768" pois neste a sua placa de vídeo é detectada e são ativados os recursos de aceleração de vídeo suportados por ela. Aqui você está especificando apenas a resolução e deixando que o sistema detecte o restante. A opção "screen=" pode ser usada para especificar qualquer resolução suportada pelo monitor, mesmo que fora do padrão. Por exemplo, muitos notebooks usam telas wide, com resolução de 1280x800 ou 1280x768, por exemplo. Em muitos deles, o sistema detecta a resolução incorretamente e acaba abrindo sempre a 1024x768. Para que toda a área útil do monitor seja usada, basta especificar manualmente, como em: "kurumin screen=1280x800" no boot. kurumin screen=1024x768 xvrefresh=60: Aqui estamos combinando as duas opções: resolução de 1024x768 e taxa de atualização de 60 Hz. Em alguns casos raros, pode ser que o problema seja com a detecção do driver de vídeo, como, por exemplo, o sistema tentando usar o driver "sis" para uma placa recente da SiS que ainda não é suportada por ele. Neste caso, você pode usar a opção "xmodule=vesa" para especificar o driver de vídeo a ser utilizado. Lembre-se de que o vesa é um curinga, um driver genérico que funciona com praticamente todas as placas de vídeo. Você pode combinar esta opção com as outras que já vimos, como em: kurumin screen=1024x768 xvrefresh=60 xmodule=vesa É possível também combinar várias opções no mesmo comando, basta ir colocando-as em seqüência, sempre começando com "kurumin", como em: kurumin screen=1280x1024 xvrefresh=60 xmodule=vesa desktop=fluxbox. A configuração do vídeo pode ser também alterada através da opção "Configurar Vídeo", que está disponível no "Centro de Controle do Kurumin > Suporte a Hardware > Configuração do Vídeo, Som, Teclado e Joystick".
Aqui você tem acesso às mesmas opções disponíveis na hora do boot. Se não marcar nenhuma opção, o vídeo simplesmente é redetectado automaticamente. As opções permitem forçar o uso das configurações desejadas. O utilitário gera o novo arquivo de configuração, permite que você teste a configuração, para ter certeza que está realmente funcionando e, no final, confirma se você quer usá-la.
Opções para solucionar problemas
Além das opções relacionadas ao vídeo, existem as opções que solucionam problemas durante a detecção de dispositivos, que é a principal causa de problemas durante o boot do Kurumin. Como disse, muitas placas-mãe problemáticas travam durante a detecção de alguns periféricos, como as M810 (na detecção do ACPI) e algumas placas com RAID ou SCSI onboard. Você pode simplesmente desativar estes recursos (sobretudo o suporte ACPI que é o mais problemático) no setup da própria placa-mãe. Mas, também é possível fazer isso na linha de boot do Kurumin: As opções disponíveis são: acpi=off, noapic, noagp, noscsi, noapm, nodma, nopcmcia e nousb. A opção acpi=off é uma das mais importantes. Muitas placas, especialmente as M810, M812 e outros modelos do mesmo "famoso" fabricante possuem implementações problemáticas do ACPI que funcionam de forma errática, fazendo com que a placa trave durante o boot caso o recurso não seja explicitamente desabilitado no setup ou nas opções de boot. A opção noapic desabilita o realocamento de endereços de IRQ por parte do BIOS, deixando o serviço a cargo do sistema operacional. Algumas placas usam BIOS bugados que não gerenciam corretamente este recurso, fazendo que placas de som, rede e outros periféricos não sejam detectados no boot, embora perfeitamente suportados pelo sistema. A opção noagp não desabilita placas de vídeo AGP, apenas o recurso de acesso à memória RAM que é quem pode causar problemas em alguns casos. Mesmo usando-o sua placa de vídeo AGP continuará sendo detectada normalmente. O mesmo se aplica à opção nousb, que faz com que mouses e teclados USB sejam reconhecidos pelo sistema como periféricos PS/2.
Você pode combinar várias opções na mesma linha, começando sempre com "kurumin". Você pode começar com a linha abaixo, que vai desativar a detecção de quase tudo e depois ir retirando algumas opções até descobrir qual é exatamente o problema com a sua placa, como em: kurumin noapic acpi=off noagp noscsi noapm nousb A partir do Kurumin 4.0, existe uma opção nova, necessária em algumas placas-mãe e notebooks: kurumin pci=bios. Esta é uma opção de compatibilidade, destinada a burlar problemas com a controladora PCI da placa. Outras opções menos usadas são: expert: Esta opção ativa um modo de inicialização alternativa, que vai perguntando passo a passo o que deve ser detectado ou não pelo sistema durante o boot. Esta opção permite detectar partes da detecção automática que fazem o sistema travar em algumas placas-mãe e também configurar manualmente sua placa de vídeo, som, mouse, teclado e placa SCSI. Esta opção faz com que o boot seja bem mais demorado; deve ser usada apenas para solução de problemas. kurumin vga=normal: Desabilita o frame-buffer durante a primeira parte da inicialização (onde é detectado o hardware, etc.). Algumas placas de vídeo antigas não suportam o recurso, o que faz com que elas exibam uma mensagem de erro durante o boot. Isso não é problema, pois basta pressionar Enter ou esperar 30 segundos para que o boot prossiga normalmente. Mas, de qualquer forma, a opção permite desativar isso. kurumin mem=32M: Esta é uma opção obsoleta, que permite especificar manualmente a quantidade de memória RAM instalada, mas que parece ser necessária em algumas placas mães antigas. Tive notícias de duas ou três placas para Pentium 1 e também casos de usuários de placas M810 que travavam no boot caso esta opção não fosse usada. O "32M" deve ser substituído pela quantidade de memória RAM presente no sistema, em megabytes (64M, 128M, etc.). O "M" deve ser sempre maiúsculo.
Rodando o Kurumin com o drive de CD livre
Outra limitação dos live-CDs é que depois do boot, o drive de CD-ROM fica ocupado, de forma que você não pode ouvir um CD de música ou assistir um DVD, por exemplo. É possível evitar isso copiando os arquivos para uma partição do HD. Neste caso, o drive fica livre o desempenho do sistema fica melhor, já que passa a rodar a partir do HD, que é muito mais rápido. Para isso, use a opção: kurumin tohd=/dev/hda1 Onde o "/dev/hda1" é a partição do HD para onde será feita a cópia dos arquivos. É importante lembrar que a partição não é formatada, o sistema cria apenas uma pasta "/knoppix" dentro da partição, com uma cópia do conteúdo do CD. Naturalmente, é preciso existir espaço livre suficiente para receber a cópia do conteúdo do CD. Neste caso, o CD é usado apenas na etapa inicial do boot. Depois que o sistema é carregado a partir dos arquivos na partição, o CD pode ser ejetado. A cópia demora alguns minutos. Mas, depois de fazê-la pela primeira vez, você pode aproveitá-la nas inicializações seguintes, usando a opção "fromhd=", como em: kurumin fromhd=/dev/hda1 Isso fará com que o Kurumin use a cópia já feita, sem precisar ficar copiando de novo a cada boot. A grande limitação é que por enquanto a imagem de boot do Kurumin suporta apenas partições Windows formatadas em FAT16 ou FAT32 ou partições Linux, formatadas em EXT2, EXT3 ou ReiserFS, deixando de fora as partições NTFS do Windows XP, que ainda não possuem um driver seguro para escrita no Linux. Numa máquina com o Windows instalado, onde existe apenas uma partição NTFS ocupando todo o HD, ainda existe a opção de redimensionar a partição usando o gparted, criando uma
pequena partição Linux no final do HD para fazer a cópia. Veja mais detalhes sobre como usar o gparted logo a seguir, no tópico sobre instalação do sistema. Lembre-se de que você pode ver as partições existentes no seu HD e em qual sistema de arquivos cada uma está formatada abrindo o gparted ou o cfdisk. Se você tem o Windows instalado, então o drive C: será sempre a partição "/dev/hda1". É possível ainda usar a opção "bootfrom=", que permite dar boot diretamente a partir do arquivo ISO de uma nova (ou a mesma) versão do Kurumin, sem precisar queimar o CD. Esta opção funciona de forma muito similar à "fromhd", com a diferença de que ao invés de procurar pela pasta "knoppix/", o sistema procura pelo arquivo ISO dentro da partição. Ao usar esta opção, é preciso indicar a partição e o nome arquivo ISO dentro dela, como em: kurumin bootfrom=/dev/hda1/kurumin.iso Note que esta dica funciona apenas entre versões do Kurumin que utilizam o mesmo Kernel, pois você está usando o Kernel incluído no CD para inicializar o sistema dentro do ISO. A versões 3.x usam o Kernel 2.4.25, as versões 4.x usam o Kernel 2.6.8, enquanto o 5.0 e 5.1 usa o 2.6.11. Você pode usar um CD do Kurumin 5.0 para dar boot usando o ISO do 5.1, por exemplo, mas não vai funcionar se você tentar usar um CD da série 4.x, por exemplo, que usa um Kernel diferente. A principal vantagem de usar estas opções é o desempenho do sistema, que melhora realmente de forma brutal. Num notebook HP nx6110, o boot pelo CD (Kurumin 5.1) demora 2:45 minutos, enquanto ao dar boot usando um ISO gravado no HD, demora apenas 55 segundos, 3 vezes menos! Outra vantagem é que o sistema não fica dando aquelas "travadinhas", causadas pelo modo de economia de energia do drive. Fora isso, o sistema continua se comportando exatamente da mesma forma que ao dar um boot "normal" a partir do CD, você pode inclusive instalar a partir daí.
Salvando suas configurações
A partir do Kurumin 5.1 foram incluídas duas opções que permitem salvar arquivos e novos programas instalados, mesmo ao rodar o Kurumin do CD. Estas opções são destinadas principalmente a quem usa pendrives, mas você pode usar uma partição no HD, complementando a opção de copiar os arquivos do sistema para a partição. A primeira opção salva os arquivos e configurações armazenados no diretório "/home/kurumin", enquanto a segunda permite salvar todas as alterações feitas no sistema (como novos programas instalados usando o UnionFS). Ambas utilizam um recurso especial do sistema, as famosas imagens de loopback, que são arquivos especialmente formatados, que podem ser armazenados em qualquer tipo de partição (mesmo uma partição FAT do Windows), mas são acessados pelo sistema como se fossem partições separadas. Para salvar as configurações, criando as imagens de loopback, use as opções encontradas no Iniciar > Configuração do Sistema:
O utilitário mostra as partições disponíveis (incluindo o pendrive, detectado pelo sistema como /dev/sda ou /dev/sdb) e o espaço disponível em cada uma, em qual partição o arquivo será criado e qual será seu tamanho. Ao salvar o home, é criado um arquivo "kurumin.img" e ao salvar as modificações no sistema é criado o arquivo "union.img". Para usá-los no boot, use as opções: kurumin home=/dev/hda1/kurumin.img (para o arquivo com o home), ou: kurumin union=/dev/hda1/union.img (para o arquivo com a imagem do UnionFS) Você pode também combinar as duas opções, como em: kurumin home=/dev/hda1/kurumin.img union=/dev/hda1/union.img Isto fará com que o arquivo seja montado no diretório apropriado, fazendo com que as configurações e arquivos salvos fiquem disponíveis. Todas as alterações feitas são salvas diretamente nos arquivos de imagem, permitindo que você instale novos programas e salve arquivos, de uma forma similar ao que faria com o sistema instalado no HD.
Instalando
A opção de instalar o Kurumin está bem visível dentro da tela inicial do Painel de Controle, você pode também chamar o instalador usando o comando "sudo kurumin-install" num terminal. No Painel estão organizadas também outras funções que usamos para configurar o sistema, que examinaremos com mais cuidado adiante. O instalador é na verdade um script, localizado dentro da pasta "/usr/local/bin/". Você pode estuda-lo e até alterá-lo caso necessário, usando um editor de textos qualquer. Assim como o instalador, muitas ferramentas aparentemente complexas, são na verdade scripts relativamente simples, que trabalham executando em ordem os comandos de texto necessários para realizar cada tarefa. Uma característica importante no Linux é que apesar de todas as ferramentas gráficas, toda configuração do sistema pode ser feita através do terminal, desde que você saiba os passos necessários.
Antes de instalar, vamos revisar alguns passos importantes:
As partições no Linux
Temos duas interfaces IDE na placa-mãe, onde cada uma permite a conexão de dois HDs, configurados como master ou slave. O primeiro HD, conectado à interface IDE primária e configurado como master, é reconhecido pelo Linux como hda, o segundo HD, slave da IDE primária é reconhecido como hdb, enquanto os dois HDs conectados à IDE secundária são reconhecidos como hdc e hdd. Caso você esteja usando um HD Serial ATA, então ele será visto como sda. Caso sejam dois, um será o sda e o outro sdb. O mesmo acontece ao usar HDs SCSI. Ao mesmo tempo, cada HD pode ser dividido em várias partições. Podemos ter um total de 4 partições primárias ou três partições primárias e mais uma partição extendida, que pode englobar até 255 partições lógicas. É justamente a partição lógica que permite a nós dividir o HD em mais de 4 partições. Esta limitação das 4 partições primárias, é uma limitação que existe desde o primeiro PC, lançado em 1981. Os projetistas que escreveram o BIOS para ele, precisavam economizar memória e chegaram à conclusão que 2 bits (4 combinações) para o endereço das partições seriam suficientes, pois na época os HDs mais vendidos tinham apenas 5 MB e só existia um sistema operacional para PCs, o PC-DOS, de forma que era raro alguém precisar criar mais de uma partição. As coisas mudaram um pouco de lá pra cá, mas infelizmente esta limitação continua até os dias de hoje. Para amenizar o problema, foi criado o recurso da partição estendida e das partições lógicas. A partição estendida contém uma área extra de endereçamento, que permite endereçar as 255 partições lógicas. É possível criar até 4 partições extendidas, de forma que (em teoria) é possível dividir o HD em até 1020 partições :).
A primeira partição primária, do primeiro HD (hda) é chamada de hda1. Caso o HD seja dividido em várias partições, as demais partições primárias são chamadas de hda2, hda3 e hda4. Porém, o mais comum ao dividir o HD em várias partições é criar apenas uma partição primária e criar as demais partições dentro de uma partição extendida. É isso que o particionador faz por default. As partições extendidas recebem números de 5 em diante (hda5, hda6, hda7, etc.) mesmo que as partições hda2 e hda3 não existam:
Neste mapa temos a partição primária, montada no diretório raiz (/) e uma partição extendida, que engloba tanto a partição swap quanto a partição montada em /home. Este é o esquema de particionamento mais usado no Linux: três partições, sendo uma a partição raiz, onde o sistema fica instalado, a partição swap e uma terceira partição (opcional), montada no diretório /home. A idéia é a mesma de dividir o HD em C:\ e D:\ no Windows: simplesmente manter seus arquivos pessoais numa partição diferente da dos arquivos do sistema, para melhorar a segurança e permitir que você possa tranqüilamente reformatar a partição do sistema quando precisar reinstalá-lo, sem correr o risco de perder junto seus arquivos pessoais. Se estiver com dúvidas sobre como o HD está particionado, abra o gparted, que você encontra no Iniciar > Sistema. Ele mostra um mapa do HD.
Instalando
Ao começar a instalação propriamente dita, o primeiro passo é escolher em qual HD o sistema será instalado, caso você tenha mais de um:
O particionamento do HD pode ser feito através do cfdisk, um particionador de modo texto que lembra um pouco o fdisk do Windows 98, ou usando o gparted, um particionador gráfico com uma interface parecida com o Partition Magic. O cfdisk é mais prático quando você simplesmente quer formatar o HD todo e criar novas partições, enquanto o gparted permite que você redimensione partições do Windows e outras distribuições Linux para liberar espaço para instalar o Kurumin.
Particionando com o cfdisk
O cfdisk é um programa simples, de modo texto. Se você é iniciante, vai se sentir mais confortável usando o gparted, o Partition Magic (no Windows) ou o particionador oferecido durante a instalação do Mandriva. Basta dar boot com um CD do Mandriva, ou do Mandrake 9.0 em diante, seguir até o particionamento do disco e abortar a instalação depois de fazer o particionamento. Ele é bem fácil de usar e oferece a opção de redimensionar partições Windows. Caso o HD já esteja particionado basta selecionar a opção "Quit" na janela do cfdisk, ou pressionar a tecla "q" para prosseguir com a instalação. Para alternar entre as opções dentro do cfdisk, use as setas para a esquerda e direita no teclado; para selecionar uma opção tecle Enter.
Dentro do cfdisk, use as setas para cima e para baixo para selecionar uma partição ou trecho de espaço livre e as setas para a direita e esquerda para navegar entre as opções, que incluem: Delete: Deletar uma partição, transformando-a em espaço livre. Use esta opção para deletar partições já existentes no HD para poder criar novas. Create: Cria uma partição usando um trecho de espaço livre. O assistente perguntará sobre o tamanho da partição, em megabytes. Você terá ainda a opção de criar uma partição primária e uma partição extendida. Você pode criar no máximo de quatro partições primárias, uma limitação que vem desde o PC-XT. Mas, por outro lado pode criar até 255 partições extendidas. Todas as versões do Windows e do DOS exigem que sejam instaladas numa partição primária, mas no Linux não existe esta limitação. Você pode criar quantas partições for necessário e instalar o Kurumin em qual delas preferir. Maximize: Redimensiona uma partição, para que ela ocupe todo o espaço disponível no HD. O processo não é destrutivo, pois o sistema simplesmente adiciona o espaço adicional no final da partição, sem mexer no que está gravado, mas de qualquer forma é sempre saudável fazer um backup. Type: Altera o sistema de arquivos da partição (Linux, FAT, Linux Swap, etc.). Lembre-se de que você deve ter no mínimo uma partição Linux e outra Linux Swap. Bootable: Esta é mais uma opção necessária para partições do Windows ou DOS, mas não para o Linux. Mas a regra básica é que ao usar várias partições, a partição onde o sistema operacional está instalado seja marcada com este atributo. Write: Salva as alterações. Quit: Depois de fazer as alterações necessárias e salvar, só falta sair do programa ;-). Basicamente, ao usar o cfdisk, você deve criar duas partições, uma maior para instalar o sistema e outra menor, de 500 MB ou 1 GB para a memória swap. Ao deletar uma partição antiga você seleciona o trecho de espaço livre e acessa a opção Create para criar uma partição Linux para a instalação do sistema. Para criar a partição swap, você repete o procedimento, criando uma segunda partição Linux, mas em seguida você acessa a opção Type e pressiona Enter duas vezes para que o cfdisk a transforme numa partição swap. Criadas as duas partições, é só salvar e sair.
O cfdisk não oferece nenhuma opção para redimensionar partições. Para isso você deve usar o gparted, ou outro particionador com que tenha familiaridade, como o Partition Magic ou o particionador usado durante a instalação do Mandrake por exemplo (basta iniciar a instalação até chegar ao particionamento do disco, alterar o particionamento, salvar e em seguida abortar a instalação). Lembre-se de que o cfdisk deve ser usado apenas se você deseja deletar ou criar partições no HD. Se você quer apenas instalar o Kurumin numa partição que já existe (mesmo que seja uma partição do Windows ou esteja formatada em outro sistema de arquivos qualquer), pode dispensar o cfdisk, basta sair sem fazer nada. A formatação propriamente dita é feita mais adiante durante a instalação. Alguns programas de particionamento (como o do instalador do Mandrake) criam tabelas de partição que não são entendidas pelo cfdisk. Neste caso, ao abrir o cfdisk você receberá uma mensagem de erro sobre a tabela de partição. Isto não significa necessariamente que exista algo errado com o seu HD, apenas que o cfdisk não conseguiu entender a tabela de partição atual. Isto é perfeitamente normal, basta pressionar Enter para fechar o cfdisk e prosseguir com a instalação. O único problema neste caso é que você terá que recorrer a outro programa para reparticionar o HD. Como disse acima, você pode usar um CD de instalação do Mandriva, prosseguir até a parte de particionamento do disco e depois abortar a instalação. Se você quer apenas usar o cfdisk para reformatar o HD, sem se preocupar com os dados, você pode fazer o cfdisk eliminar a tabela de partição do HD, criando uma nova tabela em branco. Esta opção é perigosa (vai apagar todos os dados), por isso não foi incluída no instalador. Se você quiser usá-la, abra o Root Shell encontrado em Iniciar > Configuração do Sistema e chame o comando "cfdisk -z" e particione o disco a seu gosto. Lembre-se, esta opção vai destruir todos os dados do HD.
Particionando com o gparted
O gparted é um particionador gráfico, bem mais amigável. Ao usá-lo, é importante observar que todas as partições do HD devem estar desmontadas, ou seja, elas não devem estar em uso. Ao dar boot com o CD do Kurumin, todas as partições ficam por padrão desativadas. Elas são montadas quando você clica sobre os ícones das partições dentro do "Meu Computador" para ver os arquivos. Para desmontá-las, clique com o botão direito sobre o ícone e acione a opção "Desmontar". Na tela principal, você verá um "mapa" do HD, com todas as partições disponíveis e pode criar, deletar e redimensionar partições a partir dele. Neste exemplo, tenho uma partição Windows de 6 GB, formatada em NTFS, onde apenas 1.4 GB estão usados (a parte que aparece em amarelo no "mapa"). É possível redimensionar a partição reduzindo seu tamanho para algo próximo do espaço ocupado, 2 ou 3 GB por exemplo.
Você pode usar o gparted para redimensionar a partição do Windows e liberar espaço para o Kurumin. Ele é capaz de redimensionar tanto partições FAT32 quanto partições em NTFS. A única exigência é que antes de redimensionar você deve primeiro desfragmentar a partição alvo (reinicie e use o defrag do próprio Windows). Caso a partição não esteja desfragmentada ele aborta a operação para evitar qualquer possibilidade de perda de dados. Para redimensionar, clique na partição e em seguida sobre a opção "Redimensionar/Mover", onde você pode ajustar o novo tamanho da partição.
As alterações não são feitas automaticamente. Depois de revisar tudo clique no "Aplicar" para que as modificações sejam aplicadas. O gparted utiliza vários outros programas para checar as partições e fazer o trabalho pesado. Clique no botão "Details" para ver os passos que estão sendo executados. O gparted tem como principal objetivo evitar perda de dados, de forma que sempre que ele encontra algum problema na partição, a operação é abortada. O problema mais comum ao redimensionar partições Windows é o fato da partição estar fragmentada. O gparted não tenta mover arquivos dentro da partição, ele apenas altera seu tamanho. Se houver arquivos gravados no final da partição, ele se recusará a tentar
redimensioná-la, para evitar que estes arquivos sejam perdidos. Para corrigir o problema, volte ao Windows e desfragmente a partição. Depois de concluído, você ficará com um bloco cinza, que representa espaço livre, não particionado. Para criar uma nova partição, clique com o botão direito sobre ele e em seguida sobre o botão "Novo". Na tela seguinte você pode escolher o sistema de arquivos em que a partição será formatada, seu tamanho e também se ela deve ser criada como uma partição primária, ou uma partição lógica. Lembre-se de que você só pode criar quatro partições primárias, ou até três primárias e uma extendida, com várias partições lógicas dentro dela. Ao terminar, clique no "Adicionar" para concluir a alteração. Note que as alterações são realmente aplicadas apenas ao clicar sobre o "Aplicar". Se mudar de idéia, basta usar o botão "Desfazer".
Para instalar, você precisa de uma partição Linux, formatada em ReiserFS, EXT2 ou EXT3, e uma partição swap. A partição swap não é realmente obrigatória, você até pode passar sem ela se tiver 512 MB de RAM ou mais. Porém, mesmo com bastante memória RAM, é recomendável usar uma partição swap, pois ela permite que o sistema remova bibliotecas e arquivos que não estão sendo usados da memória, em caso de necessidade, deixando mais memória livre para rodar os aplicativos nos momentos em que você estiver rodando muita coisa ao mesmo tempo e o PC estiver sofrendo para acompanhá-lo :-). Muita gente tem uma imagem errada do uso da memória swap por causa da forma burra como ela é gerenciada no Windows 98. Nele, mesmo com muita memória disponível, o sistema insiste em fazer swap, prejudicando o desempenho e tornando o sistema menos responsivo. No caso do Linux, principalmente ao usar uma distribuição recente, com o Kernel 2.6, o gerenciamento é feito de forma muito mais inteligente. O sistema leva vários fatores em conta na hora de decidir se usa swap ou não, usando-a apenas em casos de real necessidade, ou quando seu uso vai melhorar o desempenho do sistema. Usar swap para melhorar o desempenho parece paradoxal. Afinal, a swap é centenas de vezes mais lenta que a memória RAM e tudo que é colocado nela demora muito tempo para ser reavido. Porém, quando você abre muitos aplicativos e a memória RAM começa a acabar, mover para a swap arquivos e bibliotecas que possuem pouca chance de serem usados novamente faz sentido, pois libera memória para uso dos aplicativos que você realmente está usando. Outra coisa a levar em consideração é o cache de disco, espaços de memória que são usados para copiar informações que são freqüentemente lidas no HD, de forma a agilizar o acesso a elas. Você pode ver isso funcionando na prática: abra uma janela do OpenOffice ou o Firefox. Da primeira vez demora um pouco para carregar. Feche a janela e abra novamente. Da segunda vez já demorou bem menos, não é?
Isto acontece justamente porque na segunda abertura o sistema acessou boa parte das informações a partir do cache, ao invés de ter de ler tudo novamente a partir do HD ou CD. O cache de disco é um recurso que acelera absurdamente o tempo de carregamento dos programas e arquivos. Com mais memória disponível, o sistema pode fazer mais cache, melhorando perceptivelmente o desempenho. A terceira questão é que sem swap o sistema não tem para onde correr em situações onde você precisa abrir muitos programas ou executar alguma tarefa que realmente use toda a memória disponível. Sem memória, o sistema vai começar a ficar lento e, em situações mais extremas, os aplicativos começarão a fechar por falta de memória. Se você tiver bastante espaço disponível no HD, crie uma partição swap de 1 GB ou 2 GB. Se o espaço estiver racionado, crie uma partição menor, de 300 ou 500 MB. O ideal é que a partição swap seja maior em micros com pouca RAM e menor em micros com mais memória. Para criar a partição swap no gparted, escolha "linux-swap" no campo "Sistema de Arquivos".
Uma dica é que o gparted também pode ser usado para criar partições FAT32 e NTFS do Windows. Ou seja, você pode usá-lo também para particionar um HD para a instalação do Windows ao invés daqueles ultrapassados disquetes de boot do Windows 98. Basta dar um boot com o Kurumin :). Lembre-se de que o Kurumin ocupa cerca de 1.2 GB ao ser instado, mas você precisará de espaço para guardar seus arquivos e instalar outros programas. O ideal é reservar pelo menos 2 GB para o sistema e mais uns 500 MB (ou mais) de espaço para a partição swap. Se você tiver mais espaço disponível, aproveite para criar também uma partição extra para armazenar o diretório /home, que veremos como configurar a seguir. Esta partição separada permitirá reinstalar o sistema posteriormente sem perder seus arquivos, que ficarão protegidos numa partição separada. Em muitos micros é preciso reiniciar depois de modificar o particionamento do HD para que o sistema seja capaz de perceber as alterações. A limitação neste caso é o BIOS da placa-mãe, que em muitos casos só é capaz de ler a tabela de partições do HD durante o boot. Se o instalador reclamar que não existem partições Linux disponíveis, mesmo que você tenha feito tudo corretamente, é provável que seja este seu caso. Reinicie e comece novamente a instalação, dessa vez passando batido pela parte de particionamento.
Copiando os arquivos
Depois de particionar o HD, chegamos à parte mais crucial da instalação, que é a cópia dos arquivos propriamente dita. O instalador pergunta se você deseja usar uma partição swap e em qual partição o
sistema deve ser instalado. Note que a lista inclui apenas partições formatadas em sistemas de arquivos do Linux, para evitar o clássico acidente de formatar por engano a partição do Windows. Lembre-se de que a sua partição C:\ do Windows é a "/dev/hda1" no Linux.
O Linux suporta vários sistemas de arquivos diferentes. A função do sistema de arquivos é organizar o espaço disponível no HD, criar estruturas que permitem gravar e ler arquivos de forma organizada. Os primeiros sistemas de arquivos suportados pelo Linux, bem no começo do desenvolvimento, eram o Minix e o EXT. Ambos possuíam limitações graves com relação ao desempenho e o tamanho máximo das partições, de forma que ambos foram substituídos pelo EXT2, que continua em uso até hoje. O EXT2 é um sistema similar à FAT32 do Windows. Os arquivos são organizados de uma forma simples, com o HD dividido em vários clusters (que no EXT2 chamamos de blocos), onde cada cluster armazena um arquivo ou um fragmento de arquivo. Um índice no início do HD guarda uma tabela com os endereços de cada arquivo no HD. Muita gente gosta desta simplicidade e por isso continua usando o EXT2 até hoje. O problema é que, assim como o FAT32, o EXT2 tem uma grande tendência a perder dados quando o micro é desligado incorretamente (o que num desktop é muito comum). Nestes casos entra em ação o fsck, que vasculha todos os arquivos da partição, de forma a detectar e corrigir erros, da mesma forma que o scandisk do Windows. Os dois problemas fundamentais com o fsck são que: 1- O teste demora muito. 2- Ele só corrige erros simples. Sempre que um problema mais grave é detectado, o carregamento do sistema é abortado e você cai num prompt de recuperação (herança da época em que o Linux era feio, estranho e complicado), onde você precisa conhecer e saber usar os comandos necessários para reparar os erros manualmente. Ou seja, a menos que você tenha um nobreak e seu micro nunca seja desligado no botão, não use o EXT2. Ele é um sistema obsoleto, assim com o FAT32 no Windows. Temos em seguida o EXT3, uma evolução do EXT2, que inclui um sistema de journaling. O journal (diário) consiste numa espécie de log, que armazena todas as alterações que são feitas nos arquivos e quando elas foram concluídas. Quando o micro é desligado incorretamente, o fsck consulta este jornal para corrigir os erros, sem precisar executar o teste completo. Isso diminui bastante o problema, mas não o corrige completamente, pois o journal é na verdade um arquivo, que assim como os outros pode ser perdido. Quando isso acontece, o fsck precisa realizar o teste completo e, caso encontre algum problema, te joga novamente no
estúpido prompt de recuperação. Um terceiro problema é que o journal precisa ser atualizado conforme as alterações são feitas, um trabalho extra que reduz o desempenho de leitura e gravação de dados em até 30% em relação ao EXT2. Finalmente, temos o ReiserFS, que está para o EXT2 e o EXT3 da mesma forma que o NTFS está para o FAT32 no Windows. Ele é um sistema mais moderno, que inclui muitos recursos para a proteção dos dados e do próprio sistema de arquivos no caso de problemas diversos e desligamentos incorretos. O ReiserFS também aproveita melhor o espaço, agrupando arquivos pequenos, de forma que eles sejam gravados de forma contínua. Isso acaba fazendo uma grande diferença, pois no Linux temos uma quantidade muito grande de pequenos executáveis, bibliotecas e arquivos de configuração. O ReiserFS é um sistema bastante robusto, bem melhor adaptado para suportar os maus-tratos típicos de um desktop, por isso é o sistema recomendado. Você pode ver uma descrição técnica dos recursos do sistema e alguns benchmarks no: http://namesys.com/.
- Corrigindo problemas em partições ReiserFS: Problemas de corrupção de dados no ReiserFS são bastante raros. Mas, caso chegue ao ponto do sistema não dar boot por causa de um problema grave, causado por um desligamento no botão, é possível reparar a partição dando boot com um CD do Kurumin. Comece (a partir do CD) abrindo um terminal e logando-se como root, usando o comando "sudo su". A partir daí, rode o comando: # reiserfsck --check /dev/hda1 Ele exibe um aviso: Do you want to run this program?[N/Yes] (note need to type Yes if you do): Ou seja, você precisa digitar "Yes" para continuar; caso apenas dê Enter, ele aborta a operação. Ele vai verificar toda a estrutura do sistema de arquivos e indicar os erros encontrados. O próximo passo é usar a opção "--fix-fixable": # reiserfsck --fix-fixable /dev/hda1 Este segundo comando efetivamente corrige todos os erros simples, que possam ser corrigidos sem colocar em risco as demais estruturas do sistema de arquivos. Em 90% dos casos isto é suficiente. Se for encontrado algum erro grave, ele vai abortar a operação. Estes erros mais graves podem ser corrigidos com o comando: # reiserfsck --rebuild-tree /dev/hda1 Este comando vai reconstruir do zero todas as estruturas do sistema de arquivos, vasculhando todos os arquivos armazenados. Esta operação pode demorar bastante, de acordo com o tamanho e quantidade de arquivos na partição. Nunca interrompa a reconstrução, caso contrário você não vai conseguir acessar nada dentro da partição até que recomece e realmente termine a operação. O --rebuild-tree vai realmente corrigir qualquer tipo de erro no sistema de arquivos. Ele só não vai resolver o problema caso realmente exista algum problema físico, como, por exemplo, um grande número de setores defeituosos no HD.
Outros sistemas "modernos" são o XFS e o JFS, que são otimizados para uso em servidores. Eles também são relativamente populares, mas não são usados no instalador para não aumentar muito o número de opções.
Depois de selecionar a partição e o sistema de arquivos, o instalador confirma mais uma vez se você realmente quer formatar a partição para instalar o sistema. Existe aqui uma opção de atualização escondida, que foi incluída a partir do Kurumin 4.2. Se você responder "Não", o instalador vai copiar os arquivos sem formatar a partição, atualizando uma versão anterior do Kurumin instalada, sem apagar seus arquivos e configurações. Assim como no Windows, esta opção de atualização é mais propensa a problemas, pois é difícil preservar todos os programas instalados e todas as modificações que foram feitas. Embora a atualização funcione bem na maioria dos casos, alguns programas podem deixar de funcionar (o que pode ser resolvido simplesmente reinstalando-os). Os arquivos e configurações, que são o mais importante, são sempre preservados.
A cópia dos arquivos propriamente dita é muito rápida, de 4 minutos (num PC atual) a 12 minutos (num Pentium II com 128 MB e um CD-ROM de 32x). Embora o sistema fique carregado durante a cópia, nada impede que você navegue ou faça alguma outra coisa enquanto o sistema está sendo instalado. Os dados são copiados diretamente a partir do CD-ROM (que é somente leitura) para dentro da partição, de forma que a cópia não é perturbada mesmo que você crie ou modifique alguns arquivos durante a instalação,
Concluindo a instalação
Depois de copiar o sistema, o instalador faz algumas perguntas, usadas para concluir a configuração. A primeira é sobre a configuração da rede, onde você pode definir um nome para a máquina e depois a opção de configurar a rede automaticamente via DHCP ou especificar manualmente o endereço IP, gateway e servidor DNS. Uma observação importante é que o nome da máquina não pode conter espaços nem caracteres especiais. Usar um nome como "Dandão #$@" vai causar sérios problemas, pois o sistema não conseguirá atualizar o nome da máquina durante o boot e vários programas deixarão de funcionar corretamente. Use um nome simples, contendo apenas letras e números, ou mantenha o padrão.
Até o Kurumin 5.0, era perguntado se você queria configurar a rede durante a instalação. Se você conecta via ADSL com autenticação (Speedy, Velox, etc.) usando o pppoeconf, você deveria responder "Não" e deixar para configurar depois de concluída a instalação. Para simplificar as coisas, a partir do 5.1, a configuração da rede passou a ser feita no primeiro boot depois da instalação, como parte do assistente de boas-vindas. Claro, não poderíamos nos esquecer de escolher uma senha para o root e também para o usuário kurumin, que será usado depois de concluída a instalação. O instalador não aceita senhas em branco. É importante usar boas senhas ao acessar a internet, pois a senha é a última linha de proteção caso você mantenha o SSH ou outros servidores ativos. Senhas fáceis são a principal causa de invasões em sistemas Linux.
O usuário kurumin (ou knoppix nas versões antigas) é uma espécie de power-user, criado com o objetivo de facilitar o uso do sistema para novos usuários. Ele tem acesso aos utilitários de configuração, permissão para instalar novos programas e configurar programas como o K3B, de modo que você não precise ficar toda hora fornecendo a senha de root. O usuário kurumin possui privilégios suficientes para usar o sistema sem sobressaltos, mas sem abrir as várias brechas de segurança de usar o usuário root diretamente. É um meio termo entre segurança e praticidade. O Ubuntu adota um sistema similar, onde a conta de root é desativada e você usa o comando
"sudo" (como no Kurumin) quando precisa executar comandos como root. A principal diferença é que o Ubuntu confirma a senha (da conta de usuário, não do root) periodicamente. Se você é um usuário com mais experiência, pode preferir criar um novo usuário, este sim um usuário "comum", sem privilégios especiais. Para criar mais usuários depois da instalação, use o comando "adduser" (como root) como em "adduser joao". Os novos usuários aparecem automaticamente na tela de login. Se preferir um utilitário gráfico, você pode usar o "users-admin", que pode ser executado pelo terminal, ou pelo ícone no "Iniciar > Sistema > Gnome System Tools". Ele pode ser encontrado também no Fedora (onde se chama "system-config-users") e no Mandriva (onde se chama "userdrake").
Você pode ativar ou desativar o uso do sudo, que é o responsável pelos privilégios administrativos a qualquer momento, usando as opções dentro do painel dos ícones mágicos. Estas opções fazem as alterações necessárias no arquivo "/etc/sudoers" e a alteração passa a valer imediatamente. Não é preciso reiniciar o KDE. Naturalmente, para ativar o sudo para um novo usuário, é preciso fornecer a senha de root.
Configurando o Lilo
A última etapa da instalação é a configuração do Lilo, o gerenciador de boot usado para inicializar o sistema, e pode ser configurado para inicializar também o Windows e outras distribuições Linux instaladas no HD. Você tem a opção de instalar o Lilo na trilha MBR do HD, fazendo com que o Kurumin passe a ser o sistema default (respondendo "Sim" à pergunta), ou instalar o Lilo na partição (respondendo "Não").
Quando você liga o micro, o BIOS da placa-mãe detecta o HD, CD-ROM, disquete e outros periféricos instalados. Depois de terminar seu trabalho, o BIOS procura por algum sistema operacional para carregar, seja no HD, CD-ROM, disquete ou mesmo via rede, de acordo com o configurado no setup. No caso do HD, o BIOS lê apenas os primeiros 512 bytes, que são justamente a trilha 0, ou trilha MBR do HD. Neste pequeno espaço vai a tabela de partição e o gerenciador de boot. Cada sistema operacional utiliza um gerenciador de boot próprio. Como o espaço no MBR é muito reduzido, apenas um pode ser instalado no MBR de cada vez. Quando um sistema grava seu gerenciador no MBR, automaticamente apaga o do anterior. Ao ter mais de um sistema instalado, a solução é gravar apenas um deles no MBR e gravar dos demais no primeiro setor da partição onde cada sistema está instalado. Com isso, o gravado na MBR pode ser configurado para carregar os demais. Se o Kurumin for o único sistema instalado, basta responder Sim e seus problemas acabaram. Se por outro lado você está instalando o Kurumin em dual-boot com o Windows ou outra distribuição do Linux, siga os seguintes passos para configurar os dois sistemas em dual-boot: 1) Windows + Kurumin: Se o Windows já está instalado, responda "Sim" para que o lilo seja gravado na MBR. O Windows grava seu gerenciador de boot tanto na MBR quanto no primeiro setor da partição, por isso é o mais fácil de configurar. Por ser gravado na MBR, o lilo será carregado primeiro e oferecerá a opção de escolher entre carregar o Kurumin ou o Windows a cada boot. Isso é feito adicionando duas linhas no arquivo de configuração do lilo, que explicam para ele que existe outro sistema instalado. A partir do Kurumin 5.0 esta configuração é feita automaticamente, nas versões antigas é necessário adicionar as linhas manualmente: other = /dev/hda1 label = Windows
2) Kurumin + Outra distribuição Linux: Ao instalar o Kurumin em dual boot com outra distribuição, é necessário que você configure um para gravar na MBR e o outro para gravar na partição. Instale a outra distribuição primeiro, responda que não quer gravar o gerenciador de boot na MBR durante a instalação e, ao instalar o Kurumin, adicione as mesmas duas linhas na configuração do lilo, dizendo a partição onde a outra distribuição está instalada e dando um nome para ela, como em: other = /dev/hda2 label = Mandriva Uma observação importante: Os nomes não podem ter mais de 14 caracteres e não podem conter espaços ou caracteres especiais. O arquivo de configuração do lilo é o "/etc/lilo.conf". O instalador lhe dá a chance de revisar a configuração do arquivo, onde você pode incluir as linhas caso necessário:
Os comentários no arquivo são auto-explicativos. Tudo o que você precisa fazer é retirar os comentários (#) das linhas referentes à partição onde está instalado o outro sistema operacional (caso ele não tenha sido detectado automaticamente pelo instalador) e salvar o arquivo. No screenshot abaixo, por exemplo, o Kurumin está sendo instalado em dual-boot com o Windows XP. O instalador detectou o dual-boot e colocou as linhas referentes ao Windows automaticamente. O único erro é que o label ficou "WinNT(hda1)", mas, fora a questão estética isso não faz diferença. Você pode mudar o label para "WinXP" ou qualquer coisa do gênero se quiser:
Depois de salvar o arquivo, basta fechar a janela para continuar a instalação. A partir daí você tem a opção de escolher qual sistema operacional será carregado durante o boot. Você pode configurar o lilo do Kurumin para inicializar vários sistemas diferentes se for o caso, basta ir descomentando os pares de linhas correspondentes. Para modificar a configuração do lilo depois de concluída a instalação, abra o arquivo "/etc/lilo.conf" (como root) e, depois de salvar as alterações, execute o comando "lilo" (novamente como root) para que elas sejam gravadas no HD.
Depois de instalado no HD, o desempenho do Kurumin fica melhor, pois o processador não precisa mais ficar descompactando os dados do CD, além de que um HD sempre oferece um tempo de busca bem menor.
Usando uma partição separada para o diretório /home
Desde o Kurumin 2.0, existe a opção de instalar o diretório "/home" numa partição separada do restante do sistema, opção que é dada no final da instalação. Naturalmente, para usar este recurso, é preciso que você tenha criada uma partição adicional ao particionar o HD. O mais comum neste caso é criar uma partição menor, de 4 a 8 GB para instalar o sistema (de acordo com a quantidade de programas adicionais que você pretende instalar), uma partição swap de 1 ou 2 GB e uma partição maior, englobando o restante do HD, para ser usada como "/home". A partição home deve ser maior, pois é nela que serão guardados seus arquivos, músicas, e-mails, trabalhos, filmes, etc., coisas que normalmente ocupam bem mais espaço que os arquivos do sistema.
Usar uma partição separada permite que você possa reinstalar o sistema sem perder seus arquivos e configurações, o que é especialmente interessante no caso do Kurumin, que é atualizado freqüentemente. Usando um diretório home separado, as reinstalações tornam-se mais transparentes, você ainda precisa reinstalar os programas (o que não é tão complicado assim se você usar os ícones mágicos), mas todas as configurações dos aplicativos são preservadas. Cada programa armazena suas configurações dentro de uma pasta oculta dentro do seu diretório de usuário, como ".mozilla", ".kde", etc. Mesmo ao reinstalar o sistema, estas pastas são reconhecidas e as configurações antigas preservadas. Basta tomar o cuidado de guardar também todos os seus arquivos dentro do diretório home e você não perderá quase nada ao reinstalar.
O primeiro passo é indicar a partição que deseja usar. Como já vimos, no Linux as partições aparecem como dispositivos dentro do diretório /dev/, como "/dev/hda1" (para a primeira partição, o C: no Windows) ou "/dev/hda2". Em caso de dúvidas, você pode ver um mapa mostrando como o HD está formatado dentro do gparted.
Preste atenção quando o instalador perguntar se a partição já está formatada. A legenda nesse caso é autoexplicativa; responda que "sim" se você tem dados na partição e quer usá-la da forma como está, ou responda "não" apenas se você acabou de criar a partição e quer formatá-la para usar. Caso você esteja usando uma partição home de uma instalação anterior, responda "sim" e indique em qual sistema de arquivos a partição está formatada. O instalador suporta partições home formatadas em ReiserFS, EXT2 e EXT3. Lembre-se de que o ReiserFS é a opção recomendada.
Em seguida o instalador abre uma janela do kedit com o arquivo "/etc/fstab", onde vão as informações sobre todas as partições e outros sistemas de arquivos que são montados durante o boot. Esta janela é apenas "um extrato para simples conferência"; você não precisa se preocupar em alterar mais nada. As linhas adicionadas pelo instalador vão no final do arquivo, como em: # Monta a partição /home, adicionado pelo instalador do Kurumin /dev/hda2 /home reiserfs notail 0 2 Veja que a sintaxe não é tão complicada assim. Traduzindo para o Português, a linha diz: "Monte a partição /dev/hda2 no diretório /home. Esta partição está formatada em ReiserFS e você deve montá-la usando a opção notail (que melhora o desempenho no acesso à partição)". Ao reinstalar o sistema, você deve apenas repetir o processo, indicando a partição, dizendo que ela já está formatada e indicando o sistema de arquivos. O resto é automático.
Outra opção para usar o diretório home numa partição separada (que muitos acham mais simples) é
simplesmente copiar a pasta home para dentro da outra partição e criar um link para ela, substituindo a pasta home do sistema. Imagine que você tem o sistema instalado e algum tempo e agora quer reinstalar sem perder os arquivos do home. Você tem uma partição livre, a "/dev/hda2" disponível. O primeiro passo seria montar a partição livre e em seguida copiar o home atual para ela. É importante fazer isso como root, usando o comando "cp -a", que faz uma cópia exata, mantendo todas as permissões dos arquivos. Se a sua pasta home é "/home/joao", o comando seria: # cp -a /home/joao /mnt/hda2 Depois de reinstalar o sistema, crie novamente o usuário "joao" e edite o arquivo "/etc/fstab", para que a partição "/dev/hda2" (onde está o home) seja montada automaticamente durante o boot. A linha referente a ela ficará algo como "/dev/hda2 /mnt/hda2 reiserfs notail 0 2". Monte a partição ou reinicie o micro para verificar se a configuração está correta. Se a partição estiver montando corretamente, falta apenas o último passo que é criar o link. Mova o home vazio criado ao cadastrar o usuário no sistema e o substitua por um link apostando para o home dentro da partição: # mv /home/joao /home/joao-old # ln -s /mnt/hda2/joao /jome/joao Embora possa ser um pouco mais trabalhosa, esta segunda receita tem um efeito similar à primeira. Você escolhe qual prefere usar ;).
Depois de reiniciar o micro, você tem a opção de configurar a conexão com a internet, atualizar a lista de pacotes do apt-get (apt-get update) e de ativar o firewall. Os dois passos são opcionais; atualizar a lista de pacotes do apt é necessário para poder instalar novos programas usando o apt-get ou os ícones mágicos, e ativar o firewall é sempre uma boa idéia se seu micro está diretamente conectado à internet.
Capitulo 4: Configurando e resolvendo problemas No Linux quase tudo é configurado através de arquivos de texto. Usuários avançados geralmente preferem editar muitos destes arquivos diretamente para configurar o sistema, mas existem muitos programas de configuração que facilitam as coisas. O Kurumin inclui uma quantidade muito grande de scripts e pequenos programas de configuração que são agrupados num painel de controle central que batizei de Clica-Aki. Você encontra o ícone para abri-lo no "Iniciar > Configuração do Sistema" ou dentro da pasta "Meu Computador", no Desktop. A idéia é que as opções incluídas no Painel sejam auto-explicativas, por isso uma grande parte do desenvolvimento se concentra em adicionar instruções e textos de ajuda. O objetivo é criar uma ferramenta simples de usar, mas ao mesmo tempo bastante poderosa. As opções estão agrupadas em categorias. Até o Kurumin 4.2, as opções para instalar novos programas e instalar servidores só funcionavam com o Kurumin instalado no HD, por causa da limitação óbvia de não ser possível instalar novos programas com o sistema rodando a partir do CD-ROM, já que ele é somenteleitura. Mas, a partir do Kurumin 5.0, esta última limitação foi derrubada, com a inclusão do UnionFS. Graças a ele, passou a ser possível usar o apt-get e os ícones mágicos para instalar novos programas e mexer em todos os arquivos de configuração do sistema, mesmo com o sistema rodando do CD. Isto permite testar os recursos do sistema com muito mais liberdade, sem precisar instalar. Você pode dar boot, instalar um servidor Apache e Squid, os drivers da nVidia, o VMware e outros programas que quiser testar e reiniciar o micro, como se nada tivesse acontecido. O UnionFS funciona de uma forma bastante engenhosa, uma daquelas idéias aparentemente simples, que resolvem problemas complexos. Com o Kurumin rodando a partir do CD, os arquivos armazenados no diretório home e alguns arquivos de configuração, que precisam ser alterados durante o boot, são armazenados num ramdisk (um disco virtual, criado usando uma parte da memória RAM); mas, fora isto, tudo é acessado dentro do arquivo /cdrom/KNOPPIX, que, além de fazer parte do CD, está compactado num formato que não permite alterações, completamente selado. Para permitir esta "mágica", o UnionFS permite juntar dois (ou mais) diretórios em um, estabelecendo uma hierarquia entre eles. O "Union" vem justamente de "união". Temos então o arquivo compactado do CD num nível hierárquico mais baixo, montado como somente leitura e um ramdisk, que originalmente está quase vazio, mas que vai armazenando todas as alterações. Os dois são montados numa única pasta, a /UNIONFS, que contém o conteúdo do arquivo compactado e do ramdisk. Os links que tradicionalmente apontariam para a pasta "/KNOPPIX", onde fica montado o arquivo compactado, são todos recriados apontando para ela. Na hora de ler um arquivo, o sistema verifica se existe uma versão mais recente armazenada no ramdisk, caso contrário lê no arquivo principal. Na hora de gravar, as alterações são sempre armazenadas no ramdisk, de forma automática e transparente. No final, você acaba podendo instalar programas e fazer qualquer tipo de alteração no sistema, da mesma forma que se ele estivesse instalado. As limitações neste caso são que todas as modificações são salvas no ramdisk. Para conseguir instalar programas grandes com o sistema rodando a partir do CD, você precisa ter 512 MB de RAM. Caso contrário, você pode instalar alguns programas pequenos de cada vez e ir reiniciando o micro para testar outros, conforme a memória for sendo ocupada.
O UnionFS é ativado por padrão durante o boot, quando é exibida a mensagem "UnionFS: União do CD/DVD (ro) com o ramdisk (rw) realizada com sucesso". Não é preciso usar nenhuma opção de boot, basta atualizar a lista do apt-get, executando o comando "sudo apt-get update" e começar a instalar programas.
Configuração do som
Existem dois conjuntos de drivers de som disponíveis no Linux: o OSS é o mais antigo, com uma arquitetura mais simples e suporte a um número menor de placas de som, usado desde as primeiras versões do Kernel. O Alsa é mais moderno, com suporte a mais placas e drivers com mais recursos. O Alsa é o sistema padrão no Kernel 2.6 e nas versões recentes do Kurumin, baseados nele. O utilitário padrão para detectar a placa de som ao usar o Alsa é o alsaconf (que deve ser executado como root, num terminal). Você pode usá-lo sempre que quiser redetectar a placa de som, ou em casos em que ela não seja detectada automaticamente durante o boot. Você pode também acioná-lo usando a opção dentro da seção "Suporte a Hardware" no Painel de Controle.
O alsaconf roda em modo texto justamente para que seja compatível com qualquer distribuição independente do ambiente gráfico instalado. Ele é uma das ferramentas padrão, que você encontra em qualquer distribuição. Ao ser executado, ele fecha todos os programas que estejam usando o som, por isso tome sempre o cuidado de salvar seus trabalhos. Depois de ativar a placa, ajuste os volumes usando o kmix (o ícone do alto-falante ao lado do relógio). Se preferir, você pode usar também o aumix ou o alsamixer. Em muitas distribuições, o som fica mudo por padrão, até que você ajuste o volume.
Outra observação importante sobre o suporte a placas de som é que ao contrário de placas mais caras, como as SB Live e Audigy, muitas placas de som onboard e os modelos PCI baratos não suportam múltiplos fluxos de som simultâneos via hardware. Ou seja, a placa originalmente não é capaz de reproduzir um MP3 e tocar os sons de sistema ao mesmo tempo. No Windows este recurso é implementado via software, através de funções incluídas nos drivers das placas. No Linux, isto é feito através de um servidor de som, o Kurumin usa o Arts, o servidor de som do KDE. A função do servidor de som é processar os eventos de som e mandar tudo mastigado para a placa de som. Ele serve como um intermediário entre os programas e o hardware. O problema é que muitos aplicativos e jogos só sabem utilizar os drivers OSS antigos. O Alsa oferece uma camada de compatibilidade que permite que estes aplicativos funcionem na maioria dos casos e o Arts vem configurado para fechar automaticamente depois de 4 segundos sem uso. Ou seja, se você fechar todos os programas que usam o som e contar até 4, a sua placa de som vai estar livre para ser utilizada por programas antigos. Programas baseados na biblioteca do Gnome, como o XMMS e o gMplayer incluídos no Kurumin, podem ser configurados tanto para acessar a placa de som diretamente, seja usando os drivers Alsa quanto os drivers OSS, quanto para usar o Arts. Em muitos programas, o default é utilizar o Arts sempre que possível, mas caso você esteja tendo problemas com o som em algum aplicativo em particular, experimente dar uma olhada na configuração e ver se não existe uma opção para mudar o servidor de som usado. Veja por exemplo a configuração do gMplayer:
Você pode experimentar mudar para a opção "alsa 1x". Isso faz com que o programa passe a acessar a placa diretamente, sem passar pelo Arts.
O XMMS oferece uma opção semelhante em Preferências > Plugins E/S de Áudio > Plugin de saída:
Na maioria das distribuições, o Arts vem desativado por padrão, permitindo que os programas acessem a placa de som diretamente. Caso você esteja tendo problemas para usar o som simultaneamente em mais de um aplicativo por vez, ou alguns programas estiverem "travando" a placa de som, impedindo que outros usem o som mesmo depois de finalizados, experimente ativar o Arts, marcando a opção "Habilitar o Sistema de Som", dentro do Painel de controle do KDE, seção "Som & Multimídia > Sistema de Som":
Configuração da impressora
Antigamente, configurar uma impressora no Linux era muito mais complicado. Existiam vários sistemas de impressão diferentes, era preciso pesquisar qual deles suportava sua impressora e depois sair configurando cada programa para utilizá-lo. Hoje em dia, configurar uma impressora no Linux é até mais fácil que no Windows. O KDE vem com o kaddprinterwizard, um utilitário bem fácil de usar e o kprinter, um servidor de impressão que unifica os drivers disponíveis e permite
que as impressoras instaladas no kaddprinterwizard sejam usadas em qualquer programa do KDE. Você pode abri-lo através da opção "Instalar uma Impressora" dentro da seção "Suporte a Hardware" do Painel de controle ou chamá-lo diretamente pelo terminal. Ao contrário da maioria dos programas de configuração, você não precisa abrir o kaddprinterwizard como root.
Note que no Painel estão disponíveis também opções para compartilhar a impressora com a rede (as impressoras compartilhadas podem ser instaladas também nas máquinas Windows), rodar o printconf (um utilitário simples, que tenta detectar e configurar a impressora automaticamente) e também gerenciar as impressoras já instaladas. Na tela principal do kaddprinterwizard estão disponíveis várias opções. Ele permite instalar tanto impressoras locais quanto impressoras de rede. Servem impressoras compartilhadas em máquinas Windows, em outras máquinas Linux da rede, etc.:
- Local Printer (parallel, serial, USB): Esta opção é a mais usada, permite configurar uma impressora local, ligada na porta paralela ou USB. Na segunda tela ele mostra a porta e o modelo das impressoras encontradas e, em seguida, você pode escolher o driver, configurar o tipo de papel e qualidade de impressão. Em muitos casos serão oferecidas várias opções de drivers de impressão. A menos que você tenha alguma preferência por um driver em particular (sempre existem pequenas diferenças entre os recursos), o ideal é simplesmente aceitar a opção recomendada. - SMB shared Printer (Windows): Permite instalar uma impressora compartilhada no Windows ou num servidor Linux rodando o Samba. Você deve especificar o endereço IP do servidor e o nome do compartilhamento. - Remote Cups server (IPP/HTTP): Instalar uma impressora compartilhada num servidor Linux através do Cups. Em geral os clientes configuram estas impressoras automaticamente, mas esta opção permite configurar manualmente caso a autodetecção falhe. Na segunda tela você deve indicar a localização da impressora. Se você está instalando uma impressora local, indique se a impressora está conectada na porta paralela ou numa porta USB. Em geral ele acha a impressora sozinho e só pede sua confirmação. Caso você esteja instalando uma impressora de rede, ele pedirá o IP ou nome do servidor e o nome da impressora compartilhada.
O próximo passo é indicar a marca e modelo da impressora, ou, em outras palavras, indicar o driver de impressão que será usado.
Existe um ícone mágico na seção de suporte a Hardware que instala um driver adicional para impressoras Lexmark. Ao instalá-lo, os novos drivers aparecem dentro do kaddprinterwizard, na seção de impressoras da Lexmark. Como de praxe, depois de instalar a impressora você pode também configurar o tipo de papel, qualidade de impressão, etc.:
Como disse no início, existem vários conjuntos de drivers para impressora no Linux, como o Gimp-Print, Hpijs, Foomatic, etc. O kaddprinterwizard unifica todos estes drivers, permitindo configurar a impressora num só lugar. Em muitos casos, a mesma impressora pode ter vários drivers disponíveis diferentes. Neste caso, ele pergunta qual você deseja usar, mas sempre colocando um deles, o melhor testado ou com melhores recursos como "[recommended]". Se por acaso este driver recomendado não funcionar corretamente ou não oferecer algum recurso de que você precisa, você pode voltar e testar os outros.
Os programas do KDE sempre usam o kprinter como padrão, mas outros programas vêm pré-configurados para usar o lpr ou outro sistema. Nestes casos a solução mais fácil é simplesmente configurar o programa para usar o kprinter como comando de impressão. Por exemplo, no Mozilla Firefox vá em Arquivo > Imprimir > Propriedades e coloque o kprinter como comando de impressão:
Assim, ao imprimir qualquer coisa, o Firefox passa a chamar o menu de impressão do KDE ao invés de tentar imprimir diretamente:
Suporte a scanners
O suporte a scanners no Linux, de uma forma geral, é provido por dois programas, o Sane (a biblioteca que contém os drivers) e o Xsane, a ferramenta que detecta e configura os scanners conectados. Ele é capaz de detectar scanners USB e alguns scanners paralelos suportados. Chame-o com o comando xsane, ou use o ícone no menu.
Depois de configurar o scanner no Xsane, você pode usar o Kooka para escanear as imagens. Ele inclui também um software de OCR e outros recursos:
O manual do Kooka está disponível no: http://www.kde.org/apps/kooka/doc/manual.php. Você pode ver uma lista de scanners suportados pelo Sane no: http://sane-project.org/sane-mfgs.html Veja mais informações sobre o suporte a scanners no Linux em: http://www.buzzard.org.uk/jonathan/scanners-usb.html http://orbita.starmedia.com/~neofpo/ Mais uma observação é que muitos scanners USB utilizam um arquivo de firmware que deve ser transferido para o scanner antes que ele comece a funcionar. O firmware é o software responsável por fazer o hardware funcionar. Sem ele nada funciona. O arquivo binário pode ser encontrado dentro do CD de drivers do scanner, geralmente um arquivo com a extensão .bin, como por exemplo "u34v101.bin". Estes scanners são suportados pelo snapscan, mais um front-end para o sane, que pode ser encontrado em: http://snapscan.sourceforge.net/.
Configuração do mouse
No Linux, a configuração do mouse faz parte da configuração do vídeo, que vai no arquivo "/etc/X11/xorg.conf". Em 99% dos casos o mouse é detectado automaticamente, mesmo que você tenha mais de um, como ao usar um mouse USB num notebook que já possui um touchpad. Mas, existem algumas dicas que podem ser usadas em caso de problemas. Se você está tendo problemas com seu mouse ou teclado USB, reinicie e desative a opção "USB LEGACY SUPPORT" no Setup do micro. Esta opção ativa uma camada de compatibilidade, destinada a fazer o teclado e mouse funcionarem no MS-DOS, que em algumas placas faz com que o sistema deixe de detectar os dispositivos e ativar os drivers necessários durante o boot. Pressione a tecla "DEL" durante a contagem de memória para acessar o setup. Caso você realmente precise revisar a configuração do mouse manualmente, abra o arquivo "/etc/X11/xorg.conf" num editor de textos. Se você estiver no KDE (e sem mouse), pressione Alt+F2 para abrir o "executar comando" e chame o "kdesu kedit /etc/X11/xorg.conf" (para abrir o kedit como root), ou uma janela de terminal. Se estiver no modo texto, logue-se como root e rode o comando "mcedit /etc/X11/xorg.conf". A configuração do mouse, dentro do arquivo, é dividida em duas seções. Na primeira você especifica o tipo de mouse que está usando e, em seguida, existe uma seção maior com a configuração de cada tipo. O arquivo do Kurumin vem comentado, o que facilita a configuração. Este mesmo arquivo pode ser usado em outras distribuições, já que todas usam o mesmo servidor gráfico, o X.org ou (nas mais antigas) o Xfree. Basta copiar o arquivo, substituindo o arquivo padrão da outra distribuição para que o vídeo e mouse fiquem configurados da mesma maneira que estão no Kurumin. Logo no começo do arquivo, procure a linha com a configuração do mouse, como em: InputDevice "USB Mouse" "CorePointer" O "USB Mouse" indica o tipo de mouse usado. Você pode substituí-lo por "PS/2 Mouse" ou "Serial Mouse", no caso de um mouse serial. Nas versões do Kurumin que usam o Kernel 2.6 (a partir do 4.0), a opção para mouses USB funciona também com mouses PS/2 e touchpad, de forma que normalmente você só precisará alterar esta opção caso use um antigo mouse serial.
O restante da configuração, como a sensibilidade do cursor, comportamento da roda, intervalo do clique duplo, etc. é feita no Painel de Controle do KDE, na seção Periféricos > Mouse.
Alguns mouses PS/2 utilizam uma taxa de leitura diferente da padrão e por isso o cursor fica muito "leve" e difícil de controlar. Nos casos em que alterar a aceleração e sensibilidade do mouse através do painel de controle do KDE não resolver, você pode corrigir o problema alterando diretamente a configuração do X.
Procure a seção referente a seu mouse dentro do arquivo "/etc/X11/xorg.conf" e adicione a linha Option "Resolution" "800", como em: Section "InputDevice" Identifier "PS/2 Mouse" Driver "mouse" Option "Protocol" "IMPS/2" Option "ZAxisMapping" "4 5" Option "Device" "/dev/input/mice" Option "Emulate3Buttons" "true" Option "Emulate3Timeout" "70" Option "Resolution" "800" Option "SendCoreEvents" "true" EndSection Reinicie o X (pressionando Ctrl+Alt+Backspace) para que a alteração entre em vigor. Em geral esta configuração funciona melhor combinada com um valor baixo para a opção "Aceleração do ponteiro" (uso geralmente "1,2x" neste caso) e "0" na opção "Limite do Ponteiro".
Configurando o teclado
O KDE oferece um utilitário bem prático para configurar o teclado: o kxkb. Ele é o responsável pelo iconezinho da bandeira do Brasil ao lado do relógio, que indica que o sistema vem configurado para usar um teclado ABNT2. Para configurar o teclado, clique com o botão direito sobre o ícone e acesse a opção "Configurar...". Você também tem acesso à mesma configuração dentro do Painel de Controle do KDE, na seção Regional & Acessibilidade > Configuração do teclado:
A configuração do teclado é feita pela combinação de duas configurações: o modelo do teclado e o layout do teclado (as opções na coluna da esquerda), que indica como as teclas serão mapeadas. Se você usa um teclado ABNT2, então a configuração correta é o modelo do teclado como "ABNT2 Brasileiro" e o layout do teclado como "Brasileiro". Se você usa um teclado padrão Americano, então a configuração seria: modelo do teclado: "Genérico – 105 teclas (intl) PC" e layout "Inglês Norte-Americano com deadkeys (us_intl)", que equivale ao "US Internacional" do Windows.
O kxkb também suporta o uso de layouts múltiplos. Por exemplo, os teclados usados em notebooks japoneses possuem uma disposição de teclas muito semelhante à dos teclados ABNT2, apenas mapeadas de forma diferente. É comum que os Brasileiros que moram por lá configurem o teclado como sendo um ABNT2, para escrever em Português, mas deixando disponível também o layout japonês. Neste caso, é possível chavear entre os dois layouts clicando sobre o ícone ao lado do relógio.
Existem algumas combinações que permitem chavear entre teclados diferentes como, por exemplo, a combinação de um teclado ABNT2 com o layout "Inglês Norte Americano com deadkeys" que fica disponível como layout alternativo no Kurumin. Esta configuração permite que quem tem um teclado US Internacional possa trocar o layout do teclado no Kurumin com apenas um click na bandeirinha ao lado do relógio. Não fica perfeito, pois os dois layouts são diferentes (a tecla "\" não funciona, por exemplo), mas é um quebra galho que poupa tempo em muitos casos. Para usar as teclas de terceiro nível, ou seja, símbolos como "º", "ª", "£", "¬", "¢" ou "§", mantenha pressionada a tecla "Alt" direita (Alt GR) e pressione a tecla desejada. Para o "€", por exemplo, você pressiona Alt e 5. Você pode mudar a tecla usada para ativar o terceiro nível no Painel de Controle do KDE, em "Regional e Acessibilidade > Layout do Teclado > Opções Xkb > Terceiro nível". Naturalmente, a configuração do kxkb só é válida enquanto ele está ativo, ou seja, apenas dentro do KDE. Se você quiser alterar a configuração "de baixo nível", pode alterar diretamente a configuração do teclado no arquivo "/etc/X11/xorg.conf", onde vai a configuração do X. Lembre-se de que em distribuições antigas, que ainda utilizam o Xfree, o arquivo será o "/etc/X11/XF86Config-4". Procure a seção referente ao teclado. Normalmente ela aparece logo depois da seção referente ao mouse. Para um teclado ABNT2, a seção fica: Section "InputDevice" Identifier "Keyboard0" Driver "keyboard" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "abnt2" Option "XkbLayout" "br" Option "XkbVariant" "abnt2"
Option "XkbOptions" "abnt2" EndSection Para um teclado Americano, a seção fica: Section "InputDevice" Identifier "Keyboard0" Driver "kbd" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "pc105" Option "XkbLayout" "abnt2" EndSection Mais uma dica é que em casos de necessidade é possível usar o teclado como mouse. Embora seja raro, em alguns casos o Kurumin pode não conseguir detectar o mouse durante o boot. Pode acontecer ainda do mouse parar de funcionar caso você tente alterar a configuração e acabe fazendo alguma besteira, ou ainda que o seu mouse simplesmente pare de funcionar por falta de limpeza :-). Seja qual for a causa, o KDE oferece um recurso de mouse virtual, que permite usar o micro mesmo sem o mouse. O movimento do mouse passa a ser controlado pelas teclas do teclado numérico. Para ativar o mouse virtual, pressione a tecla Shift junto com a tecla NumLock do teclado numérico. A partir, daí as teclas 1, 2, 3, 4, 6, 7, 8 e 9 ficam responsáveis pela movimentação do mouse, enquanto a tecla 5 simula o clique do botão esquerdo, pressionando a tecla 5 duas vezes você simula um duplo clique. Para arrastar arrastar e soltar pressione a tecla 0 para prender e depois a tecla 5 para soltar. Por padrão a tecla 5 simula o botão esquerdo do mouse. Para simular os outros botões você usa as teclas / (botão direito), * (botão central) e - (para voltar ao botão esquerdo), que funcionam como teclas modificadoras. Para desativar o mouse virtual, pressione Shift + NumLock novamente.
Usando joysticks
Existem basicamente três tipos de joysticks para PC em uso: Os antigos joysticks analógicos, ligados na saída da placa de som, joysticks USB e joysticks artesanais (controles de Playstation ou Super Nes adaptados para serem ligados na porta paralela do micro). A tendência é que os joysticks USB caiam de preço cada vez mais, se popularizem e eliminem definitivamente os analógicos. Eles possuem algumas vantagens importantes: são mais precisos, não precisam ser calibrados e não degradam o desempenho da máquina ao serem usados. Os joysticks USB são também os que funcionam melhor no Linux. O joystick é detectado ao ser plugado na porta USB, graças ao hotplug que fica ativo por padrão no Kurumin e na grande maioria das distribuições atuais. Se estiver curioso, rode o comando "dmesg" e você verá uma entrada como esta, avisando da detecção do joystick: usb 1-2: new low speed USB device using address 6 input: USB HID v1.10 Joystick [Logitech WingMan Precision USB] on usb-0000:00:1d.0-2 No caso dos joysticks analógicos, não existe detecção automática, é preciso carregar o módulo que ativa o suporte ao joystick para que ele seja visto pelo sistema. No Kurumin você encontra um script que testa os
módulos disponíveis até carregar o correto no menu "Jogos > Joystick > Habilitar joystick analógico ligado na placa de som".
Você pode checar o joystick na seção "Periféricos > Joystick" do Centro de Controle do KDE. Ele inclui uma opção para calibrar o joystick, que só é necessária em joysticks analógicos.
A maioria dos games inclui suporte a joysticks. Se o joystick funciona no módulo do painel de controle, ele também funcionará nos programas. Se por acaso o joystick USB não foi detectado automaticamente, experimente reiniciar o hotplug com o comando: # service hotplug restart Para usar o joystick no Zsnes (o emulador de SuperNes, disponível no "Iniciar > Jogos"), vá em "Config > Input #1", marque a opção "Keyb/Joystick" e clique em "Set". Agora é só definir a função de cada botão. O Generator não inclui a opção de configurar os botões, mas detecta o joystick automaticamente. Nem todos os games nativos oferecem suporte a joystick. O Froze Bubble e o Ltris, por exemplo, não oferecem nenhuma opção para usar o joystick, enquanto o Supertux e o Xgalaga ativam-no automaticamente.
É possível também usar um joystick de Playstation ou Super Nes adaptado para ser ligado na porta paralela. Esta é a opção preferida por quem gosta de emuladores. Você já deve ter visto destes pra vender nos sites de leilão e até mesmo em algumas lojas de informática. Eles não são caros, em média uns 20 reais. Se você tiver um ferro de solda, pode até mesmo tentar fazer o seu, seguindo as instruções desta página: http://www.emulatronia.com/reportajes/directpad/psx/index.htm Estes joysticks funcionam no Linux usando dois módulos de kernel, chamados jaydev e gamecom e o Xjoypad, um programinha que converte os sinais recebidos do joystick em teclas do teclado. Quando você pressionar o botão "X" do controle, o sistema acha que você pressionou a tecla "3" do teclado numérico, por exemplo. Ele é interessante pois pode ser usado não apenas nos emuladores, mas também em qualquer jogo que utilize o teclado. Basta configurá-los para usar as teclas emuladas pelo controle.
A desvantagem de utilizar um joystick adaptado é que a utilização do processador é muito alta, pois ele precisa ficar monitorando os sinais recebidos na porta paralela. Mesmo num processador relativamente rápido, um Athlon de 1.5 GHz, por exemplo, a diminuição do desempenho chega a 20% enquanto o joystick está em uso. Usando um joystick ligado na placa de som, a perda é bem menor, cerca de 3% a 5%, enquanto ao usar um joystick USB ela é próxima de zero, pois os sinais são processados pelo próprio joystick. O Kurumin já inclui o Xjoypad e um ícone mágico, que você encontra em "Jogos > Joystick > Habilitar Joystick de Playstation ligado na porta paralela" que cuida de tudo. Mas, se você precisar habilitar o joystick manualmente em outra distribuição, os passos são os seguintes: 1- Ativar os módulos "joydev" e o "gamecon", que geralmente já vêm nas distribuições usando o comando "modprobe". Antes de carregá-los, você deve verificar também se os dispositivos do joystick já estão criados dentro do diretório "/dev". A lista completa dos comandos é um pouco extensa, então eu recomendo que você simplesmente faça um shell script e execute quando precisar. É bem simples, crie um arquivo de texto e copie os comandos para ele. Depois de salvar, marque a permissão de execução nas propriedades do arquivo ou use o comando "chmod +x arquivo". A partir daí é só chamá-lo com o comando "./arquivo" para que todos os comandos sejam executados de uma vez só. Normalmente, você precisa executar apenas os últimos três comandos. Os demais servem apenas para checar se os links dos dispositivos do joystick existem e apontam para as localizações corretas.
cd /dev rm js* mkdir input mknod input/js0 c 13 0 mknod input/js1 c 13 1 mknod input/js2 c 13 2 mknod input/js3 c 13 3 ln -s input/js0 js0 ln -s input/js1 js1 ln -s input/js2 js2 ln -s input/js3 js3 mknod input/event0 c 13 64 mknod input/event1 c 13 65 mknod input/event2 c 13 66 mknod input/event3 c 13 67 modprobe -r lp modprobe joydev modprobe gamecon map=0,7 Ao usar uma distribuição antiga, que ainda use o Kernel 2.4, o comando para carregar o módulo gamecon é: "modprobe gamecon gc=0,7" (o parâmetro "map" muda para "gc"). Você pode checar qual é a versão do Kernel usada com o comando "uname -r". 2- Depois de ativar o joystick, falta ativar o Xjoypad. Você pode baixar o arquivo no: http://downloads-guiadohardware.net/xjoypad.zip Descompacte o arquivo (use o comando "unzip" se quiser fazer via terminal), acesse a nova pasta que será criada e copie o arquivo "xjoypad" para a pasta /usr/local/bin, assim ele se transformará num comando do sistema e você terá mais facilidade para chamá-lo. Feito isso você só precisa deixar o comando residente. Adicione mais este comando no seu script: # xjoypad -device /dev/js0 &
Configurando a conexão
Hoje em dia é possível acessar a Web de (basicamente) 7 maneiras diferentes: 1- Via modem discado. 2- Através de uma conexão compartilhada, dentro da rede local. 3- Via ADSL, com IP fixo ou usando um modem ADSL configurado com roteador. 4- Via ADSL com autenticação via PPPoE, usando um modem configurado com bridge. 5- Via rádio (a modalidade oferecida em condomínios). 6- Via cabo. 7- Via wireless. No Kurumin, os ícones de configuração podem ser acessados dentro do Iniciar > Internet, ou dentro do menu "Conectar na internet ou configurar a rede" no Painel de Controle.
Conectando via modem
Se você acessa via modem, existem duas possibilidades. Se você usa um softmodem, que são de longe o tipo de modem mais comum hoje em dia, o primeiro passo é ativar o suporte ao seu modelo. Nem todos os modelos são suportados no Linux, simplesmente porque nem todos os fabricantes desenvolvem drivers, mas os drivers incluídos no Kurumin dão suporte à maior parte dos modelos. Você pode ver várias informações sobre os dispositivos da sua máquina, incluindo o modelo do modem no Centro de Informações do KDE, que pode ser encontrado em "Iniciar > Sistema > Centro de Informações". Caso você não faça a mínima idéia de qual é o modelo do seu modem e esteja com preguiça de descobrir, pode apelar para técnica da tentativa e erro. Simplesmente vá testando todos os drivers. Clique em um, tente discar com o Kppp, tente outro e assim por diante, até achar o que funcione no seu modem. Os scripts foram feitos para serem "resistentes a cliques múltiplos". Ao ativar um dos drivers, ele primeiro desativa o anterior, de modo a evitar qualquer problema. Depois de ativar o driver correto, o modem já estará pronto para o uso. Você pode discar e efetuar a conexão usando o kppp, incluído no Kurumin. Ele oferece várias opções de configuração, incluindo um recurso para calcular o gasto com telefone baseado no tempo e horários de uso:
Os drivers disponíveis nas versões recentes são:
- Intel 537 AC'97: Este é um modem Intel encontrado em muitos notebooks, como o HP nx6110. Ele funciona graças a uma combinação de um driver open-source, que faz parte do Alsa e o executável do driver da Smartlink. Ao usar o comando "lspci" o modem é identificado como "Modem: Intel Corp. 82801FB/FBM/FR/FW/FRW (ICH6 Family) AC'97 Modem Controller". Note que existe um modelo anterior de modem Intel AC'97, encontrado em alguns notebooks Toshiba e também em versão PCI que ainda não possui driver no Kernel 2.6. - Intel 537 e 537ep: Estes são os modems Intel Ambient (geralmente encontrados em versão PCI) vendidos atualmente. Você pode diferenciar os dois usando o comando "lspci" que retorna os códigos de identificação dos componentes do micro. O 537 aparece como "Intel Tigerjet" enquanto o 537ep aparece como "Intel Ambient". - Lucent e Agere: Este driver parou de ser desenvolvido em 2002 e não funciona com os modelos novos, vendidos atualmente, que usam o chipset SV92 (o código vem decalcado no chip do modem). Estes novos modems não são suportados, por isso evite comprá-los. PC-Tel AMR ou onboard: Este driver é uma espécie de "curinga", um driver desenvolvido pela Smartlink que funciona com os modems PC-Tel onboard (ele consegue ativar simultaneamente o modem e o som onboard, ao contrário do driver antigo), Modems PCI LG Netodragon e até mesmo com alguns modelos de modems Intel. PC-Tel PCI antigo (HSP Micromodem): Este driver dá suporte aos modems PC-Tel antigos, encontrado em versão PCI, que não são suportados pelo driver da Smartlink. É o driver do Jan's PCTel Resources compilado com a opção "pct789". PC-Tel USB: Esta é uma versão diferente do driver da Smartlink, que dá suporte a alguns modems PCTel USB, vendidos no Brasil pela LG. Existe ainda um driver para os modems Conexant HCF e HSF. O Conexant HCF é um modem PCI que foi um dos mais comuns à venda por volta do final de 2001, mas depois deixou de ser produzido pois era mais caro que os PC-Tel e Lucent. O Conexant HSF é um modem encontrado onboard em alguns modelos de notebooks e desknotes, mas não é tão comum quanto os PC-Tel, por exemplo. Estes drivers não são incluídos no Kurumin, pois são drivers comerciais (e pagos), desenvolvidos pela Linuxant, que desenvolve os drivers e dá suporte a eles, sem apoio do fabricante. Honestamente, não acho que vale à pena pagar US$ 19 pelo driver, nem estimular o desenvolvimento de drivers pagos, mas você pode baixar um trial de 30 dias ou comprar o driver completo no http://www.linuxant.com. Os Winmodems da US Robotics não possuem suporte no Linux, são uma espécie de peso de papel de luxo. Mas, alguns modelos de Winmodem não usam chipset da US Robotics, mas sim um chipset da Conexant, que funciona com o driver para modems Conexant HSF. Os modems Motorola não possuem um bom suporte no Linux. O fabricante patrocina o desenvolvimento de um driver proprietário, que é mais um exemplo de incompetência que de boa vontade. Ele dá suporte a apenas umas poucas versões do Kernel e não pode ser adaptado para outras. Existe uma receita disponível na web para fazê-lo funcionar no Kernel 2.4, que envolve modificar o código fonte de dois módulos e recompilar tudo para que o driver funcione. Existe ainda uma versão disponível no site da Motorola que em teoria dá suporte ao Mandrake 10, mas na prática simplesmente não funciona.
Se você dá valor ao seu tempo, recomendo que troque seu Motorola por um modem melhor suportado, ao invés de ficar perdendo seu tempo fazendo gambiarras para tentar fazê-lo funcionar no Linux. Por outro lado, se você possui um hardmodem o trabalho é bem mais simples, você precisa apenas indicar a porta do modem na aba "dispositivo" do kppp e discar. Embora raros, é ainda possível encontrar alguns modems externos, que são ligados a uma das portas seriais do micro. Estes modens custam normalmente por volta de R$ 200, mas possuem uma qualidade muito boa. Se você tiver um micro antigo, é possível ainda usar um hardmodem ISA, que (usados) são muito baratos hoje em dia. Os hardmodems são caros, pois são modems completos, que fazem todo o trabalho de modulação e correção de erros. Eles são controlados pelo sistema operacional através de comandos AT simples, entregando de volta os dados "limpos", recebidos através da linha. Os softmodems por outro lado são apenas uma interface entre o processador e a linha telefônica. Um software de controle que faz parte do driver fica encarregado de fazer todas as demais tarefas, usando o processador como burro de carga. Os softmodems começaram a se popularizar por volta de 1999, a partir do ponto em que os micros passaram a vir com processadores poderosos o suficiente para manter o modem funcionando sem que houvesse uma degradação muito grande no desempenho. A única vantagem dos softmodems é mesmo o fato de serem mais baratos.
Acessando via ADSL, cabo, rádio ou rede local
Os modems já foram a forma mais popular de acesso à Web, mas hoje em dia os serviços de banda larga têm uma relação custo-benefício bem melhor; pois você não gasta com telefone e, por ser ininterrupta, a conexão pode ser compartilhada entre vários micros dentro da rede local. O próprio Kurumin permite compartilhar a conexão muito fácil. O ícone "Configurar Rede Local, Ip Fixo, cabo ou modem roteador" chama o netcardconfig, que permite configurar a rede. Ele lhe dá a opção de configurar a rede automaticamente via DHCP ou especificar os endereços manualmente. Na verdade, o Kurumin já tenta configurar a rede automaticamente via DHCP durante o boot, em muitas redes você já vai sair navegando.
Se a sua rede não possui um servidor DHCP, a configuração manual fica assim: Endereço IP: Qualquer endereço dentro da faixa de endereços usada na sua rede, como em: 192.168.0.3. Servidor DNS: Os endereços dos servidores DNS do seu provedor, ou o DNS da rede local, como em: 200.177.250.10 . Gateway Padrão: O endereço do modem ou servidor que está compartilhando a conexão dentro da rede, como: 192.168.0.1. Nos serviços de acesso via cabo, o modem funciona como um bridge, conectando seu micro à rede do provedor. Para acessar, você precisa apenas obter o endereço IP via DHCP. Compre sempre um modem que se conecta diretamente à placa de rede, isso facilita muito a configuração. Os modems que são ligados à porta USB precisam de um driver adicional e nem todos os modelos são suportados no Linux.
Os serviços de acesso via rádio usam uma conexão wireless, geralmente uma placa 802.11b (Wi-Fi) com um servidor, antena e amplificador instalados no topo dos prédios e cabos de rede tradicionais até os apartamentos e casas próximas. Este servidor compartilha a conexão e os assinantes precisam apenas configurar a rede com os endereços fornecidos pelo provedor de acesso. Se você acessa via ADSL, existem duas possibilidades: As instalações antigas e os planos empresariais usam IP fixo ou configuração via DHCP, onde a conexão é configurada como se fosse uma conexão de rede local. Uma segunda forma de conectar desta forma é configurar o modem ADSL como roteador, onde o modem funciona como um servidor de conexão, efetuando a conexão e compartilhando com os micros da rede local. Você obtém a configuração via DHCP e pronto. Pesquise sobre a configuração do seu modem, a maioria oferece esta função. A configuração pode ser acessada através do navegador ou via telnet, de acordo com o modelo. Nas instalações atuais a conexão é autenticada via PPPoE, uma forma dos provedores exigirem autenticação, terem controle sobre a banda consumida e tempo de conexão. Neste caso use a opção: "Configurar ADSL/PPPoE". Esta opção chama o pppoeconf, o utilitário que permite ativar a conexão com a Web casa você utilize algum serviço de banda larga que exija autenticação. Naturalmente, o utilitário só funciona se a sua placa de rede tiver sido detectada durante o boot. Lembre-se de que você só precisa se autenticar ao manter o modem configurado como bridge. Configurando o modem como roteador o problema é resolvido.
Uma última possibilidade são as conexões via ISDN. O Kurumin suporta vários modems ISDN, através do isdn-config. A lista inclui também alguns modelos internos. Basta indicar o modelo do modem e fornecer os dados do provedor de acesso. O ISDN utiliza um tipo especial de modem, que estabelece uma conexão de 64k ou 128k usando uma linha telefônica comum. Porém, além da taxa mensal, você continua pagando pulsos (conectando a 128k você paga dois pulsos, como se estivesse usando duas linhas telefônicas simultaneamente) e a mensalidade do provedor. Embora o ISDN seja um pouco mais rápido e mais estável que o acesso via modem, ele nunca foi muito popular por causa do custo. Hoje em dia está caindo em desuso por causa da concorrência do ADSL, cabo, rádio e wireless. Se o "isdn-config" não estiver disponível na sua instalação, você pode instalá-lo via apt-get, usando o comando: # apt-get install isdn-config
Usando uma placa wireless
As placas Wireless também estão se tornando cada vez mais comuns. Existem várias placas suportadas no Linux, como por exemplo as Atheros e Orinoco, que são detectadas automaticamente durante o boot.
Para as placas que ainda não possuem drivers para Linux, existe o ndiswrapper, um utilitário que permite carregar o driver da placa para Windows. Ele não funciona com todas as placas, mas oferece bom resultados com a maioria. O Kurumin inclui um pequeno utilitário para configurar redes Wireless, que você encontra dentro do "Centro de Controle > Conectar na Internet ou Configurar a redes > Wireless > Configurar uma placa de rede Wireless". Aqui estão disponíveis as opções para configurar a rede e também para ativar placas ACX100 ou ACX111, ADM8211 e Realtek8180, que não são detectadas automaticamente. Lembre-se de que você pode identificar sua placa Wireless usando o comando "lspci".
O sinal de que a placa foi ativada é o led de comunicação aceso. A partir daí, falta configurar os parâmetros da rede para que seu micro possa finalmente se conectar a ela. Além da configuração com o IP, máscara, gateway, etc., uma rede wireless inclui mais alguns parâmetros definidos no ponto de acesso, que incluem o ESSID (o nome da rede), o canal (de 0 a 16) e a chave de encriptação, caso tenha sido ativado o WEP ou WPA, que são configurados ao clicar sobre o "Configurar os parâmetros da rede Wireless" ou chamar o "wlcardconfig" (como root) no terminal. Você pode ver uma lista das redes disponíveis na área clicando sobre o "Verificar pontos de acesso disponíveis" (que executa o comando "iwlist wlan0 scan") e monitorar a conexão e a qualidade do sinal usando o Kwifimanager. Uma vez conectado ao ponto de acesso, falta ainda configurar os endereços da rede, como em uma rede tradicional. Para isso, use a opção "Configurar rede local", ou chame o "netcardconfig" no terminal. Se a sua placa wireless não é suportada, ainda existe uma boa chance de colocá-la para funcionar usando o Ndiswrapper. Para isso, use a opção "Ativar placa de rede Wireless usando o Ndiswrapper". Para usar o Ndiswrapper, você deve fornecer o driver for Windows da placa. O Ndiswrapper usa uma camada de compatibilidade para que estes drivers possam se comunicar com o Kernel do Linux. O driver acha que está instalado no Windows e o Kernel acha que está conversando com uma placa compatível com o Linux. Os dois lados são enganados, mas no final a placa funciona, que é o que nos interessa. A cada versão do Ndiswrapper, mais placas são suportadas.
Dentro da pasta com os drivers da placa, você encontrará um arquivo .inf, o mesmo que você indicaria ao instalar a placa no Windows.
Você pode começar tentando usar o driver para Windows XP que veio no CD de instalação da placa. Se ele não funcionar, pesquise na lista de placas compatíveis com o Ndiswrapper disponível no: http://ndiswrapper.sourceforge.net/mediawiki/index.php/. Embora na maioria dos casos você possa usar diretamente o driver incluído no CD de instalação, algumas placas só funcionam com algumas versões específicas do driver. No site você encontra informações sobre o nível de compatibilidade da sua placa e links para baixar os drivers que foram testados com ela. O script do Kurumin se encarrega de fazer uma configuração básica, de uma forma simples e rápida. Se você quiser se aprofundar mais no funcionamento do Ndiswrapper, pode encontrar informações gerais sobre como configurá-lo manualmente a seguir, no capítulo sobre o Ubuntu, ou no: http://ndiswrapper.sourceforge.net/wiki/index.php/WirelessCardSetup.
Compartilhando a conexão e ativando o firewall
Dentro do Painel de Controle, na seção de configuração da rede, você encontra opções para compartilhar a conexão e configurar o firewall.
Para compartilhar a conexão, seu micro deve ter duas placas de rede, uma conectada à internet e outra conectada à rede local. Também é possível compartilhar uma conexão via modem ou wireless. Comece conectando-se à internet normalmente e em seguida configure a rede local, usando o "configurar rede". Verificar se o servidor consegue enxergar os outros micros da rede e vice-versa e só depois ative o compartilhamento.
O script mostra uma lista com as placas de rede instaladas e pergunta qual delas está conectada à internet e se oferece para instalar e configurar os servidores DHCP e DNS, que são opcionais. O DHCP permite que o servidor forneça a configuração da rede para os outros micros automaticamente e o DNS permite que o próprio servidor seja o DNS da rede, dispensando o DNS do provedor.
Ao compartilhar a conexão, o servidor passa a ser o gateway da rede. Ao configurar os clientes, use endereços dentro da mesma faixa do servidor (como em: 192.168.0.2) e use o IP do servidor como gateway. No quesito firewall, você tem duas opções, usar o Kurumin Firewall, um script que faz algumas perguntas e em seguida gera um script com as regras para o IPtables, que passa a ser carregado automaticamente na hora do boot, ou usar o Firestarter, um configurador gráfico, estilo Zone Alarm, que monitora as conexões e permite que você abra ou redirecione portas conforme necessário. A diferença básica entre os dois é que as regras geradas pelo Kurumin Firewall são estáticas, ou seja, o firewall é configurado uma vez e fica ativo fazendo o que mandou sem fazer perguntas. O Firestarter por sua vez fica residente ao lado do relógio e lhe permite ver as tentativas de conexão ao seu micro e ir alterando a configuração conforme necessário. Veremos mais dicas sobre o Firestarter no capítulo sobre o Ubuntu.
Acessando celulares e palmtops via bluetooth
O Bluetooth é um padrão aberto de comunicação sem fios, desenvolvido pelo SIG (Bluetooth Special Interest Group) que inclui diversas empresas, entre elas a Sony, IBM, Intel, Toshiba e Nokia. Ao contrário do padrão Wi-Fi, que inclui os padrões 802.11.b, 802.11a e 802.11g, usados nas redes sem fio, o Bluetooth tem como principal objetivo substituir os cabos, permitindo que celulares, palmtops, mouses, headsets, entre outros troquem dados entre sí e com o PC, sem precisar de cabos. Uma rede Bluetooth é chamada de "piconet" e é composta por um dispositivo "master" e até 8 "slaves", que se conectam a ele. Existem duas classe de dispositivos Bluetooth. Os dispositivos "classe 2" (que são os usados em quase todos os celulares e aparelhos portáteis) trabalham com um transmissor de apenas 2.5 mW e por isso possuem um alcance de apenas 10 metros (em campo aberto). Na hora de comprar um adaptador Bluetooth para o PC, você tem a opção de também comprar um transmissor tipo 2 (que são os mais compactos e baratos), ou comprar um adaptador com um transmissor classe 1, que possuem um alcance teórico de 100 metros (bem menos na prática, já que você nunca está num ambiente livre de obstáculos). Atualmente, cada vez mais notebooks já vem com transmissores Bluetooth de fábrica, dispensando o adaptador.
A velocidade de transmissão no Bluetooth é de apenas 1 megabit (721 kbits reais), o que inviabiliza a transmissão de grandes arquivos. Isso faz com que, na prática, o uso mais comum para o Bluetooth seja transferir fotos, pequenos arquivos e (com um pouco de paciência) músicas em MP3 entre o PC e o celular ou palmtop. Fazer isso no Linux já foi uma tarefa ingrata (mesmo no Windows, só existe um suporte maduro a partir do XP SP2), mas atualmente as coisas estão bem mais simples :). O primeiro passo é instalar os pacotes necessários. Tudo começa com o "bluez-utils", que faz o trabalho pesado. Ele é complementado pelo pacote "bluez-libs", que em muitos casos é integrado ao pacote principal. Em seguida temos os pacotes "kdebluetooth" e "kmobiletools", que compõem a interface de acesso. O primeiro passo é instalar os pacotes. No Kurumin e no Ubuntu você pode instalar diretamente via aptget: # apt-get install bluez-utils kmobiletools kdebluetooth dbus (em outras distribuições, você pode precisar instalar também os pacotes "bluez-libs" e "bluetooth") Serão criados ícones no "Iniciar > Internet":
Reinicie os serviços para ter certeza de que realmente estão carregados: # /etc/init.d/dbus restart # /etc/init.d/bluetooth restart Depois de instalar tudo, verifique se seu adaptador Bluetooth foi detectado corretamente, usando o comando: # hciconfig Se ele responder algo similar a:
hci0: Type: USB BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0 DOWN RX bytes:0 acl:0 sco:0 events:0 errors:0 TX bytes:0 acl:0 sco:0 commands:0 errors:0 ... significa que o adaptador foi detectado, mas está desativado. Neste caso, rode o comando que ativa o transmissor: # hciconfig hci0 up Rode de novo o hciconfig e ele deve retornar algo como: hci0: Type: USB BD Address: 00:11:67:32:95:23 ACL MTU: 678:8 SCO MTU: 48:10 UP RUNNING PSCAN ISCAN RX bytes:77 acl:0 sco:0 events:9 errors:0 TX bytes:34 acl:0 sco:0 commands:9 errors:0 Aproveite para adicionar o comando no final do arquivo "/etc/init.d/bootmisc.sh" ou "/etc/rc.d/rc.local", para que o transmissor seja ativado automaticamente durante o boot. Aqui vai um pequeno truque. Ao invés de abrir o arquivo e adicionar a linha manualmente, você pode usar o comando abaixo (como root) para fazer o trabalho automaticamente. Ele simplesmente cria uma nova linha no final do arquivo, contendo o que colocamos entre aspas: # echo "hciconfig hci0 up" >> /etc/init.d/bootmisc.sh Rode agora o comando "hcitool scan". Ele deverá mostrar o ID do seu celular. Em caso de problemas neste ponto, verifique se o transmissor do celular está realmente ativado (acontece nas melhores famílias ;). $ hcitool scan Scanning ... 00:07:E0:18:9A:02 treo Agora vem a parte potencialmente mais problemática é que é fazer o "pairing", ou seja, fazer a conexão inicial entre o PC e o celular, de forma que ele aceite as conexões. No caso do meu Treo, clico na opção "Trusted Devices" dentro da configuração do Bluetooth e escolho o meu desktop na lista. Ele solicita a passkey e em seguida a conexão é estabelecida:
A passkey é um código de segurança, que você precisa fornecer na hora de conectar seu celular, ou qualquer outro dispositivo ao seu PC. Por default, a passkey será "1234", ou "BlueZ", de acordo com a versão instalada e o nome será "BlueZ" ou o nome do micro, definido na configuração da rede. Depois de conectar seu celular, é interessante mudar esta configuração, sobretudo a passkey. Para isso, edite o arquivo "/etc/bluetooth/hcid.conf". As opções importantes aqui são as linhas "passkey" (também chamada de pin) e "name" (determina o nome com o qual seu PC aparecerá na piconet). As demais já vêm configuradas por padrão, permitindo a conexão de qualquer dispositivo. Altere-as adicionando sua configuração, como em: passkey "minhasenhasecreta"; name "MeuPC"; Reinicie (novamente) os serviços, para que a nova configuração entre em vigor. O fato de alterar a configuração, não desativa o pairing já feito com seu celular, apenas impede que outros aparelhos se conectem ao seu PC utilizando a senha default (o que seria um problema de segurança). # /etc/init.d/dbus restart # /etc/init.d/bluetooth restart Depois de fazer o pairing, abra o Kbluetoothd, usando o ícone no menu. Ele ficará residente na forma de um ícone ao lado do relógio. Ao clicar sobre ele, você abre uma lista com os aparelhos disponíveis e os recursos suportados por cada um. Muitos celulares suportam o "Obex File Transfer", que permite transferir arquivos (incluindo músicas em MP3) diretamente para o cartão de memória.
Ao ser aberto pela primeira vez, o Kbluetoothd sugere que você use o "kbluepin" como verificador do código PIN, ao invés da configuração manual que usamos até aqui. Ele é um pequeno programa que abre uma janela no PC sempre que o celular tenta se conectar, perguntando qual PIN será usado. Na verdade, é uma perfumaria, que você pode usar ou não. Se preferir mudar, edite novamente o arquivo "/etc/bluetooth/hcid.conf" e substitua a linha: passkey "minhasenhasecreta"; Por: pin_helper /usr/lib/kdebluetooth/kbluepin;
Para os casos em que o celular não usa um cartão de memória, ou não suporta a transferência direta de arquivos, abra o Kbtobexclient (também disponível no iniciar), que permite transferir arquivos para a memória do aparelho usando o protocolo padrão. Para transferir, selecione o seu celular na lista da esquerda e arraste o arquivo a ser transferido para o campo "file to send". Clique no "Send" e a transferência é iniciada:
É mostrada uma tela no celular perguntando o que fazer com o arquivo. Os formatos de arquivos suportados variam muito de acordo com o celular, mas a maioria suporta imagens em jpg. Você pode começar transferindo uma imagem pequena para testar.
É possível também transferir arquivos do celular para o PC. No meu Treo 650, por exemplo, posso transferir desde imagens e músicas, até anotações feitas no MemoPad, que são recebidas como arquivos de texto. Na maioria dos celulares, você pode transferir fotos e vídeos gerados com a câmera. Para isso, selecione a opção de envio no celular e mantenha o Kbluetoothd aberto no PC. Será mostrada uma janela de confirmação:
Mude a opção "Future policy for this device and service" para "allow" se quiser que as próximas transferências sejam aceitas automaticamente, sem que seja aberta a tela de conformação. Depois é só decidir onde salvar o arquivo :).
Completando o time, temos o Kmobiletools, que permite acessar a agenda do celular, discar e atender chamadas através do PC, ler e enviar mensagens SMS, entre outros recursos. Ele pode ser usado para acessar o celular tanto através de um cabo USB, quanto via Bluetooth. A configuração para acessar via cabo é mais simples: dentro das configurações, indique a porta "/dev/ttyACM0" e deixe que ele detecte o celular. Como o Kmobiletools ainda está em fase de rápido desenvolvimento, aparelhos que não são suportados, ou operam com recursos limitados numa versão, podem passar a ser bem suportados na seguinte e também existem casos de regressões, ou seja, aparelhos que deixam de funcionar numa versão e voltam na seguinte. Segundo os desenvolvedores, os celulares melhor suportados são os Motorola e SonyEricsson, enquanto os piores no estágio atual são os Nokia.
Para acessar o celular via Bluetooth, existem alguns passos adicionais. Comece usando o comando "hcitool scan" para descobrir o endereço do seu aparelho: $ hcitool scan Scanning ... 00:07:E0:18:9A:02 treo Precisamos agora editar o arquivo "/etc/bluetooth/rfcomm.conf", onde associaremos o celular a uma porta serial, permitindo que ele seja acessado pelo Kmobiletools. Edite o arquivo, deixando-o como este exemplo. Note que você deve mudar o endereço e o nome do aparelho, deixando-os igual ao informado pelo "hcitool scan": rfcomm0 { bind yes; device 00:07:E0:18:9A:02; channel 1; comment "treo"; } Depois de salvar, reinicie os serviços: # /etc/init.d/dbus restart # /etc/init.d/bluetooth restart Terminado, configure o Kmobiletools para acessar o celular através da porta "/dev/rfcomm0", que foi criada no passo anterior. A partir daí, o celular passa a ser acessado da mesma forma que seria através do
cabo USB. Note que antes de fazer tudo isso, você deve ter feito os passos anteriores, ou seja, instalar o BlueZ, fazer o pairing entre o PC e o Celular e testar a conectividade.
Solucionando problemas
Caso você não consiga criar a associação a partir do celular, também é possível fazê-lo a partir do PC. Neste caso, use os comandos abaixo. Isso abrirá um diálogo no celular, pedindo para inserir a passkey do desktop. Note que novamente é preciso especificar o ID do celular, que você descobre usando o comando "hcitool scan": # hcitool cc 00:07:E0:18:9A:02 # hcitool auth 00:07:E0:18:9A:02 Assim como qualquer software, o BlueZ teve seus altos e baixos ao longo de sua história. Uma das versões mais problemáticas foi a 3.1, com problemas relacionados à definição do PIN e comportamento errático em muitas situações. Infelizmente, o 3.1 foi uma versão muito usada. Ele é a versão usada por padrão no Ubuntu Dapper (e nos primeiros betas do Edgy), no Debian Etch e em várias outras distribuições. Ou seja, a possibilidade de você estar utilizando-a é bastante grande. Se você está encontrando problemas estranhos, vale à pena atualizar o pacote bluez-utils para a versão mais recente. Comece verificando se não existe uma atualização disponível via apt-get: # apt-get update # apt-get bluez-utils Como último recurso, você pode experimentar instalar a versão mais atual a partir do código fonte, disponível no http://www.bluez.org/download.html. A instalação em sí é mecânica. O maior problema é que você precisa ter instalado um conjunto de bibliotecas e compiladores, para que instalação seja bem sucedida. Comece instalando o pacote "bluezutils", disponível no site. No meu caso, baixei o arquivo "bluez-utils-3.5.tar.gz".
O primeiro passo é instalar os compiladores e bibliotecas. Numa versão recente do Kurumin ou Ubuntu, você pode instalar os pacotes necessários usando o apt-get: # apt-get install build-essential libbluetooth2-dev libdbus-1-dev Em seguida, chegamos à instalação, que é feita em três passos: 1- Descompacte o arquivo (você pode fazê-lo através do Konqueror, mas já que estamos com o terminal aberto... ;) $ tar -zxvf bluez-utils-3.5.tar.gz 2- Acesse a pasta que será criada e execute o comando "./configure". Se houver mais alguma instalação pendente, ele mostra um erro, informando o nome do compilador ou biblioteca que está faltando. $ cd bluez-utils-3.5/ $ ./configure 3- Concluindo, rode os comandos "make" e "make install", que compilam e instalam o programa. Você pode rodar o comando "make" usando seu login de usuário, mas o "make install" precisa ser executado como root. No Ubuntu e no Kurumin você pode fazê-lo usando o sudo. Em outras distribuições, use o "su" para virar root: $ make $ sudo make install (ou su <senha>, make install) Depois de terminar, faça o mesmo com o pacote "bluez-libs", disponível na mesma página. Para evitar problemas, sempre que precisar reinstalar estes pacotes, apague manualmente o conteúdo do diretório "/var/lib/bluetooth", onde são armazenadas as chaves de encriptação dos dispositivos que já efetuaram conexões. Limpando a pasta, você pode começar de novo, definindo o PIN e fazendo o pairing com o celular: # rm -rf /var/lib/bluetooth/* Acessando partições do Windows
Ao usar o Kurumin, as partições existentes no HD são detectadas durante o boot, não importa qual seja o sistema de arquivos em que estejam formatadas. São criadas entradas no arquivo "/etc/fstab" (que orientam o sistema a usar as partições) e ícones dentro do "Meu Computador", que permitem acessar as partições com facilidade. Clicando sobre os ícones, você monta a partição correspondente.
Até aqui você está acessando a partição em modo somente-leitura, sem riscos de danificar qualquer arquivo. Se você quiser ativar a escrita, clique com o botão direito sobre o ícone da partição e ative a opção "Ações > Mudar para modo de leitura e escrita ou voltar para somente leitura".
Outra opção é clicar sobre o ícone "Montar as partições em leitura e escrita", que muda as propriedades de todos os ícones, fazendo com que as partições passem a ser montadas em modo leitura e escrita por padrão. Mesmo depois de instalado, o sistema continua se comportando da mesma forma, montando as partições apenas quando você clica sobre os ícones. Para fazer com que as outras partições sejam montadas automaticamente durante o boot depois de instalar o Kurumin no HD, edite o arquivo "/etc/fstab" (como root) e retire o parâmetro "noauto" da linha referente à partição. Se você tem o Windows instalado na partição "/dev/hda1", por exemplo, você encontraria uma linha como: /dev/hda1 /mnt/hda1 vfat noauto,users,exec 0 0 O "/dev/hda1" indica a partição, o "/mnt/hda1" é a pasta onde ela será montada, o "vfat" indica o sistema de arquivos (no exemplo temos uma partição FAT32) e o restante da linha indica as opções de montagem. O "noauto" faz com que a partição não seja montada durante o boot, ficando acessível apenas ao clicar sobre o ícone ou montar manualmente. Removendo a opção, a linha fica: /dev/hda1 /mnt/hda1 vfat users,exec 0 0 Você pode ainda montar as partições manualmente usando o comando mount, como em:
# mount /dev/hda1 /mnt/hda1 Isso faz com que a partição "/dev/hda1" fique acessível na pasta "/mnt/hda1". Embora a tradição seja montar as partições dentro da pasta /mnt, isto não é uma regra: você pode montar a partição em qualquer pasta vazia. No caso das partições do Windows, é necessário usar um parâmetro adicional, o "-o umask=000", caso contrário, a partição ficará disponível apenas ao abrir o gerenciador de arquivos como root: # mount -o umask=000 /dev/hda1 /mnt/hda1 A possibilidade de acessar as partições do HD permite que você use o Kurumin também como um sistema de emergência, para quanto o Windows ou outra distribuição Linux instalada no HD derem qualquer problema. Você pode dar um boot com o CD do Kurumin, acessar as partições, salvar os arquivos em algum lugar (gravar um CD, salvar num outro micro da rede, copiar para um segundo HD, etc.) e assim poder reinstalar o sistema sem riscos. O Linux suporta praticamente todos os sistemas de arquivos existentes. Você conseguirá acessar os arquivos do HD mesmo que tenha instalado o BeOS, Solaris ou outro sistema pouco usado. A única exceção importante fica por conta do sistema NTFS usado pelo Windows 2000, XP e Vista. O suporte a escrita em partições NTFS sempre foi um problema no Linux. Por ser um sistema de arquivos proprietário, não documentado e bastante complexo, desenvolver um driver capaz de escrever em partições Windows formatadas em NTFS, sem risco de corromper os dados gravados, é um desafio formidável. Isto era um grande problema para quem mantinha o Windows em dual-boot, pois era possível apenas ler os arquivos da partição. Como o Windows também não suporta nenhum dos sistemas de arquivos usados no Linux, você acabava sendo obrigado a instalar o Windows em uma partição FAT32 (o que tem suas desvantagens, já que ele é um sistema muito mais propenso a problemas), ou pelo menos manter uma partição FAT32 disponível, para servir como uma "área de troca" entre os dois sistemas. Até hoje, o driver que havia chegado mais perto era o Paragon, um software comercial, caro e que ainda por cima tinha a desvantagem de ser bastante lento. Num distante segundo lugar, tínhamos o Captive, que modificava partições NTFS usando o próprio driver do Windows, executado sobre uma camada de emulação. Apesar de ser aberto, o Captive era complicado de instalar, ainda mais lento que o Paragon e ainda por cima pouco estável, corrompendo com freqüência os dados da partição. Mas, felizmente tudo isso é coisa do passado. O NTFS-3g pode ser considerável o primeiro driver de escrita em partições NTFS for Linux que é realmente utilizável, finalmente oferecendo uma solução simples para o antigo problema. Ao invés de ser um driver complexo, incluído no Kernel, o NTFS-3g roda através do Fuse, um módulo que permite criar drivers para sistemas de arquivo que rodam como programas comuns. Outro bom exemplo de driver que roda sobre o Fuse é o GmailFS (http://richard.jones.name/google-hacks/gmailfilesystem/gmail-filesystem.html), que permite "montar" sua conta do Gmail, acessando-a como se fosse um HD externo e usando o espaço para fazer backup e guardar arquivos. Graças ao Fuse, você não precisa se preocupar com headers e patches do Kernel, como ao instalar outros drivers, o que simplifica muito a instalação. Depois desta ladainha toda, você deve estar achando que usar o NTFS-3g deve ser muito complicado, mas na verdade usá-lo é muito simples. O Kurumin inclui o suporte ao ntfs-3g a partir dos primeiros betas da versão 7.0. Ao clicar sobre o ícone "Montar as partições em leitura e escrita", dentro do "Meu Computador", o script detecta que uma partição NTFS está disponível e pergunta se você deseja usar o NTFS-3g para acessá-la em modo leitura e escrita:
Como diz o aviso, nunca é possível ter 100% de certeza de que acessar a partição usando um driver "não oficial" não vai causar problemas (você pode perder arquivos até mesmo usando o próprio Windows, por panes diversas no sistema), mas, embora o ntfs-3g ainda seja considerado um software em estágio beta, problemas de corrupção de dados são bastante raros. Forcei uma série de situações potencialmente perigosas durante os testes, movendo pastas com mais de 1000 arquivos e subpastas, interrompendo operações no meio e até desligando o micro no botão durante uma cópia, sem conseguir causar problemas sérios na partição. Dentro da minha experiência, o máximo que poderia acontecer em casos mais extremos seria você precisar passar um scandisk através do próprio Windows para corrigir algum eventual problema na estrutura do sistema de arquivos. De qualquer forma, lembre-se sempre do velho ditado: "Só Jesus salva, o homem faz backup". :) Outra coisa que chama a atenção é o desempenho. O ntfs-3g obtém taxas de transferência absurdamente maiores que o Captive e o Paragon, se aproximando do desempenho que seria oferecido por um sistema de arquivos "nativo". No Captive, dificilmente obtinha mais do que irrisórios 300 kb/s de taxa de transferência, enquanto o ntfs3g consegue manter entre 5 e 11 MB/s (oscilando de acordo com o tamanho dos arquivos copiados):
No Kurumin é muito simples usar o NTFS-3g por que ele já vem pré instalado no sistema e o script de detecção automatiza seu uso. Mas, por ainda ser considerado um driver experimental, ele não é incluído
por padrão em muitas distribuições. Vamos então ao caminho das pedras de como instalá-lo manualmente em outras distribuições e também em versões anteriores do Kurumin. O primeiro passo é carregar o módulo do Fuse (um driver do Kernel), usando o modprobe. Ele está disponível em qualquer distribuição minimamente atual: # modprobe fuse Use o comando abaixo para adicioná-lo no arquivo "/etc/modules" (como root), de forma a garantir que ele vai ser carregado durante o boot: # echo "fuse" >> /etc/modules A partir daí, você precisa instalar os pacote "libfuse" (ou "libfuse2") e "fuse-utils", necessários para que o ntfs-3g funcione. Se você usa uma distribuição baseada no Debian Etch (incluindo o Kurumin 6.0 e 6.1), ou o Ubuntu 6.6, pode instalar diretamente via apt-get: # apt-get install libfuse2 fuse-utils Em outras distribuições, procure pelos pacotes "libfuse" e "fuse-utils, responsáveis pela instalação do Fuse. Por ser um lançamento recente, o ntfs-3g não está disponível em muitas distribuições. Nestes casos, você pode instalá-lo através do código fonte, disponível no: http://mlf.linux.rulez.org/mlf/ezaz/ntfs-3g-download.html O pacote é relativamente simples de compilar. Com o Fuse e os compiladores básicos instalados, basta descompactar o arquivo e rodar os tradicionais "./configure", "make" e "make install", este último como root. Enquanto escrevo, o ntfs-3g não está disponível nos repositórios do Debian, nem do Ubuntu, mas é possível instalá-lo (sem precisar recorrer ao código fonte) através do repositório do Kanotix, que inclui pacotes compilados para o Debian Sid. Para usá-lo, adicione a linha abaixo no final do arquivo "/etc/apt/source.list" e rode o comando "apt-get update": deb http://kanotix.com/files/debian sid main contrib non-free Instale agora o pacote "ntfs-3g" via apt-get. Preste atenção neste passo (sobretudo se estiver instalando sobre o Ubuntu). Caso o apt-get solicite a remoção de outros pacotes, ou proponha baixar um grande número de dependências, aborte a operação (pressionando Ctrl+C) e pesquise no google sobre a disponibilidade de versões atualizadas dos pacotes.
Com os pacotes instalados, falta só montar a partição do Windows, usando o comando "ntfs-3g". Se o Windows está instalado no driver C:, visto pelo sistema como "/dev/hda1" e você deseja acessar os arquivos através da pasta "/mnt/hda1", o comando seria: # ntfs-3g /dev/hda1 /mnt/hda1 (o "/mnt/hda1" pode ser substituído por qualquer outra pasta de sua preferência) Por padrão, o comando monta a partição com permissão de acesso apenas para o root, o que leva ao problema clássico de você só conseguir acessar ao abrir o gerenciador de arquivos como root. Para corrigir o problema, dando permissão de acesso para todos os usuários, adicione a opção "-o umask=0" ao rodar o comando: # ntfs-3g -o umask=0 /dev/hda1 /mnt/hda1 Agora você consegue acessar e escrever na partição usando seu login de usuário. Porém, ao copiar arquivos para dentro da partição você recebe uma mensagem chata (para cada arquivo copiado) dizendo que não é possível modificar as permissões do arquivo. Isso é perfeitamente normal, já que o NTFS não
suporta as permissões de acesso do Linux, mas é extremamente chato se você precisa copiar um grande número de arquivos. Para desativar as mensagens, adicione a opção "silent", como em: # ntfs-3g -o umask=0,silent /dev/hda1 /mnt/hda1 Um último problema, apontado Pelo Cláudio Loureiro é a falta de suporte a caracteres acentuados, que faz com que arquivos e pastas contendo cedilhas e acentos fiquem ocultos. Felizmente, isso é facilmente contornável. Rode o comando "locale -a" no terminal para verificar qual é a linguagem e conjunto de caracteres usado na sua instalação. Normalmente, ao instalar o sistema em Português do Brasil, será usado o "pt_BR.iso88591". Adicione o parâmetro "locale=pt_BR.iso88591" no comando, para que o ntfs3g use a linguagem e o conjunto de caracteres corretos. A partir daí, os arquivos acentuados passam a aparecer normalmente: # ntfs-3g -o umask=0,silent,locale=pt_BR.iso88591 /dev/hda1 /mnt/hda1 Segundo o Szakacsits Szabolcs, desenvolvedor do ntfs-3g, as próximas versões serão capazes de detectar isso automaticamente, de forma que este parâmetro pode não ser mais necessário no momento em que estiver lendo esta dica. Concluindo, caso você queira que a partição do Windows seja montada automaticamente durante o boot, existe a opção de adicionar o ponto de montagem no arquivo "/etc/fstab", que é lido durante o boot. Abra o arquivo (como root) e adicione a linha: /dev/hda1 /mnt/hda1 ntfs-3g silent,locale=pt_BR.iso88591,umask=0 0 0 Note que a ordem dos parâmetros mudou, mas os argumentos usados continuam os mesmos. É importante notar que você deve tomar cuidado ao editar o fstab, pois ele é um arquivo essencial para o carregamento do sistema. Revise a alteração antes de reiniciar o micro e deixe sempre uma linha em branco no final do arquivo, caso contrário vai receber uma mensagem de erro chata durante o boot ;). Ao adicionar esta linha no fstab, você não precisa mais se preocupar com o acesso à partição, pois ela passará a ser automaticamente montada durante o boot. Outra opção ao adicionar o ntfs-3g no /etc/fstab é usar a opção "noauto", que faz com que a partição não seja montada automaticamente durante o boot. Isso seria mais recomendável do ponto de vista da segurança, pois a partição seria montada apenas quando fosse realmente acessar, evitando danos acidentais. Para acessar a partição, você usaria o comando "mount /dev/hda1" (onde o "hda1" é a partição). No KDE você pode criar ícones para acesso às partições clicando com o botão direto sobre o desktop e acionando a opção "Criar novo > Link para Dispositivo".
Ao adicionar o "noauto", a linha no fstab ficaria: /dev/hda1 /mnt/hda1 ntfs-3g noauto,silent,locale=pt_BR.iso88591,umask=0 0 0 Graças ao NTFS-3g, mais uma grave deficiência do sistema foi corrigida. Agora é só questão de tempo para que as principais distribuições passem a oferecer suporte de gravação em partições NTFS por padrão, facilitando a vida de quem mantém o Windows em dual boot, ou trabalha com manutenção.
Imagine a praticidade de dar boot através de um live-CD, montar a partição do Windows e usar o ClamAV para remover os vírus ;).
Acesso a redes Windows
Mesmo no Linux, você pode acessar compartilhamentos de rede nas máquinas Windows da rede e criar novos compartilhamentos usando o Samba. Ele é dividido em dois módulos: o cliente, usado para acessar os compartilhamentos, e o servidor, usado para compartilhar arquivos com as outras máquinas da rede. O cliente Samba pode ser encontrado pré-instalado na maioria das distribuições (incluindo o Kurumin). Nas demais, ele pode ser instalado através do pacote "smbclient" ou "samba-client". O servidor por outro lado tem uma configuração mais complicada e em geral não é instalado por padrão, para evitar qualquer possibilidade de problemas de segurança. O smbclient é uma espécie de biblioteca, que pode ser usada por outros programas. Existem diversos clientes Samba, escritos nas mais variadas linguagens, mas o funcionamento de todos é muito similar. O próprio Konqueror pode ser usado para acessar os compartilhamentos. Para isso, use o endereço "smb://ip_do_servidor", como em: smb://172.20.0.2. Ao acessar um compartilhamento no Windows XP e 2000 você precisa fornecer uma conta e senha de usuário para acessar. Será aberta uma janela pedindo o login e senha do servidor. Opcionalmente, você pode especificar o login de acesso diretamente no endereço, como em "smb://[email protected]".
Uma particularidade do Konqueror é que ele não monta os compartilhamentos acessados, ele simplesmente os acessa como se estivesse mostrando uma página web ou ftp. Você transfere arquivos simplesmente arrastando, mas, ao clicar sobre um arquivo, ele pergunta se você quer salvá-lo no HD, ao invés de abri-lo diretamente. Ou seja, para alterar um arquivo você precisa primeiro copiá-lo para uma pasta do HD, editá-lo e em seguida copiá-lo de volta para o servidor. Devido a isso, o Konqueror serve mais como uma solução rápida para transferir arquivos. Se você quer uma solução mais completa, a melhor opção é o Smb4K, também encontrado em diversas distribuições. No Kurumin você encontra o ícone para ele no "Iniciar > Redes e Acesso remoto > Redes Windows". Ele usa uma interface bastante simples. O frame do lado esquerdo mostra os grupos, micros e compartilhamentos disponíveis. Ao clicar sobre um dos compartilhamentos, ele é montado numa pasta dentro do seu diretório home, de forma que você possa abrir e modificar os arquivos (e não apenas copiar, como no Konqueror).
Os compartilhamentos montados são mostrados no frame do lado direito. Clicando sobre eles, é aberta uma janela do gerenciador de arquivos, exibindo os arquivos. Na parte inferior da tela, você encontra um conjunto de abas que mostram as propriedades do compartilhamento.
Novamente, temos a questão da autenticação. Por padrão, o Smb4K tenta usar o mesmo login e senha que você usou para fazer login no seu micro. Se a máquina Windows tiver este mesmo login cadastrado, você acessa diretamente, caso contrário é mostrada uma janela pedindo login e senha. Se você usa senhas diferentes para acessar diferentes micros da rede, clique com o botão direito sobre o compartilhamento ou o micro e use a opção "Autenticação". Isso permite definir e salvar um login e senha distintos para cada um, sem precisar digitar de novo a cada acesso.
Numa redes Windows, os clientes se comunicam através de pacotes de broadcast (pacotes enviados simultaneamente para todos os micros da rede), que são usados para descobrir quais micros e servidores estão ativos e quais compartilhamentos cada um está disponibilizando. Para agilizar a tarefa, existe o "master browser", um cargo assumido automaticamente por um dos micros, que passa a escanear a rede e gerar uma lista dos compartilhamentos ativos, que é enviada aos demais micros da rede. Quando o master browser está disponível, os clientes Windows pegam a lista dos compartilhamentos com ele, caso contrário usam os pacotes de broadcast. Se você tiver um servidor Samba ou um servidor Windows NT/2000/2003 disponível na rede, ele assumirá automaticamente o papel de master browser. Você pode então configurar o Smb4K para pegar a lista dos compartilhamentos diretamente com ele, ao invés de usar o processo tradicional. Para isso, acesse o "Configurações > Configurar Smb4K > Rede > Lista de Navegação" e indique o IP do servidor na opção "Consultar um master browser para obter a lista de navegação".
Caso tenha problemas para ver a lista dos compartilhamentos, experimente a opção "Usar smbclient" ao invés da "Usar nmblookup" dentro da seção "Busca na rede". Sempre que é aberto, o Smb4K fica residente na forma de um ícone ao lado do relógio. Se quiser que ele seja aberto automaticamente junto com o KDE, arraste o ícone para ele que está no iniciar para dentro da pasta "/home/$USER/.kde/Autostart/". Todos os ícones colocados dentro desta pasta são iniciados automaticamente durante a abertura do KDE. Você pode digitar o endereço assim mesmo no Konqueror. O "$USER" é uma variável de sistema que é substituída automaticamente pelo login de usuário que você está usando. Para simplificar ainda mais as coisas, você pode configurá-lo (o Smb4K) para lembrar os compartilhamentos acessados e montá-los automaticamente ao ser aberto. Para isso, acesse novamente o menu de configuração e marque a opção "Remount recently used shares on program start".
Uma terceira opção de cliente é o LinNeighborhood. Ele é um programa bem mais antigo e menos amigável que o Smb4K, mas ainda assim usado como programa cliente padrão em muitas distribuições. Já que estamos com a mão na massa, não custa aprender a trabalhar com ele também. Ele não vem pré-instalado nas versões recentes do Kurumin, mas você pode instalá-lo via apt-get: # apt-get install linneighborhood O comando para chamá-lo via terminal é novamente "linneighborhood".
Se ao abrir ele não mostrar a lista dos compartilhamentos da rede, clique em "editar > outros browsers mestre" e adicione o endereço de algumas das outras máquinas da rede. Se os compartilhamentos estiverem disponíveis com controle de acesso por usuário (o que é o default no Windows NT/2000/XP), os compartilhamentos não aparecerão imediatamente, clique com o botão direito sobre o grupo e acesse a opção "scan group as user". Assim como no Smb4K, você pode utilizar um login diferente em cada host ou em cada compartilhamento se necessário.
Depois de devidamente identificado, você será capaz de ver os compartilhamentos disponíveis na rede. Toda a configuração do linneighborhood é feita com o seu próprio login de usuário, não há necessidade de usar o root.
Para que os compartilhamentos fiquem acessíveis, falta apenas montá-los. Clique sobre um compartilhamento e selecione a opção "mount". A opção "Mount point" determina em qual pasta os arquivos ficarão disponíveis (ele usa por padrão uma pasta dentro do seu home) e as opções "SMB User" e "SMB Password" especificam o login e senha que serão usados para montar o compartilhamento.
A opção "Run File Manager after Mounting" faz com que ele abra uma janela do gerenciador de arquivos depois de montar, assim como faz o Smb4K. Para que esta última opção funcione, é preciso configurar qual gerenciador de arquivos será usado nas preferências. Para que os compartilhamentos sejam montados automaticamente, clique em "Edit > Preferences" na tela principal do linneighborhood para acessar o menu de configuração e, na aba "Miscellaneous", marque a opção "Memorize Mounted Shares / Remount on Next Startup".
Na aba "Scan" você pode editar mais algumas opções caso necessário. Você pode, por exemplo, indicar manualmente o IP ou nome do servidor com a função de master browser, o que agiliza um pouco a navegação na rede. Se você estiver tendo problemas para visualizar os compartilhamentos da rede, coloque o endereço do servidor de arquivos da rede (Samba ou Windows, tanto faz) neste campo e provavelmente o problema será resolvido.
Criando compartilhamentos
Ao contrário do cliente, que é relativamente simples de usar, o servidor Samba é um software bem mais complexo, destinado não apenas a oferecer todos os recursos dos servidores de arquivos Windows, mas a superá-los em vários aspectos, incluindo opções pouco comuns, melhor segurança e desempenho. Isso faz com que a configuração do Samba não seja nenhum exemplo de simplicidade, com vários macetes e opções pouco conhecidas. É por isso que existem tantos livros dedicados a ele ;). Mas, para não perdermos o fio da meada, vou me limitar a ensinar como criar uma configuração básica, suficiente para compartilhar arquivos com a rede local, sem muita segurança. Abordo a configuração do Samba com mais detalhes no livro Redes e servidores Linux. O primeiro passo é instalar o servidor Samba propriamente dito. No Kurumin e em outras distribuições derivadas do Debian, basta instalar o pacote "samba" através do apt-get. Em outras distribuições, o pacote pode ser chamar "samba-server". # apt-get install samba O Samba é originalmente configurado através do arquivo "/etc/samba/smb.conf". O configurador mais "tradicional" é o swat, mas o KDE oferece um utilitário muito mais simples, incluído no "Centro de Controle > Internet e Rede > Configuração do Samba". Se a opção não estiver disponível, verifique se o pacote "kdenetwork-filesharing" (ou apenas "kdenetwork", em outras distribuições) está instalado. Clique no "Modo Administrador" e forneça a senha de root. Isto é necessário, pois ele precisa das credenciais para fazer as alterações necessárias no sistema. Na aba "Configuração Base", defina o grupo de trabalho usado na rede e o nome do seu micro na rede (Nome NetBIOS). Você pode também editar a descrição do servidor, que será visto pelos clientes como parte do nome.
A configuração mais importante vai na opção "Nível de Segurança", que determina a forma como o Samba controlará o acesso aos compartilhamentos. Se você quer apenas criar alguns compartilhamentos públicos, para permitir que outros micros da rede acessem alguns arquivos, sem se preocupar com permissões e logins de acesso, use a opção "Compartilhamento" (Share), que simplesmente permite que todos os micros da rede local acessem os compartilhamentos, como se estivesse usando uma máquina com o Windows 98. Se quiser mais segurança, use a opção "Usuário" (user), que utiliza um nível de segurança similar ao do Windows 2000 e XP, onde apenas usuários autorizados podem acessar os compartilhamentos. Neste caso, você vai ter o trabalho de cadastrar todos os logins e senhas que serão usados para acessar os compartilhamentos e depois ativá-los no Samba. Comece criando os logins usando o "users-admin" ou manualmente através do comando "adduser". Depois de criar os usuários no sistema, acesse a aba "usuários" do painel e adicione os usuários criados no campo "Usuários Samba". A lista "Usuários UNIX" mostra todos os usuários cadastrados no sistema, incluindo os usuários ocultos (por isso que é tão grande), mas você só precisa se preocupar com os usuários que adicionou.
Quando alguém tentar acessar seus compartilhamentos a partir de uma máquina Windows, o Samba verificará se o login que está sendo usado no Windows bate com alguma das contas cadastradas. Se bater, ele autoriza o acesso aos arquivos, caso contrário a pessoa verá o prompt para inserir um usuário e senha válidos. Finalmente, falta criar os compartilhamentos propriamente ditos, usando a aba "Compartilhamentos". No campo "Localização" vai o caminho completo da pasta que está sendo compartilhada, e no "Nome", o nome do compartilhamento na rede. Se quiser que os outros possam alterar o conteúdo da pasta e adicionar novos arquivos, desmarque a opção "Somente Leitura".
A opção "Público" permite que todo mundo tenha acesso à pasta, o que é o padrão ao usar o nível de segurança no nível "Compartilhamento". Ao usar o nível de segurança "Usuário", configure as permissões de acesso na aba "Usuários". Você pode definir individualmente quem pode acessar, quem não pode e quem pode acessar em modo somente leitura. Na aba "Segurança" você pode também especificar
individualmente máquinas que terão ou não acesso ao compartilhamento, baseado no nome ou no endereço IP. Combinando as permissões de acesso baseadas nos logins de acesso e nomes das máquinas, você pode ter um controle bastante estrito de quem pode ou não acessar cada pasta. Naturalmente, quanto mais estritas as permissões, mais trabalhosa fica a configuração e maior é a possibilidade de erros. Uma coisa que você deve prestar atenção, sobretudo ao usar o nível de segurança em modo compartilhamento, são as permissões de acesso da pasta no sistema. O Samba é um programa que roda com privilégios limitados. Quando alguém tenta acessar um arquivo, o Samba decide entre autorizar ou não o acesso com base nas suas configurações, e depois tenta acessar o arquivo no sistema. Como o Samba está sujeito às permissões de acesso dos arquivos, podem acontecer casos em que esteja tudo correto nas configurações do Samba, mas você não consiga acessar, ou não consiga alterar os arquivos num compartilhamento porque as permissões de acesso da pasta não permitem. Antes de mais nada, experimente abrir as permissões da pasta compartilhada, dando permissão de leitura e escrita para todo mundo. Se resolver, vá restringindo novamente as permissões, até que fiquem da maneira como você quer, mas sem comprometer o acesso do Samba. Ao terminar, clique no "Aplicar" para salvar as configurações no arquivo "/etc/samba/smb.conf". Na verdade, o painel serve simplesmente como uma interface para editar este arquivo e cadastrar os usuários. O Samba atualiza as configurações em relação ao arquivo de configuração periodicamente, a cada 30 segundos. Para acelerar as coisas, fazendo com que as alterações entrem em vigor imediatamente, você pode reiniciar o Samba manualmente, usando o comando: # /etc/init.d/samba/restart
Compartilhamentos em NFS
Uma forma fácil de compartilhar arquivos com outras máquinas Linux é utilizar o protocolo NFS, muito mais simples de trabalhar que o Samba. O Kurumin inclui dois ícones, para ativar ou desativar o servidor NFS e para acessar compartilhamentos de outras máquinas, disponíveis no menu "Redes e Acesso Remoto > NFS". Imagine que você tenha duas máquinas, uma com o IP 192.168.0.1 e a outra com o 192.168.0.2. A 192.168.0.1 tem uma partição no HD cheia de filmes em Divx que você quer assistir na máquina 192.168.0.2. Em primeiro lugar você monta a partição com os vídeos, clicando sobre o ícone no desktop. Depois clica no "NFS (Configurar um servidor de arquivos NFS)". Preencha os campos com a pasta que será compartilhada, os endereços IP que terão acesso a ela (o * é um curinga, que diz que todos os micros dentro da faixa 192.168.0.x terão acesso) e se o compartilhamento será apenas leitura, ou leitura e escrita.
No final, o script vai abrir o arquivo "/etc/exports", onde fica a lista das pastas compartilhadas com a rede, de forma que você possa conferir a entrada adicionada. Você pode compartilhar várias pastas diferentes e com permissões diferentes, basta criar vários compartilhamentos. Você pode substituir o "*" pelo IP da máquina que acessará o compartilhamento e o "ro" por "rw" que compartilhará a pasta com permissão de escrita. Basta salvar o arquivo e a pasta estará compartilhada até que você clique no "NFS - Desativar servidor" No cliente (a máquina 192.168.0.2, no exemplo), você precisa apenas clicar no "NFS (Acessar um compartilhamento NFS)". Preencha os campos com o endereço IP do servidor, a pasta que ele está compartilhando (/mnt/hda6 no exemplo) e a pasta local onde este compartilhamento ficará disponível, como por exemplo "/mnt/nfs/".
Pronto, agora é só acessar a pasta e você poderá assistir seus filmes através da rede. O NFS é um protocolo bastante simples e leve, por isso ele quase não degrada o desempenho da máquina ao acessar arquivos pela rede. O script monta o compartilhamento e abre uma janela do Konqueror mostrando os arquivos. Ao fechar a janela, o compartilhamento é desmontado automaticamente. Marcando a opção "Criar um ícone no desktop e adicionar uma entrada no fstab", é criado um ícone no desktop, que permite montar o compartilhamento posteriormente, mesmo reiniciando o micro. Para desmontar, clique com o botão direito sobre ele e use a opção "desmontar".
Se o seu servidor de arquivos fica sempre ligado e você prefere que o compartilhamento seja montado automaticamente durante o boot (só faça isso se o servidor vá ficar sempre ligado), abra o arquivo "/etc/fstab" (como root) e modifique a linha referente ao compartilhamento, retirando a opção "noauto". A linha originalmente será como esta: # Acessa compartilhamento de rede nfs, adicionado pelo nfs-montar: 192.168.1.100:/mnt/hda6 /mnt/nfs nfs noauto,users,exec 0 0 E depois da alteração ficará assim: # Acessa compartilhamento de rede nfs, adicionado pelo nfs-montar: 192.168.1.100:/mnt/hda6 /mnt/nfs nfs users,exec 0 0
Utilitários de Sistema
O menu de utilitários de sistema (Iniciar > Sistema) reúne um conjunto de utilitários úteis, incluindo ferramentas de particionamento, backup e um conjunto de scripts e ferramentas de configuração. Alguns podem ser encontrados também dentro do Painel de Controle, outros estão disponíveis somente aqui.
Na pasta "Particionamento", você encontra os atalhos para o Gparted e o Cfdisk, que comentei durante o capítulo de instalação. Na pasta "Impressora", você encontra atalhos para o kaddprinterwizard (adicionar impressora), o printmgr, o kjobviewer, onde você pode gerenciar as impressoras instaladas e gerenciar os trabalhos de impressão (e remover aquele livro de 200 páginas que você mandou imprimir por engano ;), e o printconf, um script que detecta automaticamente novas impressoras instaladas. Na aba "Backup", você encontra o Partition Image e o Konserve, dois utilitários de backup. O Partition Image permite fazer imagens das partições, de forma a salvar, recuperar ou clonar as partições atuais. Ele é extremamente útil tanto nos momentos em que quiser fazer um backup completo do sistema, quanto quando precisar clonar a instalação do sistema, instalando-o em vários micros. Ele pode ser usado com o Kurumin rodando direto do CD. O backup com a imagem da partição pode ser salvo tanto numa outra partição do HD (você deve montá-la antes, ativando a permissão de escrita) quanto via rede, numa pasta compartilhada via NFS. São copiados apenas os dados dentro da partição que em seguida são comprimidos em gzip ou bzip2 (o bzip2 comprime um pouco mais, mas é mais lento). Uma partição de 5 GB, com 3 GB ocupados vai gerar um arquivo de em média 1 GB. Não o subestime por causa da interface em modo texto, o Partition Image é um dos programas mais usados na área, competindo diretamente com o Norton Ghost. O Konserve por sua vez é um utilitário bem mais simples, que permite fazer backup de pastas específicas. Você define as pastas, aonde será feito o backup e sua periodicidade, e ele faz o resto. A pasta "Ferramentas do KDE" agrupa um conjunto de pequenos utilitários e plugins do Konqueror que são úteis em várias situações. O "Gerenciar e Instalar Novas Fontes" (fonts:/System/truetype no Konqueror) permite gerenciar e instalar novas fontes TrueType, simplesmente colocando os arquivos dentro da pasta. Você pode instalar as fontes do Windows (que ficam na pasta C:\Windows\Fonts) ou fontes incluídas em programas diversos. As fontes são um componente importante, pois permitem que páginas web e documentos sejam exibidos corretamente. Ter as fontes necessárias instaladas melhoram bastante o nível de compatibilidade do OpenOffice com os arquivos do Office, por exemplo. Para administração remota, você pode utilizar o "Compartilhamento de Desktop" (krfb), que pode ser acessado pelo "Conexões em Ambiente de Trabalho Remoto" ou por qualquer cliente VNC, seja no Linux, Windows ou OS X. Ao contrário do servidor VNC for Linux, que cria uma nova seção do X, o
Compartilhamento de desktop compartilha a tela local, a que o usuário está vendo, servindo como uma boa opção para quem trabalha com suporte ou em situações onde você precisa ajudar algum amigo remotamente. O "Guarda do Sistema KDE" (ksysguard) mostra uma lista com os programas que estão rodando, junto com a quantidade de memória utilizada por cada um e outras informações. Você pode usá-lo também para finalizar programas. O "Centro de Informações" (kinfocenter) mostra várias informações sobre o hardware da máquina, desde coisas básicas como a quantidade de memória, partições do HD e processador, até os canais de I/O e IRQ usados e a identificação de todos os componentes instalados. Através dele, você vai saber que o micro tem uma placa de vídeo GeForce4 MX 400, uma placa de som Sound Blaster Live, rede Realtek 8139C e um Modem Agere SV92, por exemplo. Se você quiser ver uma lista dos pacotes instalados no Kurumin, abra o "Gerenciador de Pacotes" (kpackage). Se o Kurumin estiver instalado no HD e você já tiver rodando o comando "apt-get update" ou clicado no ícone "Atualizar lista de pacotes" ele também mostrará uma lista com todos os pacotes disponíveis no repositório do Debian, que podem ser instalados via apt-get. Outro utilitário útil para gerenciar os programas instalados é o "kmenuedit", que permite editar o menu iniciar do KDE. Na pasta Scripts você encontra um utilitário que pode se revelar o mais útil, o "remasterizar-kurumin". Ele permite remasterizar o CD do Kurumin, adicionando mais programas e arquivos, alterando as configurações e assim por diante. Ele é uma ferramenta valiosa para desenvolver soluções personalizadas utilizando o Kurumin como base. Que tal um firewall ou um sistema para os quiosques que a sua empresa vai implantar no Shopping, que roda direto do CD? Você também pode usá-lo para fazer pequenas modificações no seu CD do Kurumin, incluindo programas como o Gimp, Mozilla, OpenOffice ou o que mais você precisar usar no dia-a-dia. O script descompacta o conteúdo da imagem do sistema numa pasta do HD, permite que você faça alterações (como instalar ou remover programas através do apt-get, ou alterar as configurações do sistema) e depois gera um novo ISO com as alterações. Naturalmente, a qualidade do resultado final depende unicamente de você, o script apenas automatiza as partes mecânicas do processo. No menu "Gnome System Tools", você encontra um conjunto de utilitários que originalmente foram desenvolvidos no Red Hat, depois incluídos no Fedora e (com modificações) no Mandriva, até finalmente serem portados para o Debian. O conjunto inclui:
network-admin (configuração da rede): Esta é uma ferramenta alternativa para configurar a rede. Ao ser aberto, ele detecta as placas de rede (incluindo placas wireless) e modems instalados, e mostra um menu separado para cada um. Note que ele se limita a exibir as placas e modems que já foram detectados e ativados, ele não é capaz de detectar sua placa wireless ou modem por si só. boot-admin (configuração do lilo): Facilita a configuração do lilo, permitindo trocar o sistema padrão e incluir novas entradas. A configuração é automaticamente salva no arquivo "/etc/lilo.conf". disks-admin (disks): Permite ver e montar as partições disponíveis no HD, substituindo os ícones no "Meu Computador" ou a montagem manual. Ele se limita a mostrar as partições existentes; para fazer alterações você deve usar o Gparted.
time-admin (data e hora): É uma forma alternativa de ajustar a hora e fuso horário do sistema. Você pode fazer isso também usando o "kcmshell --clock" do KDE, clicando com o botão direito sobre o relógio. shares-admin (pastas compartilhadas): Permite criar e desativar compartilhamentos de rede. Originalmente, ele permite apenas criar compartilhamentos NFS, mas passa a incluir também compartilhamentos do Samba, caso o servidor esteja instalado. Você pode instalar o servidor Samba no Kurumin usando o ícone mágico. users-admin (usuários e grupos): Este é provavelmente o utilitário mais útil do conjunto, o utilitário para gerenciar usuários e grupos que comentei no capítulo sobre a instalação do sistema. Lembre-se de que o Linux é um sistema multiusuário, sempre que permitir que alguém use seu micro, você pode criar um usuário separado, impedindo que o visitante danifique seus arquivos ou a configuração do sistema. O mesmo se aplica quando quiser dar acesso via SSH para alguém ou criar compartilhamentos usando o Samba. Utilize um usuário separado também quando precisar executar algum problema suspeito, assim você limita os danos caso ele contenha qualquer código malicioso.
Configurando o KDE
O KDE não é apenas uma interface gráfica, mas sim o que podemos chamar de "desktop", um conjunto de bibliotecas, aplicativos, além de ferramentas de configuração e desenvolvimento que oferecem um ambiente completo, tanto para quem quer apenas usar o sistema, quanto para quem desenvolve aplicativos. O KDE é baseado na biblioteca Qt, desenvolvida pela TrollTech. Em 1997, quando o KDE começou a ser desenvolvido, a biblioteca Qt era de uso gratuito, mas não tinha o código aberto, o que gerou uma grande polêmica e levou ao surgimento do Gnome, baseado na biblioteca GTK, a mesma usada por programas como o Gimp. Com o crescimento do KDE e a possibilidade de formar uma grande comunidade de desenvolvedores, que impulsionariam o desenvolvimento e o uso da sua biblioteca, a Qt resolveu liberar o Qt sob a GPL em Setembro de 2000, o que removeu este entrave inicial. O Gnome continuou sendo desenvolvido, mas agora com o objetivo de ser uma interface mais fácil de usar, e não como um concorrente "livre" ao KDE, já que agora ambos são :). Quanto ao número de usuários, não existem muitas estatísticas confiáveis, mas o KDE parece ter um número bem maior de usuários. Uma pesquisa realizada pelo desktoplinux.com no início de 2005 (http://www.desktoplinux.com/articles/AT2127420238.html) fala em 61% para o KDE e 21% para o Gnome. O Gnome é aparentemente mais usado nos EUA, pela predominância de distribuições como o Fedora e o Ubuntu, enquanto o KDE parece ser mais popular no restante do mundo, incluindo o Brasil. As configurações do KDE são organizadas num programa central, o Kcontrol (Centro de Controle do KDE). À primeira vista, o Kcontrol parece simples. Do lado esquerdo da tela temos uma lista dos módulos disponíveis, organizados em categorias. Clicando em qualquer um, você tem acesso às opções no frame do lado direito. Caso tenha dúvidas sobre um determinado módulo, você pode clicar na aba "Help" que exibe a ajuda. Os módulos mais simples possuem apenas um texto curto explicando para que servem, mas alguns possuem manuais bem completos. Vale a pena dar uma olhada.
Este é um tópico "light" dentro deste capítulo, onde vou falar sobre algumas configurações disponíveis. O Kcontrol tem vários quartos escuros e passagens secretas, então, mesmo que você já use o sistema a algum tempo, é provável que você não conheça muitas das opções. Por exemplo, existem dois modos de exibição para as opções dentro do Painel, em Árvore ou em Ícones, que você define na opção "Ver > Modo", na janela principal. Como são muitas opções, muita gente prefere o modo de exibição em ícones, onde ao clicar sobre uma seção você passa a ver apenas as opções referentes a ela. Você pode definir também o tamanho dos ícones e definir atalhos de teclado para estas opções.
Aqui vai um resumo de algumas opções importantes:
Administração do Sistema: Algumas partes desta seção podem ser acessadas apenas pelo root, já que alteram aspectos sensíveis do sistema. Para ter acesso a elas, clique no botão "Modo Administrador". A seção "Gerenciador de Login" permite configurar a tela de login do sistema, alterando as cores, papel de parede, etc. É aqui que você pode também ativar ou desativar o auto-login, o recurso usado no Kurumin para que o KDE seja aberto diretamente durante o boot. Se preferir, você pode desativar isso, fazendo com que o Kurumin passe a pedir login e senha, como em outras distribuições e vice-versa. A seção "Data e Hora" permite ajustar a hora e o fuso horário do sistema, a mesma função que pode ser acessada clicando com o botão direito sobre o relógio. O módulo "Instalador de Fontes" permite que você instale fontes truetype que
passam a ser usadas automaticamente pelos programas instalados. Ele é bem simples de usar, clique no "Adicionar Fontes", indique a pasta e onde estão as fontes, selecione os arquivos e clique no botão de ok. Você pode tanto instalar as fontes logado como usuário normal, de modo que elas fiquem disponíveis apenas para o seu login, ou como root, tornando-as disponíveis para todos os usuários. Não é difícil encontrar vários sites que disponibilizam fontes por aí. Você também pode copiar as pastas de fontes do Windows (c:\Windows\Fonts) ou de programas como o Corel Draw. Instalar as fontes do Windows permite que os documentos escritos no Microsoft Office sejam exibidos com formatação perfeita no OpenOffice, por exemplo, pois você terá instaladas as mesmas fontes que o autor original usou.
As fontes ficam automaticamente disponíveis para os navegadores e também para programas como o OpenOffice (caso esteja instalado). Você pode também usar as novas fontes para personalizar o visual do sistema, acessando a seção Aparência > Fontes do Centro de Controle do KDE. A partir do KDE 3.3 existe uma forma ainda mais simples de instalar novas fontes. Abra uma janela do Konqueror e digite "fonts:/" na barra de endereços. Você verá duas pastas: "Pessoal" e "System". Para instalar novas fontes, você só precisa arrastar os arquivos para dentro de uma das pastas para que elas sejam automaticamente reconhecidas pelo sistema, como você faz no Windows ao copiar novas fontes para a pasta "c:\Windows\Fonts". Copiando as fontes para a pasta Pessoal, você faz uma instalação particular, válida apenas para o seu usuário. Copiando para a pasta System, você instala de uma vez para todos os usuários cadastrados no sistema. Neste caso, o Konqueror vai pedir a senha de root.
Para que as fontes fiquem disponíveis também dentro do OpenOffice, copie os arquivos para dentro da pasta "System/truetype/openoffice".
Aparência & Temas: Esta é provavelmente a área mais acessada do kcontrol. Parece que todo mundo gosta de personalizar o seu desktop e o KDE oferece uma grande flexibilidade neste sentido. Você pode alterar a decoração das janelas, o tamanho da barra de tarefas, o conjunto de ícones do sistema e assim por diante. Lembre-se de que existem centenas de conjuntos de ícones, papéis de parede, conjuntos de sons de sistema, etc. que você pode baixar no http://www.kdelook.org. Para instalar um conjunto de ícones, baixe o arquivo .tar.gz (neste caso um simples arquivo compactado contendo os ícones e não um pacote com código fonte), acesse a seção "Ícones" e clicar no "Instalar Tema". A partir daí você pode escolher qual tema usar na lista. A maioria das distribuições usa o tema "Crystal SVG", um conjunto de ícones bonito e neutro, que agrada a maioria. Outros temas populares são o Crystal Clear, o Nuvola e o Noia. No kde-look existe até um tema que imita os ícones do Windows 2000 (gosto não se discute, se lamenta ;). O Wallpaper é a personalização mais simples. Para alterar vá em "Fundo de Tela > Papel de Parede". O KDE suporta imagens em vários formatos, incluindo jpg, gif, png e bmp. Você pode usar também a opção "show de slides", onde você aponta uma pasta com várias imagens e ele troca periodicamente. Você pode ter um papel de parede diferente a cada minuto, por exemplo. Nos menus Cores, Fontes, Estilo, Painéis e Decoração de Janela, você pode configurar várias opções relacionadas ao visual do sistema. A "Decoração da Janela" é a moldura com a barra de arrastar e os ícones para maximizar, minimizar e fechar usada em todas as janelas abertas. Você pode trocar essa moldura por outra com ícones parecidos com os do Windows ou MacOS X, por exemplo. O estilo determina a aparência dos botões, barras de rolagem e outros componentes da tela. Os dois mais usados são o Plastik e o Lipstik. Existe até um tema particularmente feio, que tenta imitar o visual do Windows 9x ;).
Por padrão, o Kurumin vem com apenas dois protetores, o Flux e o Show de Slides (que exibe as imagens de uma pasta escolhida por você), mas você pode obter um conjunto mais completo instalando o pacote "kscreensaver", pelo apt-get. A "Tela de Apresentação", aquela tela com o logo do Kurumin que aparece durante a abertura do KDE, é na verdade um conjunto de imagens que fica na pasta "/usr/share/apps/ksplash/pics/". Assim como no caso dos ícones, você pode baixar novos temas no kde-look e instalá-los usando a opção "Tela de Apresentação > Adicionar".
Área de Trabalho: Nesta seção estão opções relacionadas à barra de tarefas, menu iniciar e ao comportamento das janelas. Por exemplo, no Windows, um clique duplo sobre uma janela faz com que ela seja maximizada, enquanto, no Konqueror, o padrão é ocultar a janela, deixando apenas a barra de títulos, um comportamento natural para quem está acostumado com outros gerenciadores de janela, mas bem estranho para quem vem do Windows. Você pode alterar isso na opção "Comportamento de Janela > Ações". Para ficar como no Windows, configure a opção "Clique duplo na barra de títulos:" como "Maximizar". Veja que você pode definir funções para os outros botões. Na configuração padrão, o botão do meio serve para minimizar a janela.
Um recurso interessante oferecido não apenas pelo KDE, mas pelas interfaces do Linux em geral são os desktops virtuais. Cada desktop funciona como uma área independente e você pode alternar entre eles usando atalhos de teclado. No KDE você pode alternar entre as áreas de trabalho virtuais pressionando Ctrl + uma das teclas de função, da F1 à F12, como em Ctrl+F2 (para mudar para o segundo desktop), Ctrl+F1 (para voltar para o primeiro), etc. Para enviar um programa aberto para outro desktop virtual, clique sobre a barra com o botão direito do mouse e use a opção "Para o ambiente...". Os desktops virtuais permitem organizar melhor os programas abertos e alternar entre eles com mais facilidade. Você pode organizar os programas "por tema", por exemplo, deixar todas as janelas do navegador no primeiro desktop, as janelas do editor de textos e o leitor de e-mails no segundo e assim por adiante. Você pode ajustar o número de desktops virtuais através da opção "Múltiplas Áreas de Trabalho". Uma observação é que cada desktop virtual faz com que o sistema passe a consumir entre 2 e 4 MB a mais de memória RAM (de acordo com a resolução de vídeo usada), o que pode ser um problema em micros com 256 MB ou menos.
Como um complemento, você pode incluir o pager na barra de tarefas. Ele é um applet que permite alternar entre as áreas de trabalho. Para incluí-lo, arraste o campo onde aparece a lista de janelas um pouco para a direita e clique com o botão direito sobre a área vazia. No menu, clique no "Adicionar > Mini aplicativo > Pager".
Existem um conjunto de outros applets que podem ser adicionados da mesma forma. Vale à pena perder um pouco de tempo testando as opções disponíveis :). Um que acho particularmente interessante é o Kweather (apt-get install kweather), que mostra a temperatura, velocidade do vento e outras informações meteorológicas e um ícone que mostra se o tempo está nublado ou chuvoso na sua cidade. Voltando ao Kcontrol, você encontra mais opções de personalização da barra de tarefas, incluindo seu tamanho, pano de fundo (a barra pode ficar transparente, ou usar uma imagem qualquer como fundo), entre várias outras configurações na opção "Painéis". Você pode até mesmo ativar uma segunda barra de tarefas, exibida no topo da tela, como usado no Gnome e no MacOS.
Componentes do KDE: Esta seção concentra algumas opções "Avançadas" relacionadas ao funcionamento do KDE. A mais importante é provavelmente a seção "Associações de Arquivos", onde você define quais programas serão usados para abrir quais extensões de arquivos. Você pode atribuir a mesma extensão para dois ou mais programas e definir uma ordem de prioridade, onde o primeiro abre os
arquivos por default, mas você pode escolher um dos outros clicando com o botão direito sobre o arquivo.
Muitos programas alteram as associações padrão ao serem instalados assumindo a posse dos formatos de arquivos que suportam, mas você pode sempre alterar as configurações, além de criar novas associações de arquivos através do Painel.
O KDE usa o Ispell como corretor ortográfico. O mesmo corretor é usado em vários programas do KDE, incluindo o Konqueror, Kedit, Kword e outros. O corretor entra em ação até mesmo ao postar uma mensagem num fórum ou blog, grifando em vermelho as palavras incorretas. Se esta opção não estiver habilitada por padrão, clique com o botão direito sobre o texto escrito, dentro do Konqueror e marque a opção "Verificar ortografia automaticamente". A grande limitação é que o corretor não é integrado ao OpenOffice, de forma que você fica com dois corretores diferentes, cada um usando uma lista de palavras própria. Na opção "Gerenciador de arquivos" existem algumas opções referentes ao Konqueror, como as fontes usadas e os tipos de arquivos para os quais ele exibe previews. Na opção "Performance do KDE" existe um item importante, relacionado ao uso de memória. Selecione a opção "Minimizar uso de memória > Nunca" se você tem 256 MB de RAM ou mais, isso melhora o desempenho geral do KDE e evita alguns problemas esporádicos.
Controle de Energia: Esta seção é especialmente útil para quem usa um notebook, pois permite ativar o medidor de bateria e configurar várias opções relacionadas à economia de energia, como ajustar a freqüência do processador e
brilho da tela, de acordo com o status da bateria. A maioria das opções só ficam habilitadas depois de clicar no "Bateria do Laptop > Configurar ACPI > Definir Aplicação Auxiliar". Esta opção ativa o suporte a ACPI, carregando os módulos de Kernel apropriados. Ao usar um notebook, é importante usar uma distribuição atual, com um Kernel recente, pois esta é uma área em que o sistema tem evoluído rapidamente nos últimos meses. Por exemplo, o HP nx6110 é, a partir do Kernel 2.6.13, um dos notebooks melhor suportados no Linux: tudo funciona, incluindo o suporte a 3D, a placa wireless (usando o Ndiswrapper), o ajuste da freqüência do processador, suspender, e até mesmo o softmodem que vem onboard. Porém, ao usar uma distribuição com um Kernel apenas um pouco mais antigo, nem o 3D, nem o modem, nem o suspender funcionam corretamente.
Internet & Rede: Esta seção concentra opções relacionadas à configuração da rede. A opção "Compartilhamento de Arquivos" permite criar compartilhamentos de rede Samba e NFS (os dois simultaneamente) de uma forma simples. Naturalmente, para compartilhar arquivos com máquinas Windows, é preciso que o servidor Samba esteja instalado. A opção "Compartilhamento do desktop" abre a tela de configuração do krfb, que permite compartilhar a imagem do desktop com outras máquinas da rede, para fins de suporte, enquanto a "Rede sem fio" mostra a configuração do kwifimanager, ambos disponíveis através do iniciar. As opções "Navegador Web", "Navegação em Rede Local" e "Proxy" estão relacionadas ao Konqueror. A primeira contém opções diversas relacionadas ao navegador, incluindo as opções de cache e relacionadas à segurança. A segunda permite configurar um usuário e senha padrão para serem usados ao visualizar os compartilhamentos de outras máquinas da rede ao usar o módulo "smb:/" do Konqueror. A última contém a configuração de proxy, caso você esteja dentro de uma rede que utilize um.
Periféricos: Nesta seção você encontra configurações relacionadas ao mouse, joystick e monitor, além de poder ver e gerenciar as impressoras instaladas. Ao contrário do que seria de se esperar, a maioria das configurações do teclado por outro lado vão na seção "Regional e Acessibilidade". Aqui você encontra apenas as opções de ajustar a taxa de repetição e o comportamento da tecla NumLock. As opções para economia de energia do monitor estão escondidas dentro da opção "Tela > Controle de Energia", onde você configura a economia de energia para o monitor entre as opções Standby, Suspend e Power Off. Estas opções podem desligar também o HD, caso você tenha configurado isso no setup do micro. Um monitor de 15" consome cerca de 90 Watts de energia, então é sempre importante fazer com que ele desligue quando o PC não estiver em uso. Antigamente se recomendava que o monitor só deveria ser desligado quando o micro fosse ficar sem uso por mais de uma hora, mas os modelos fabricados de uns três anos para cá podem ser desligados mais freqüentemente sem prejuízo para a vida útil. Você pode configurar o suspend para 5 minutos de inatividade e o Power Off para 15 minutos, por exemplo. No caso dos monitores de LCD, os desligamentos depois de 15 minutos de inatividade ajudam a prolongar a vida útil do aparelho. Basicamente, a tela de um monitor de LCD é como um chip, ela não tem vida útil definida, pode trabalhar durante décadas sem problemas. O que queima depois de alguns anos de uso são
as lâmpadas de catodo frio que iluminam a tela. Elas têm uma vida útil estimada pelos fabricantes em 10 mil horas (cerca de 3 anos caso fiquem ligadas 10 horas por dia). Estas lâmpadas podem ser substituídas, mas não é exatamente um conserto barato, então o ideal é fazê-las durar o máximo possível. Na opção "Tela > Tamanho e Orientação", você encontra um pequeno utilitário que permite alterar rapidamente entre as resoluções e taxas de atualização suportadas pelo monitor. Esta opção depende da distribuição em uso ter detectado corretamente o monitor e ter configurado corretamente o arquivo "/etc/X11/xorg.conf". Na opção "Gama" você pode ajustar via software o brilho do monitor, complementando as funções dos botões.
Regional & Acessibilidade: O KDE possui um projeto bastante abrangente de internacionalização, que consiste não apenas em traduzir a interface para as mais diversas línguas, mas também incluir suporte a diversos layouts de teclado e outras particularidades de cada região. O suporte ao português do Brasil está entre os mais completos, concentrado no pacote "kde-i18n-ptbr". Existem dezenas de outros pacotes de internacionalização, você pode inclusive instalar vários e configurar a língua padrão do sistema no "País/Região & Idioma > Localização". Esta seção inclui também a configuração do teclado (que já vimos no começo do capítulo) e também a configuração dos atalhos de sistema, feita através do "Atalhos de teclado". O KDE permite associar atalhos de teclados para a maioria das funções do sistema, o que você configura na seção "Atalhos de Teclado". Se você é da velha guarda e tem saudades da época do modo texto, onde tudo era feito através de atalhos de teclado, se sentirá em casa. Além dos atalhos de teclado relacionados às janelas e ao uso do sistema, você pode definir atalhos para abrir programas ou executar comandos diversos na seção "Teclas de Atalho" (ou "Ações de Entrada", dependendo da versão do KDE que estiver utilizando). Parece estranho ter duas seções separadas para definir teclas de atalho, mas esta divisão até que faz um certo sentido, separando os atalhos do KDE dos atalhos "gerais" definidos para outros comandos e programas.
Por exemplo, no Windows a tecla "Print Screen" serve para tirar um screenshot da tela. No Linux você pode usar o Ksnapshot, que não apenas oferece várias opções, mas também pode salvar diretamente a imagem no formato de sua preferência, sem ter que colar num programa de edição de imagens e salvar através dele. Para configurar o KDE para abrir o Ksnapshot ao pressionar a tecla Print Screen, acesse o "Teclas de Atalho > Entradas do Editor de Menus > Nova Ação". Dê um nome à nova ação, como "screenshot". Na aba "Gatilhos", clique em "Novo > Disparo de Atalho" e, na janela que define o atalho de teclado, pressione a tecla Print Screen. Na aba "Ações", clique em "Novo > Comando/URL" e coloque o "ksnapshot" como comando a ser executado. Este utilitário permite definir atalhos bastante sofisticados, inclusive transmitindo comandos para outros aplicativos abertos (como fazer o XMMS avançar ou retroceder a música, por exemplo). Veja a categoria "Examples" dentro da janela para ver mais exemplos de uso.
Som & Multimídia: O KDE possui seu próprio servidor de som, o Arts. Ele coordena o acesso à placa de som, permitindo que vários programas toquem sons simultaneamente, mesmo que a placa de som não ofereça esse recurso via hardware, entre outros recursos. Apesar de ter sido um "mal necessário" durante muito tempo, o Arts é atualmente pouco usado, pois o Alsa e consequentemente os drivers de som do Linux de uma forma geral evoluíram bastante nos últimos anos e passaram a oferecer suporte a múltiplos fluxos de áudio e outros recursos nativamente. O arts vem desativado por padrão na maioria das distribuições, deixando com que os programas acessem a placa de som diretamente. Se você tiver problemas relacionados à reprodução em alguns programas específicos, experimente ativá-lo e marcar a opção "Suspensão automática se ocioso por..." (configurada com "3 segundos"). Isso faz com que o
Arts fique ativo apenas quando algum programa tentar usá-lo, sem ficar bloqueando a placa de som o tempo todo. Ao ativar o Arts, você pode ajustar a prioridade do servidor de som e também o tamanho do buffer de áudio (opção Buffer de Som). Você pode diminuir bastante a utilização do processador ao ouvir música e de quebra ganhar imunidade contra eventuais falhas nos momentos de atividade simplesmente aumentando o buffer para 400 ms ou mais. Assim o sistema passa a contar com uma reserva maior e pode utilizar melhor os tempos ociosos do processador para decodificar o áudio. O KDE é capaz de ripar CDs de música nativamente. Experimente colocar um CD de música no drive e acessar o endereço "audiocd:/" no Konqueror. Ele exibe as faixas de um CD de áudio na forma de arquivos .mp3, .ogg e .wav, em pastas separadas. Arraste a pasta com o formato desejado para o desktop e o CD de música é ripado e convertido automaticamente. O mesmo pode ser feito através do Kaudiocdcreator, que oferece uma interface mais parecida com um ripador de CDs. Em qualquer um dos dois casos, você pode ajustar a qualidade dos arquivos .mp3 ou .ogg gerados através da opção "CDs de Áudio". Na seção "Notificações do Sistema" estão disponíveis também as opções de avisos sonoros e visuais do sistema de uma forma geral.
Componentes do KDE
Embora à primeira vista pareça ser um pacote único, o KDE é na verdade composto por um conjunto de aplicativos mais ou menos independentes. O componente que mostra a barra de tarefas, onde vai o relógio, iniciar e outros applets é o kicker. O componente que mostra os ícones, papel de parede e outros componentes do desktop é o kdesktop, enquanto o kwin é responsável pelo gerenciamento e exibição das janelas dos programas. Você pode brincar um pouco com estes componentes experimentando ver o que acontece ao desativar cada um. Pressione Alt+F2 para abrir o "Executar Comando" do KDE e execute o comando "killall kicker". Você vai notar que a barra de tarefas sumiu. Você não tem mais a lista de janelas e os programas desaparecem ao serem minimizados. Pressione Ctrl+F2 novamente e execute o comando "kicker". Tudo volta à normalidade. Experimente fazer o mesmo com o kwin. Ao fechá-lo, as janelas ficam "grudadas" na tela, você não consegue mais minimizar nem movê-las, mas ao reabri-lo tudo volta ao normal. Fazendo o mesmo com o kdesktop, você vai perceber que os ícones e papel de parede do desktop desaparecem. Às vezes acontece de um destes componentes travar (principalmente o kicker), causando os mesmos sintomas que você acabou de ver. Nestes casos, ao invés de reiniciar o X, ou pior, reiniciar o micro, você pode simplesmente pressionar Alt+F2 e reabrir o componente, sem prejudicar o que estava fazendo. Você pode ver mais detalhes sobre os componentes e arquivos de inicialização do KDE aqui: http://www.kde.org/areas/sysadmin/
Configurando teclados multimídia
Existem no mercado muitos teclados com teclas especiais, que permitem abrir o media player, ajustar o volume, abrir o leitor de e-mails e assim por diante. Estes teclados quase sempre acompanham algum
driver ou utilitário de configuração, que naturalmente está disponível apenas para Windows. Mas, você pode definir ações para as teclas especiais do seu teclado também no Linux, com algumas configurações simples.
A idéia central é que todo teclado utiliza um processador de 8 bits para ler as teclas digitadas. Ele suporta 256 teclas diferentes, mas os teclados possuem apenas 104 ou 105 teclas, deixando um monte de endereços livres. Os "teclados multimídia" aproveitam esta característica para adicionar algumas teclas extras. Ao configurar estes teclados no Linux, você precisa verificar quais são os códigos gerados pelas teclas adicionais e atribuir funções a elas, usando o Painel de controle do KDE. Você pode usar o xev, um pequeno utilitário que monitora as teclas digitadas e lhe mostra todas as informações. Ele permite que você veja a forma como o sistema vê cada uma. Abra um terminal e execute-o usando seu login de usuário: $ xev Pressione agora cada uma das teclas especiais. Na saída exibida no terminal, o xev exibe dois eventos para cada tecla pressionada (um ao pressionar, outro ao soltar). O volume de informações é grande, mas o que nos interessa é apenas o código numérico de cada tecla, exibido depois do "keycode" na terceira linha de cada evento:
Anote o código de cada tecla e abra o arquivo ".xmodmap", dentro do seu diretório de usuário: $ kedit ~/.xmodmap Vamos agora relacionar cada código com uma tecla de função. No teclado temos as teclas F1 até F12, podemos então relacionar as teclas especiais com, por exemplo, as teclas F18 em diante (que na verdade não existem), como em: keycode 144 = F18 keycode 164 = F19 keycode 162 = F20 keycode 153 = F21 keycode 174 = F22 keycode 176 = F23 keycode 160 = F24 keycode 130 = F25 keycode 236 = F26 keycode 234 = F27 keycode 233 = F28 keycode 223 = F29
Aqui eu coloquei todas as teclas, mas você pode adicionar apenas as que for realmente utilizar :). Para que a alteração entre em vigor sem precisar reiniciar o X, rode o comando: $ xmodmap ~/.xmodmap A partir daí, você pode configurar ações para elas no "Ações de entrada", no "Painel de Controle do KDE > Regional & Acessibilidade".
Você pode tanto definir ações "simples", para que seja aberto um determinado programa quando a tecla é pressionada, quanto ações mais complexas. Neste caso vale a criatividade. Caso esteja em dúvida sobre qual comando abre determinado programa, clique com o botão direito sobre o botão "K" na barra de tarefas e acesse o "Editor de menus". Nele você pode ver o comando correspondente a cada ícone no menu. Você não está restrito apenas a aplicativos, pode usar qualquer comando de terminal. Quanto maiores seus conhecimentos sobre o tema, mais coisas interessantes você vai conseguir fazer. Por exemplo, o KDE oferece um recurso chamado "dcop", que permite controlar funções dos aplicativos gráficos via linha de comando. Estas funções podem ser usadas nos atalhos, aumentando brutalmente o leque de opções. Cada aplicativo suporta um número diferente de funções. Se você usa o Kmix (o ícone do auto falante ao lado do relógio), pode aumentar o volume usando o comando "dcop kmix Mixer0 increaseVolume 0" e reduzir usando "dcop kmix Mixer0 decreaseVolume 0". Você pode criar dois atalhos, usando os passos normais e usar estes comandos, criando teclas que ajustam o volume. Mesmo que você não tenha um teclado multimídia, pode fazer isso usando teclas que não são usadas, como por exemplo as teclas "Scroll Lock" e "Pause Break".
Para os casos mais complicados, onde a tecla não gere nenhuma resposta no xev, existe um procedimento um pouco mais trabalhoso, que "ensina" o sistema o que fazer com cada tecla. Mude para um terminal de texto puro (pressione Ctrl+Alt+F1), e pressione as teclas especiais. Elas não farão com que apareça nada na tela, mas se o sistema estiver recebendo algum sinal do teclado, ele incluirá uma entrada no log, falando sobre a tecla "não identificada". Rode o comando "dmesg", que mostra o log do sistema: # dmesg Você verá uma entrada para cada tecla, contendo um código em hexa para cada tecla, como em:
atkbd.c: Unknown key pressed (translated set 2, code 0x9e on isa0060/serio0). atkbd.c: Use 'setkeycodes e01e ' to make it known.
Precisamos agora achar um código livre para associar a tecla a ele. Isto é bem simples, pois os códigos de 121 a 255 estão geralmente livres. Para verificar, use o comando abaixo, substituindo o "122" por um número até 255. Se ele não retornar nada, significa que o código não vago e você pode utilizar sem medo: # getkeycodes | grep 122 Falta agora associar o código em hexa da tecla com o keycode, o que é feito usando o comando "setkeycodes", como em: # setkeycodes e01e 122 Para que o comando torne-se definitivo, abra o arquivo "/etc/init.d/bootmisc.sh" num editor de textos (como root) e adicione o comando no final do arquivo. Todos os comandos dentro do arquivo são executados a cada boot: # kedit /etc/init.d/bootmisc.sh A partir daí, volte ao arquivo ".xmodmop", associe a nova tecla com o "F18" e defina uma ação para ela no "Ações de entrada". Repita o processo para cada tecla que desejar ativar :). Uma observação é que alguns teclados especiais, como os usados nos notebooks Toshiba A70 e A75 realmente não funcionam, pois utilizam um sistema proprietário para o mapeamento das teclas especiais, que não é suportado pelo sistema. Nestes casos, realmente não existe muito o que fazer.
Os ícones mágicos
O Kurumin é baseado no Debian e utiliza o apt-get como ferramenta padrão de instalação de novos programas, sempre baixando os arquivos a partir dos repositórios do Debian. Existe uma grande preocupação em manter o sistema compatível com o Debian original, de forma que quase todos os tutoriais sobre instalação de programas e configurações diversas que servem para o Debian, servem também para o Kurumin, quase sempre sem modificações. Mas, o Kurumin inclui diversas ferramentas que facilitam muitas tarefas, incluindo a instalação de vários programas comuns e até mesmo de servidores, os "Ícones mágicos". Eles nada mais são do que scripts que automatizam os passos necessários para realizar a instalação e a configuração inicial dos programas.
Estes scripts estão sempre sendo atualizados, já que sempre saem versões novas dos programas, arquivos mudam de endereço, etc. Use o "Atualizar listas de pacotes do apt-get" e o "Atualizar scripts de instalação dos ícones mágicos" disponíveis na aba "Ativar o apt-get" periodicamente para baixar estas atualizações. É recomendável fazer isso uma vez por semana, ou sempre que for instalar uma grande quantidade de programas de uma vez. Se você está curioso para ver como os ícones mágicos funcionam, dê uma olhada nos scripts que estão dentro da pasta "/usr/local/bin". Um script nada mais é do que um arquivo de texto, com uma seqüência de comandos que são interpretados e executados pelo sistema. Cada ícone mágico é uma "receita" de como instalar um determinado programa ou configurar alguma coisa. Você pode abrir os arquivos num editor de texto, estudá-los, adicionar novas funções, corrigir eventuais problemas ou adicionar qualquer personalização que ache interessante.
Instalando servidores
O Linux já é o sistema operacional mais usado em servidores. Em muitas situações, configurar um servidor Linux pode ser mais fácil do que configurar um micro doméstico, instalando plugins, suporte a vários formatos de vídeo e DVDs, jogos do Windows através do Cedega, e todos os outros recursos de que um usuário doméstico normalmente precisa. Você pode encontrar mais informações sobre a configuração de servidores Linux no meu livro Redes e Servidores Linux. Mas, mesmo que você não tenha intenção de se tornar um administrador de redes
Linux, pode instalar muita coisa de forma fácil usando os ícones mágicos incluídos no Kurumin. Para isso, acesse a opção "Instalar e configurar Servidores" dentro do Centro de Controle:
Este é um dos painéis com mais opções dentro do Centro de Controle. Vamos a um resumo das opções disponíveis. Já falei sobre as opções para configurar a rede, compartilhar a conexão e ativar o firewall, mas o menu principal inclui mais duas opções interessantes. A primeira é a opção de instalar o Squid, um servidor Proxy que permite incrementar o compartilhamento da conexão, adicionando um cache que armazena os arquivos mais acessados, o que melhora a velocidade de acesso e, ao mesmo tempo, permite que você acompanhe as páginas acessadas a partir dos outros micros da rede, usando o Sarg. Originalmente, ao usar um proxy é necessário configurar manualmente cada micro da rede para usá-lo, mas no caso do Squid é possível configurar um proxy transparente, que funciona de forma automática. Você pode configurar o tamanho do cache e outras opções dentro do arquivo "/etc/squid/squid.conf", exibido durante a instalação. Numa rede com muitos micros, pode ser útil monitorar o tráfego gerado por cada um, o que permite descobrir quem está baixando filmes e prejudicando o desempenho da rede. Você pode fazer isso usando o Netprobe. Na aba "Web e FTP" você encontra as opções de instalar um servidor Web Apache, com suporte a PHP e MySQL, que você pode usar para estudar sobre servidores web e testar os vários chats, fóruns e sistemas de gerenciamento de conteúdo de páginas que temos disponíveis. O próprio script instala como exemplo o PHPbb, um script de fórum bastante poderoso. A configuração do Apache vai no arquivo "/etc/apache/httpd.conf", os arquivos da página vão na pasta "/var/www/" e o fórum pode ser acessado localmente através do endereço "http://127.0.0.1/forum/".
No mesmo menu está a opção para instalar um servidor FTP, usando o Proftpd. Ele pode ser utilizado para compartilhar arquivos, dentro da rede ou na internet. É possível usá-lo para criar um simples FTP anônimo, ou liberar o acesso apenas a pessoas autorizadas. Para que o FTP fique disponível na internet, é necessário manter a porta 21 aberta no firewall. Se você acessa através de um modem ADSL configurado como roteador, é necessário redirecionar (port forwarding) a porta 21 para o seu micro. O Proftpd é configurado através do arquivo "/etc/proftpd.conf" e os arquivos que ficarão disponíveis para o FTP anônimo (que você pode ativar descomentando as linhas no final do arquivo) vão na pasta "/home/ftp". Na aba seguinte, "Arquivos e Impressoras", você encontra o script para configurar um servidor Samba, que pode ser usado para compartilhar arquivos com outras máquinas da rede, tanto Windows quanto Linux. Anteriormente, aprendemos como acessar os compartilhamentos usando o Kurumin como cliente; através desta opção, ele pode se tornar servidor. Ao instalar o servidor Samba, é necessário cadastrar os logins dos usuários que terão acesso aos compartilhamentos. Não é necessário que os logins e senhas sejam iguais aos usados nas máquinas Windows, mas ao usar senhas diferentes será necessário fornecer um dos logins cadastrados ao acessar os compartilhamentos. Você pode configurar o servidor e criar novos compartilhamentos usando o Swat, ou diretamente no arquivo "/etc/samba/smb.conf". Caso muita gente vá usar o servidor para guardar arquivos, você pode usar a opção de configurar quotas de disco, limitando o espaço que poderá ser usado por cada um. A opção de compartilhar impressoras permite compartilhar as impressoras na rede usando o próprio Cups. Estas impressoras podem ser usadas tanto nas outras máquinas Linux, quanto nas máquinas Windows. Na aba "Acesso Remoto" você encontra o script para instalar um servidor LTSP, batizado de "Kurumin Terminal Server". O LTSP combina o NFS, DHCP, XDMCP, TFTP e um conjunto de scripts próprios para criar um servidor de terminais, que permite aproveitar micros antigos, ou com processadores lentos como terminais, executando via rede os aplicativos instalados no servidor. Ao contrário do que pode parecer à primeira vista, o desempenho das estações é muito bom. Mesmo usando um Pentium 100 como terminal, os aplicativos rodam com praticamente a mesma velocidade que rodam ao serem executados localmente no servidor. Esta solução é adotada nos Telecontros e em diversas empresas, como uma forma de aproveitar máquinas antigas e reduzir custos.
A configuração de um servidor LTSP está longe de ser trivial, tanto que ele consome quase 50 páginas do livro Redes e Servidores Linux. Mas, o script automatiza a maior parte da instalação, permitindo que você consiga colocar o servidor para funcionar apenas lendo cuidadosamente as opções de instalação. A parte mais trabalhosa é a edição do arquivo de configuração do DHCP, onde você deve cadastrar os endereços MAC das placas de rede usadas nos clientes, de forma que o servidor possa diferenciar cada um. No arquivo "/opt/ltsp/i386/etc/lts.conf" você pode incluir opções específicas para cada terminal, incluindo a resolução de vídeo e tipo de mouse usado em cada um. Na mesma aba você encontra também as opções para ativar o servidor SSH e instalar o FreeNX e o VNC. Embora sirvam para basicamente a mesma coisa: acessar sua máquina remotamente, de forma a executar comandos ou rodar aplicativos pela rede, os três funcionam de forma bem diferente. O SSH é a ferramenta mais básica de administração de rede. Ao ativar o servidor, você pode se conectar a ele a partir das outras máquinas da rede usando o comando "ssh login@servidor", fornecendo um login de acesso válido e o IP ou domínio do servidor (como em: ssh [email protected]). É possível ainda usar o SSH para transferir arquivos. Para isso, abra uma janela do Konqueror e acesse a URL "fish://login@servidor" (como em: fish://[email protected]). Depois de fornecer a senha de acesso, você vê os arquivo do servidor e pode transferi-los simplesmente arrastando-os para outra janela. O FreeNX usa o SSH como base, mas vai mais longe, implementando várias camadas de compressão e cache, que permitem rodar aplicativos gráficos com um excelente desempenho, mesmo via internet. Ao se conectar, você vê o desktop do servidor e pode usar qualquer aplicativo instalado nele. O FreeNX é composto de um módulo servidor e um cliente. Finalmente, o VNC é o sistema mais tradicional, também usado para abrir um desktop remoto do servidor e usar os aplicativos instalados nele. O VNC não é tão eficiente quanto o FreeNX, mas é mais fácil de instalar e configurar.
Recuperando o sistema
Acontece nas melhores famílias. Ao reinstalar o Windows, originalmente instalado em dual-boot, ele subscreve a MBR, removendo o lilo e fazendo com que a instalação do Linux na outra partição fique indisponível. Algum serviço ou programa configurado para ser inicializado durante o boot está travando o sistema e você não consegue completar o boot para desativá-lo. O X não está funcionando e você não consegue configurá-lo manualmente, etc. Quando um problema "insolúvel" aparece, a maioria opta por simplesmente reinstalar o sistema, como fariam no Windows. Mas, na maioria dos casos, é possível arrumar a bagunça de uma forma muito mais rápida, usando um CD do Kurumin ou outro live-CD como um sistema de recuperação. Através dele você pode acessar os arquivos na partição da instalação principal, restaurar o lilo ou modificar os arquivos de configuração e até mesmo abrir o X (do sistema instalado) e assim ter acesso às ferramentas gráficas. Comece dando boot pelo CD e montando a partição onde o sistema principal está instalado. Neste caso, precisamos montar usando o caminho completo, incluindo o sistema de arquivos em que a partição está formatada, pois precisaremos usar o chroot. Se você vai recuperar a distribuição instalada na partição "/dev/hda2", que está formatada em ReiserFS, o comando seria: # mount -t reiserfs /dev/hda2 /mnt/hda2 Se a partição estivesse formatada em EXT3, o comando seria: # mount -t ext3 /dev/hda2/mnt/hda2 O próximo passo é abrir um terminal e logar-se como root. No Kurumin e na maioria dos live-CDs, você pode fazer isso usando o comando "sudo su" ou (se você tiver definido a senha de root depois do boot), com o comando "kdesu konsole". A partir do terminal, use o comando "chroot" para obter um prompt do sistema instalado, indicando a pasta onde a partição foi montada, como em: # chroot /mnt/hda2 A partir daí, você tem um prompt de comando da distribuição instalada, que pode ser usado para recuperar o sistema. Para trocar a senha de root, por exemplo, use o comando: # passwd Para modificar o arquivo de configuração do lilo, a fim de corrigir algum erro de configuração que está impedindo o sistema de inicializar, use um editor de texto de terminal, como o mcedit ou o joe, como em: # mcedit /etc/lilo.conf Depois, como de praxe, rode o comando "lilo" (como root) para regravar o MBR, salvando as alterações. Isso faz com o lilo volte a ser aberto durante o boot (substituindo o bootloader do Windows), permitindo que você escolha o sistema. O terminal pode ser usado para editar outros arquivos de configuração, desabilitar serviços que estão sendo carregados durante a inicialização e assim por diante. Você pode executar praticamente qualquer comando de texto dentro dele, e as alterações vão sendo feitas no sistema instalado. A principal limitação deste terminal de recuperação é que não é possível rodar ferramentas gráficas. Ele sempre volta um erro, dizendo que não é possível acessar o servidor X. Embora um pouco trabalhoso, é possível abrir o X e rodar programas gráficos usando o Xnest, uma espécie de servidor X "de mentira", que é aberto dentro de uma janela e pode ser acessado pelo sistema
dentro da partição. Rodar os programas deste modo é mais lento e você notará algumas estranhezas diversas, mas é suficiente para rodar os programas de configuração. Isso é feito em duas partes. Para começar, abra outro terminal de texto, desta vez como usuário normal (e não como root, como no primeiro) e rode os comandos: $ xhost + $ Xnest :1 O primeiro afrouxa o sistema de permissões do X, permitindo que o sistema dentro da partição consiga usar a janela do Xnest que abrimos em seguida. Note que o comando para abrir o Xnest é "Xnest", com o X maiúsculo, enquanto o ":1" é o número da seção que está sendo aberta. Com a janela do Xnest aberta, volte ao terminal do chroot e rode os comandos: # export DISPLAY=localhost:1 # startkde O "export DISPLAY" explica que o sistema deve passar a usar a janela do Xnest para rodar aplicativos gráficos, enquanto o "startkde" carrega o KDE dentro da janela. Você pode substituir o último comando por "gnome-desktop" (para abrir o Gnome) ou por um simples "xterm", para abrir uma janela de terminal e chamar diretamente os aplicativos através dela. Para que os programas gráficos funcionem, é necessário que a distribuição instalada e o live-CD usem versões parecidas do X. Funciona bem ao usar um CD do Kurumin para recuperar uma instalação do Kurumin, ou um CD do Slax para recuperar uma instalação do Slackware, mas nem sempre funciona ao usar distribuições diferentes ou ao usar versões diferentes da mesma distribuição. Nestes casos você terá que se contentar com os comandos de texto. Mais uma dica é que você pode também copiar arquivos de configuração do live-CD para a instalação principal, o que é útil sobretudo para solucionar problemas relacionados à configuração do vídeo. Os arquivos de configuração do X são praticamente universais; um arquivo gerado no Kurumin vai funcionar perfeitamente no Mandriva ou Slackware instalado no HD em 98% dos casos, fazendo com que o vídeo volte a funcionar, usando a mesma configuração que está sendo utilizada ao rodar do CD. Neste caso, você precisa apenas copiar o arquivo "/etc/X11/xorg.conf" (ou "/etc/X11/XF86Config-4", se você estiver usando uma versão antiga do Kurumin), substituindo o arquivo dentro da partição, como em: # cp /etc/X11/xorg.conf /mnt/hda2/etc/X11/xorg.conf Lembre-se de que o arquivo de configuração pode ser o xorg.conf ou o XF86Config-4 (dependendo da distribuição instalada usar o X.org ou o Xfree), mas os dois arquivos são intercompatíveis, basta renomear caso necessário.
Kurumin em micros antigos
A configuração recomendada para rodar o Kurumin a partir do CD, rodar o OpenOffice e assistir a vídeos em Divx é um Pentium II 266 com 256 MB de RAM. A configuração mínima para rodar o sistema com qualidade é um Pentium II com 128 MB. Ao instalar o sistema no HD, o desempenho melhora e o consumo de memória cai um pouco, pois o sistema não precisa mais criar o ramdisk nem descompactar os dados do CD. Mesmo assim, não espere milagres, o sistema não vai ficar rápido no seu 486 só por ser instalado no HD. Embora o Kurumin possa "dar boot" até mesmo num Pentium 100 com 32 MB (caso exista memória swap suficiente), esta com certeza não será uma experiência muito agradável.
Uma dica importante é que o sistema precisa de no mínimo 128 MB de RAM para dar boot e carregar os aplicativos corretamente. Se você tem menos memória, apenas 96 MB ou menos, você vai precisar obrigatoriamente ter uma partição Linux Swap no HD. O sistema precisa de uma certa quantidade de memória, dados que precisam ir para algum lugar. Se você não tem nem memória RAM suficiente, nem memória swap, o sistema simplesmente não tem onde armazenar os dados e acaba travando durante o boot. Você pode criar uma partição swap usando o gparted ou cfdisk incluídos no Kurumin, ou mesmo usar o CD de instalação de outra distribuição Linux que ofereça algum utilitário de particionamento. Mesmo que você não tenha o Linux instalado no HD, é recomendável deixar uma partição swap, mesmo que pequena reservada, pois não apenas o Kurumin, mas também outras distribuições que rodam a partir do CD são capazes de detectar e ativar a partição swap no boot. Usando swap, o desempenho do sistema fica melhor (pois ele pode mover arquivos e bibliotecas que não estão em uso para a swap, mantendo mais memória livre para os programas). Caso você tenha pouca RAM e ainda por cima não tenha uma partição swap disponível, o sistema se oferecerá para usar o arquivo de swap do Windows (se o HD estiver formatado em FAT 32). Esta é uma medida desesperada para permitir que o sistema pelo menos consiga dar boot, mas como o arquivo de swap do Windows oferece um desempenho muito inferior ao de uma partição Linux Swap, o desempenho do sistema ficará muito abaixo do normal. Apesar disso, mesmo usando a partição swap, o sistema vai ficar bem lento num micro com 64 MB de RAM ou menos. Existe uma forma mais rápida de dar boot pelo CD e instalar do que ficar esperando o KDE abrir. Inicie o sistema usando a opção "kurumin 2" abaixo na tela de boot. Isso fará o Kurumin dar boot em modo texto (já logado como root), o que consome cerca de 18 MB de memória, dando boot pelo CD. Isso vai permitir que você consiga dar boot em um micro com 64 MB, mesmo antes de criar a partição swap. O primeiro passo é particionar o HD, criando a partição onde o sistema será instalado, a partição swap e opcionalmente também a partição /home: # cfdisk Você pode ativar a partição swap sem precisar reiniciar com os comandos: # mkswap /dev/hda2 # swapon /dev/hda2 (onde o /dev/hda2 é a partição swap criada) Com a swap ativa, você pode começar a instalação. Ao invés de esperar o KDE carregar, você pode abrir um X "pelado", sem gerenciador algum e por isso bem mais rápido de carregar, usando o comando: # xinit Com o X aberto, chame o instalador do Kurumin com o comando: # kurumin-install Depois de terminar a instalação, você pode aproveitar para desativar a abertura do KDE durante o boot. Para fazer isso antes de reiniciar, monte a partição onde o sistema foi instalado e use o comando "chroot" para abrir um terminal dentro dela: # mount /dev/hda1 /mnt/hda1 # chroot /mnt/hda1 (onde o /mnt/hda1 é a partição onde o sistema está instalado) Dentro do terminal do chroot, chame o:
# wmconfig Use a opção que desativa o KDM e escolha o gerenciador de janelas padrão. Ao reiniciar, o login será feito em modo texto, tornando o boot mais rápido. Para abrir o modo gráfico, use o comando "startx". Naturalmente, ao deixar de usar o KDE, você abre mão de muitas funcionalidades, fazendo com que o sistema deixe de ser muito amigável. Se você quer uma interface simples, num micro para seu próprio uso, pode experimentar o Fluxbox, que já vem pré-instalado no Kurumin. Você pode usá-lo direto do CD, usando a opção de boot "kurumin desktop=fluxbox". Se você precisa de uma interface que, além de leve, seja amigável, adequada para o usuário final, devo alertar que ela simplesmente não existe. Você pode obter resultados razoáveis personalizando o IceWM, mas depois de uma boa dose de trabalho. Uma opção um pouco mais desenvolvida seria o Blanes, que no Kurumin pode ser instalado através do script "instalar-wm". O Blanes é uma espécie de "clone" da interface do Windows 98 (apenas a interface, sem os utilitários de configuração). Ele não é tão leve quanto o IceWM e o Fluxbox, mas com um pouco de trabalho pode oferecer resultados interessantes. Um alerta é que (embora originalmente desenvolvido com base no IceWM) o Blanes é um pacote proprietário, que pode não ser gratuito em versões futuras e não possui garantias de continuidade. Pense duas vezes antes de basear algum projeto importante nele. Mas, o conselho geral em se tratando de uso de micros muito antigos, para atender usuários finais, é usar o LTSP, ou outro sistema de acesso remoto, ao invés de tentar rodar os aplicativos localmente. É possivelmente a única solução que oferece uma solução realmente utilizável e relativamente rápida de instalar mesmo ao usar micros Pentium 100 ou 486. No Kurumin, você pode instalar o LTSP através do ícone mágico do Kurumin Terminal Server. Ele automatiza a maior parte de instalação, transformando-a em um procedimento muito simples. Use um micro novo, ou pelo menos um micro com uma configuração razoável, como servidor e você terá um bom desempenho em todos os terminais. Existe uma lenda dentro do mundo Linux, que diz que o Gnome é uma opção mais leve que o KDE e pode ser usado mesmo em micros antigos. Isto era mais ou menos verdade na época do Gnome 1.4, mas é completamente falso atualmente. O Gnome 2.10 ou 2.12 consome mais memória que o KDE, a única vantagem é que o carregamento é um pouco mais rápido. O Kurumin usa uma configuração bastante otimizada para o KDE, o que aumenta a diferença. Entre as distribuições atuais, que usam o KDE ou Gnome como padrão, as únicas que rivalizam com o Kurumin em termos de consumo de memória são o Slackware (e derivados) e o próprio Debian. Você pode instalar o Gnome no Kurumin através do comando "apt-get install gnome-core". Muita gente acha a interface do Gnome mais simples e mais fácil de aprender, mas, do ponto de vista do desempenho, o KDE leva vantagem.
Capitulo 5: Os programas Depois de instalado e configurado, o sistema operacional passa a ser uma espécie de coadjuvante, que você só nota quando surgem problemas. No dia-a-dia, você não usa o sistema operacional, usa os programas que rodam sobre ele. No final das contas, podemos dizer que o mais importante são justamente eles: os programas. Ninguém usaria Linux se não existissem bons programas disponíveis para a plataforma. É justamente este o tema principal deste capítulo. A instalação de novos programas no Linux não é tão complicada como pode parecer à primeira vista. Pelo contrário, muitas vezes é até mais simples que no Windows, pois raramente você precisará perder tempo comprando e registrando o programa, retirando banners de propaganda, desativando spywares, e coisas do gênero. O tempo de instalação do Office Professional pode chegar a mais de dois meses, se você incluir o tempo que precisaria trabalhar para comprá-lo ;).
Aplicativos do Linux
Você não encontrará no Linux o Internet Explorer, o Outlook, o Photoshop ou muito menos o Microsoft Office. Porém, se você tiver paciência, vai encontrar programas que substituem a maior parte das funções destes, além de outros programas que podem ser úteis para outras tarefas. Além da grande quantidade de programas nativos, é possível executar a maior parte dos aplicativos e jogos for Windows através do VMware, Wine, Qemu e Cedega. Esta é mais uma diferença importante entre o Windows e as distribuições atuais do Linux. O Windows traz apenas alguns aplicativos básicos, para acessar a Web (IE), ouvir músicas (Media Player), um editor de textos básico (Wordpad) e, no XP, também um firewall básico, um editor de vídeos, um programa de gravação de CDs integrado entre alguns outros acessórios. Depois de instalar o sistema, você ainda precisará adquirir softwares de terceiros para realizar tarefas mais elaboradas. A chance de a próxima versão do Windows já vir com o Photoshop e o Corel Draw, por exemplo, é muito remota. No Linux temos um cenário oposto. As distribuições trazem geralmente centenas de aplicativos diferentes. O mais complicado acaba sendo selecionar os aplicativos mais adequados às tarefas do dia-a-dia. Nesse processo é importante mudar um pouco a mentalidade, não procurar programas "iguais" aos que você usa no Windows, que serão muito raros (até porque ninguém pode simplesmente clonar um programa da Microsoft ou da Adobe e sair impune, e nem este é objetivo dos desenvolvedores), mas sim pensar nas tarefas que você deseja realizar e procurar programas que ofereçam um conjunto de recursos o mais próximo possível do que você utiliza. O Office pode ser substituído pelo OpenOffice, o Photoshop pelo Gimp, o Corel pelo Inkscape, o Illustrator pelo Scribus, o IE pelo Firefox, o MSN pelo Kopete ou pelo Mercury, o Outlook pelo Evolution, o Media Player pelo Kaffeine, o Nero pelo K3B, o iTunes pelo Amarok, o WinAmp pelo XMMS e assim por diante.
Se tantos desenvolvedores dedicam seu tempo para desenvolver aplicativos tão elaborados com o Gimp ou o OpenOffice, nada mais justo do que você também dedicar algum tempo para aprendê-los, não é mesmo? Um ponto importante é que também existem muitos softwares comerciais para Linux. É possível rodar muitos aplicativos Windows através do Wine ou do Cedega, e existe até mesmo a possibilidade de rodar uma instância completa do Windows dentro de uma máquina virtual do VMware, permitindo rodar lado a lado os programas das duas plataformas. Mas, apesar de nem sempre terem os mesmos recursos, os softwares open-source trazem a vantagem de serem utilizáveis por qualquer um, não apenas por quem pode comprar o software. A lista inclui programas poderosos como o Gimp, OpenOffice, Mozilla e tantos outros. Aliás, estes três estão disponíveis também em versão Windows, com todos os recursos. Começar a utilizá-los, mesmo no Windows, é um excelente passo, pois você passará a dispor das mesmas ferramentas nos dois sistemas.
A questão dos pacotes
No começo existia o código fonte. Você baixava um pacote .tar.gz, contendo o código fonte do programa, e a instalação consistia em compilar e instalar os executáveis gerados na sua máquina. Esta forma de distribuição faz sentido em se tratando de aplicativos abertos, pois permite que você veja e até adapte o código fonte se necessário, para que ele rode na sua máquina. Em muitos casos, é possível instalar o programa em outro sistema operacional (a maior parte dos programas do Linux podem ser instalados no BSD, com pequenas adaptações) ou até mesmo numa outra plataforma. O problema é que instalar programas a partir dos fontes é demorado e nem sempre simples, já que você precisa ter instalados os compiladores e bibliotecas necessários para compilar muitos programas. Existem incontáveis pequenas bibliotecas e ferramentas de desenvolvimento por aí e não é muito viável tentar manter todas elas instaladas. Compilar significa transformar o código fonte, escrito pelo programador, nos arquivos binários que são executados pelo sistema. Ao compilar um programa, são gerados vários executáveis, bibliotecas e arquivos de configuração, que são copiados para pastas específicas do sistema. Os executáveis vão para a pasta "/usr/bin/", as bibliotecas para a "/usr/lib/", os arquivos de configuração para o "/etc/" e assim por diante. Alguém chegou então a uma conclusão obvia: ao invés de cada um ter que ter o trabalho de compilar o programa na sua própria máquina, seria mais simples se alguém compilasse e distribuísse um arquivo ponto, com os componentes já compilados, num formato simples de instalar. Nasciam então os pacotes précompilados :). Os pacotes são uma idéia muito simples. Você cria um arquivo compactado contendo a mesma estrutura de pastas e arquivos que seria criada ao instalar o programa manualmente. Ao instalar o pacote, os arquivos são descompactados no diretório raiz, fazendo com que todos os arquivos sejam colocados nos diretórios corretos. Ao desinstalar o pacote, os arquivos são removidos, deixando o sistema
da forma como estava inicialmente. Uma forma rápida e limpa de instalar programas. Existem basicamente três formatos de pacotes diferentes: os pacotes .deb, usados pelas distribuições derivadas do Debian, os pacotes .rpm, usados pelas distribuições derivadas do Red Hat e os pacotes .tgz, usados pelo Slackware e derivados. Não existe nada de fundamentalmente diferente entre os três formatos e é inclusive possível transformar um pacote .rpm num pacote .deb, mas, devido às diferenças que existem entre uma distribuição e outra, não existe garantia de que um pacote do Fedora funcionará no Debian, por exemplo. O próximo passo foi a criação dos gerenciadores de pacotes, programas que permitem baixar e instalar novos programas de forma automática, verificando as dependências e, caso necessário, baixando outros programas e bibliotecas de que o programa inicial precisa. Já vimos alguns exemplos do uso do apt-get, o gerenciador usado nas distribuições derivadas do Debian. Além dele, temos também o urpmi, usado no Mandriva, o yum, usado no Fedora e o emerge, usado no Gentoo. Você pode perguntar por que não fazem como no Windows, onde cada programa tem seu instalador. Na verdade, muitos programas são distribuídos desta forma, como Java, OpenOffice, Firefox, Thunderbird, VMware e diversos jogos. Nestes casos, você simplesmente executa o arquivo e o instalador se encarrega do resto da instalação. O inconveniente é que estes pacotes são desenvolvidos para funcionarem em qualquer distribuição, por isso incluem todo tipo de bibliotecas e módulos de que o programa possa precisar, sem reaproveitar os componentes que você já tem instalados. Isso faz com que os pacotes sejam práticos de instalar, mas em compensação bem maiores (e mais pesados), assim como muitos dos programas do Windows. Em resumo, podemos dizer que existem três formas de instalar programas no Linux: 1- Usar o apt-get ou outro gerenciador de pacotes para instalar pacotes próprios da distribuição em uso. Esta é a forma mais simples e menos passível de problemas, que você usa sempre que possível. 2- Programas com instaladores próprios, destinados a funcionarem em várias distribuições. Eles também são simples de instalar, mas não tão simples quanto usar o apt-get. Muitos programas são distribuídos apenas desta forma, como o VMware. 3- Instalar o programa a partir do código fonte, o que pode ser necessário no caso de aplicativos pouco comuns, que não estejam disponíveis de outra forma.
Instalando programas com o apt-get
O apt-get é uma ferramenta extremamente poderosa e prática de usar depois que você aprende os conceitos básicos. Ele pode ser encontrado não apenas no Debian, Ubuntu e no Kurumin, mas em outras distribuições baseadas no Debian, como o Lycoris, Libranet e até mesmo no Linspire. Ferramentas como o urpmi do Mandrake, o synaptic do Conectiva e o yum do Fedora também são baseados nele.
Em primeiro lugar, o apt-get utiliza um conceito de fontes de atualização. Ele pode obter pacotes de praticamente qualquer lugar, incluindo CD-ROMs do Debian, unidades de rede, etc. Mas, o meio mais usado é justamente baixar os pacotes via internet, o que permite obter sempre as versões mais recentes dos programas. Para usar o apt-get, o primeiro passo é rodar o comando "apt-get update", que faz com que o apt-get verifique todos os repositórios disponíveis e baixe a lista com os pacotes disponíveis em cada um. Isso permite que ele crie uma espécie de banco de dados, com os pacotes disponíveis, onde cada um pode ser encontrado e qual endereço contém a versão mais recente. Este comando deve ser executado periodicamente. O ideal é que você o use uma vez por semana, ou sempre que for fazer alguma instalação importante: # apt-get update Lembre-se de que para virar root, basta digitar "su" no terminal e fornecer a senha configurada durante a instalação. Terminado, você pode começar a instalar os programas, usando o comando "apt-get install", seguido do pacote desejado. Para instalar o Abiword (o processador de textos), por exemplo, use o comando: # apt-get install abiword Veja que o apt-get cuida de toda a parte chata. No meu caso, por exemplo, é preciso instalar também os pacotes "abiword-common", "libenchant1" e "libmyspell3", que o apt-get instala automaticamente junto com o pacote principal, depois de pedir uma confirmação.
Terminada a instalação, o Abiword já está pronto para usar. Você vai encontrar o ícone dentro do menu "Escritório e utilitários" no iniciar. Alguns programas podem não criar corretamente os ícones no iniciar, mas você sempre pode chamá-los via terminal, ou criar o ícone manualmente, usando o kmenuedit. Isto se repete para qualquer um dos mais de 20.000 pacotes atualmente disponíveis nos repositórios que vêm ativados por padrão no Kurumin. Basta saber o nome do programa e você pode instalá-lo rapidamente a qualquer momento. Você pode ver uma lista dos pacotes disponíveis nos FTPs oficiais do Debian no: http://www.debian.org/distrib/packages.
Além de instalar, é possível usar o apt-get para atualizar qualquer pacote do sistema. Para isso, repita o comando de instalação, como em: # apt-get install abiword # apt-get install mozilla-firefox # apt-get install mplayer-586 E assim por diante. O comando faz com que ele verifique se existe uma versão nova do programa e, em caso afirmativo, já a baixa e instalada automaticamente. Caso contrário, ele simplesmente avisa que a versão mais recente já está instalada e não faz nada. Quando você não se lembrar do nome completo do programa, digite apenas as primeiras letras e pressione a tecla TAB duas vezes, assim você verá uma lista com as alternativas possíveis. Em casos onde o programa realmente "desapareça" depois de instalado, sem rastros aparentes, você pode procurá-lo usando o comando "whereis" (onde está), como em: $ whereis realplay realplayer: /usr/bin/realplay Em muitos casos, o programa pode ser instalado em uma pasta fora do PATH (as pastas /bin, /usr/bin, /usr/local,bin, etc.), e por causa disso o sistema não encontre o comando. Nestes casos, chame-o indicando o caminho completo, ou crie um link para ele (usando o comando "ln -s") dentro da pasta "/usr/bin", ou "/usr/local/bin", onde o sistema consiga localizá-lo diretamente, como em: # ln -s /usr/lib/realplayer10/realplay /usr/bin/realplay Lembre-se de que em muitos casos o nome do executável do programa pode ser diferente do nome do programa. Por exemplo, o executável do Realplayer é "realplay" e o do VMware Player é "vmplayer". Um detalhe interessante é que, mesmo ao atualizar um programa, as suas configurações são mantidas. Ao atualizar o Firefox ou o Konqueror, por exemplo, você não perde seus bookmarks. Isso acontece porque as configurações e arquivos referentes aos programas são armazenados em pastas ocultas dentro do seu diretório de usuário. Os bookmarks, cache, cookies e outros arquivos do Firefox, por exemplo, vão para a pasta ".mozilla/firefox", dentro do seu home. O apt-get nunca altera estes arquivos, de forma que sua preferências sempre são preservadas durante os upgrades. Um segundo tipo são os arquivos de configuração do sistema, que também fazem parte dos pacotes. Quando um pacote traz uma nova versão de um determinado arquivo de configuração, mas o apt-get percebe que o arquivo anterior foi alterado por você, ele pergunta se você quer manter o arquivo atual ou se você quer substituí-lo pela nova versão. O conselho geral nestes casos é responder não à substituição (que é o default). Isso mantém o arquivo atual, que afinal está funcionando. Autorize a substituição apenas quando você souber do que se trata. Lembre-se de rodar o "apt-get update" periodicamente, de preferência uma vez por semana, ou antes de instalar qualquer programa ou atualização importante, assim você terá certeza que o apt instalará sempre as versões mais recentes dos programas. O apt não apenas torna a instalação de novos programas bem mais simples, mas diminui também a necessidade de estar sempre instalando versões mais recentes da distribuição, já que você pode ir atualizando os programas mais usados sempre que souber de uma versão mais nova. É possível também remover pacotes instalados, neste caso usando o parâmetro "remove", como em: # apt-get remove abiword
Caso os arquivos referentes ao programa tenham se corrompido de alguma maneira (desligamentos incorretos, problemas de BIOS, etc. ;), você pode forçar sua reinstalação, usando o parâmetro "-reinstall". Normalmente o apt-get avisa que o programa já está em sua versão mais recente e não faz nada: # apt-get install bluefish Lendo Lista de Pacotes... Pronto Construindo Árvore de Dependências... Pronto bluefish já é a versão mais nova. Adicionando o "--reinstall" ele prossegue a instalação, mesmo que o pacote já seja a versão mais recente, substituindo todos os arquivos referentes a ele e resolvendo o problema. # apt-get install --reinstall abiword Naturalmente, existem programas gráficos que facilitam (?) as coisas, como o Synaptic, que abordo no capítulo sobre o Ubuntu. A questão de facilitar ou não é na verdade polêmica, pois muita gente acha mais fácil trabalhar com o Synaptic, enquanto outros acham sua interface muito complicada e preferem continuar usando os comandos. Mas, de qualquer forma, ele não deixa de ser uma opção interessante.
Configurando os repositórios
O apt-get procura por pacotes em todos os endereços (chamados de repositórios) listados no arquivo "/etc/apt/sources.list". Este é um simples arquivo de texto, onde os endereços são colocados um por linha. As linhas iniciadas com "#" são comentários, observações gerais que são ignoradas pelo programa. No Kurumin ele já vem configurado com os endereços dos repositórios do Debian e mais alguns programas disponíveis nos ícones mágicos, mas você pode editar o arquivo manualmente caso queira incluir algum endereço adicional, ou trocar o endereço de algum repositório que está fora do ar.
Por exemplo, um dos repositórios usados por padrão no Kurumin é o Marillat, que contém diversos pacotes, com codecs que oferecem formatos a diversos formatos de vídeo, programas para ripar CDs e DVDs e assim por diante. Depois que o Debian Sarge (o atual stable) foi lançado, renomearam a pasta onde estão os pacotes do testing de "testing" para "etch" (o nome da nova versão). Isso foi avisado no site do projeto, mas naturalmente o apt-get não tinha como adivinhar a mudança sozinho. Como não encontrava mais a pasta antiga, passou a dar um erro ao rodar o "apt-get update", avisando do problema: W: Não foi possível checar a lista de pacotes fonte ftp://ftp.nerim.net testing/main Packages (/var/lib/apt/lists/ftp.nerim.net_debian-marillat_dists_testing_main_binary-i386_Packages) - stat (2 Arquivo ou diretório não encontrado) W: Você terá que executar apt-get update para corrigir esses arquivos faltosos E: Alguns arquivos de índice falharam no download, eles foram ignorados ou os antigos foram usados em seu lugar.
A solução neste caso foi simplesmente abrir o arquivo "/etc/apt/sources.list" e corrigir a linha, mudando de: deb ftp://ftp.nerim.net/debian-marillat/ testing main Para: deb ftp://ftp.nerim.net/debian-marillat/ etch main No Kurumin o arquivo vem comentado, permitindo que você veja a função de cada linha. O arquivo vai sendo atualizado conforme os endereços mudam ou conforme aparecem novos repositórios. Você pode baixar estas atualizações atualizando os scripts dos ícones mágicos, usando a opção "Ícones Mágicos > Ativar o apt-get > Atualizar scripts dos ícones mágicos".
Normalmente, você não precisa se dar o trabalho de alterar este arquivo, mas não custa entender melhor como ele funciona. Vamos a um resumo rápido dos repositórios usados por padrão no Kurumin 5.1 e a função de cada um: # Testing deb http://ftp.us.debian.org/debian testing main contrib non-free # Unstable deb http://ftp.us.debian.org/debian unstable main contrib non-free
Estas duas linhas contém os repositórios padrão do Debian, ao usar o Testing/Unstable. É recomendável manter as duas linhas ativas, mesmo que o padrão seja o Testing, pois em muitas situações o Testing fica com dependências quebradas (pacotes que precisam de outros que ainda não foram atualizados) e o apt resolve o problema automaticamente baixando a partir do Unstable. Lembre-se de que o Debian é composto de três versões, desenvolvidas simultaneamente. Além do Testing e Unstable, existe a opção de usar o Stable. Usar o Stable parece uma boa idéia à primeira vista, afinal, tratam-se de pacotes "estáveis". Porém, o Stable recebe apenas correções de segurança, os pacotes não são atualizados, fazendo com que fiquem velhos. Com o tempo, isso começa a causar problemas, já que você passa a querer atualizar alguns programas e as novas versões exigem pacotes que só estão disponíveis no Testing. O Stable é uma opção apenas se você é adepto da filosofia do "se não está quebrado, não mexa" e realmente não faz questão de instalar versões recentes dos programas. Para usar o Stable, você substituiria as linhas acima por estas: # Stable deb http://ftp.us.debian.org/debian sarge main contrib non-free deb http://security.debian.org/ sarge/updates main
A primeira linha contém o repositório principal e a segunda contém atualizações de segurança. Como pode ver, aqui estamos usando o Debian Sarge, que foi lançado em junho de 2005. A próxima versão estável será o Etch (o atual testing), que está planejado para o final de 2006. Ao alterar a versão usada por padrão no "/etc/apt/sources.list", você deve alterar também o arquivo "/etc/apt/apt.conf", mudando a primeira linha de: APT::Default-Release "testing"; Para: APT::Default-Release "stable"; Isso explica ao apt que ele deve passar a utilizar os pacotes do Stable ao invés do Testing. Não se esqueça de rodar o comando "apt-get update" sempre que fizer alterações nos dois arquivos. Embora não seja recomendável, você pode manter descomentadas simultaneamente as linhas referentes ao Stable e o Testing simultaneamente. Neste caso, o apt-get vai usar por padrão o que estiver configurado no arquivo "/etc/apt/apt.conf", mas você fica com os dois repositórios disponíveis e pode instalar um determinado pacote a partir do outro, usando o parâmetro "-t testing" (ou -t stable), como em: # apt-get install -t testing abiword Esta é uma forma de instalar versões recentes dos programas, a partir do Testing ou Unstable, sem precisar mudar o repositório padrão, mas nem sempre é uma boa idéia, já que misturar pacotes das duas versões pode levar a problemas se você não souber o que está fazendo. Muitos programas, como o OpenOffice, Firefox, Thunderbird, Java, Skype e outros são relativamente independentes de outros
pacotes instalados e quase sempre funcionam, independentemente da versão. Mas, os programas do KDE, Gnome e as bibliotecas base do sistema, possuem uma forte interdependência entre si, fazendo com que, muitas vezes, a única forma de instalar a versão mais recente de um programa simples, como o kedit ou o ksplash seja atualizar todo o KDE, como neste exemplo:
Veja que algo aparentemente inocente está prestes a se transformar num desastre de proporções bíblicas. Neste caso, estou usando o stable por padrão, mas estou pedindo para que o apt-get instale a versão mais recente do kedit a partir do unstable. O kedit precisa das novas versões das bibliotecas do KDE, que por sua vez possuem um conjunto próprio de dependências e conflitos. Para fazer a atualização, o apt-get precisaria não apenas atualizar todo o KDE e outros pacotes relacionados, mas também remover um conjunto de programas aparentemente inocentes, incluindo o Amarok e o OpenOffice. Como disse, forçar a instalação de pacotes de outras versões nem sempre é uma boa idéia. Preste atenção nas mensagens do apt-get e aborte em caso de problemas iminentes.
Outra configuração comum é com relação ao mirror do Debian que será usado. Existem vários mirrors disponíveis, diferenciados pelo código de país. A linha "deb http://ftp.us.debian.org/debian testing main contrib non-free", por exemplo, especifica que deve ser usado o mirror dos Estados Unidos (us.debian.org). Para usar o do Brasil, você substitui a sigla por "br", para usar o da Alemanha por "de", para usar o da Inglaterra por "uk" e assim por diante. Não existe uma regra fixa para qual mirror será mais rápido. Pela lógica, o do Brasil seria sempre mais rápido, mas isso depende muito do horário, de qual operadora você usa, e assim por diante. Em muitos casos, o dos EUA ou da Alemanha podem ser mais rápidos. O melhor é testar os três em diferentes
horários e ver qual apresenta melhores resultados. Não se esqueça de rodar o "apt-get update" depois de cada alteração. Outros repositórios, que complementam os repositórios oficiais do Debian (e são usados por padrão no Kurumin) são: # Debian Unofficial deb http://ftp.debian-unofficial.org/debian sarge main contrib non-free restricted
O Debian Unofficial contém uma grande quantidade de pacotes "não livres", porém importantes, como o Java, Acrobat Reader, Real Player e outros. deb ftp://ftp.nerim.net/debian-marillat/ sarge main
Como comentei anteriormente, o Marillat contém uma série de pacotes relacionados à multimídia, incluindo o pacote w32codecs (necessário para assistir vídeos .wmf, quicktime e outros formatos), o Mplayer, o DVDrip e outros. deb http://wine.sourceforge.net/apt/ binary/
Este repositório contém as versões mais recentes do Wine, que permite rodar aplicativos do Windows. Em outubro de 2005 ele entrou finalmente em fase beta (depois de quase 12 anos em estágio alpha! :o), o que marcou uma grande mudança na qualidade dos pacotes, que passaram a ser mais estáveis e com atualizações mais previsíveis. Acabaram os tempos em que uma versão funcionava e a seguinte não.
Usando o dpkg
O dpkg complementa o apt-get, permitindo instalar pacotes .deb baixados manualmente. Digamos que você tenha baixado, por exemplo, o arquivo "skype_1.2.0.18-1_i386.deb", o pacote com o Skype, disponível no http://skype.com. Para instalá-lo, você usaria o comando: # dpkg -i skype_1.2.0.18-1_i386.deb Lembre-se de usar a tecla para completar o nome do arquivo depois de digitar as primeiras letras. Se você tiver uma pasta com vários pacotes (como o OpenOffice 2.0, por exemplo), pode instalá-los de uma vez usando o comando "dpkg -i *.deb". Se você receber erros de dependências mas quiser forçar a instalação do pacote (geralmente não é uma boa idéia...), pode usar o comando "dpkg -i --force-all pacote.deb". Neste caso, tome cuidado com versões antigas, pois este último comando não checa dependências nem conflitos, apenas instala tudo de uma vez, na marra, causando os mais diversos problemas. Sempre, depois de instalar qualquer pacote usando o dpkg, rode o comando "apt-get -f install" para que o apt-get possa verificar o que foi feito e corrigir qualquer problema que tenha aparecido durante a instalação. Em casos de pacotes quebrados ou conflitos, o apt-get sempre vai sugerir alguma solução, mesmo que ela seja simplesmente remover o novo pacote. Pense no dpkg como uma espécie de ajudante do apt-get. Ele faz o trabalho braçal, mas não é bom em resolver problemas. É o apt-get que cuida das situações mais delicadas.
O ideal é que você instale todos os programas através do apt-get. Apele para a instalação manual de pacotes apenas como último recurso, para o caso de programas específicos, que não estejam disponíveis no apt-get.
O cache do apt-get
O apt-get salva uma cópia de todos os pacotes baixados, para uso posterior dentro da pasta "/var/cache/apt/archives/". A lista dos pacotes disponíveis (gerado ao executar o apt-get update) é salva dentro da pasta "/var/lib/apt/lists/". No Debian, é muito comum fazer backup destas duas pastas de forma a preservar o cache do apt-get depois de reinstalar o sistema, ou mesmo instalar os pacotes já baixados em outras máquinas. Pense no caso de alguém que tem banda larga no trabalho, mas acessa via modem em casa, por exemplo.
Por outro lado, o cache tende a ficar grande com o passar do tempo e ocupar muito espaço no HD. Se você acessa via banda larga, este pode ser um gasto desnecessário. Existem duas opções para limpar a casa. A primeira, mais contida, é usar a opção: # apt-get autoclean Ela remove apenas pacotes antigos ou duplicados, mantendo só as versões mais recentes, que realmente têm chance de serem usadas. Para realmente eliminar todos os arquivos do cache, use o comando: # apt-get clean No caso do Kurumin, existe uma forma mais conveniente de fazer o backup e instalá-lo em outras máquinas, que é gerar um CD do Kokar. Você encontra esta opção dentro do "Painel de controle > Ícones Mágicos > Instalar ou gerar o CD do Kokar".
O Kokar nada mais é do que um arquivo .iso, uma imagem com o conteúdo das duas pastas (junto com outros arquivos que os scripts dos ícones mágicos baixam para dentro da pasta "/packages/"), que pode ser gravada num CD ou DVD (de acordo com o tamanho) e instalada em outros micros.
Uma observação importante é que ao instalar o Kokar ou restaurar o backup do cache em outro micro, você não deve rodar o "apt-get update" até ter terminado de instalar todos os programas desejados a partir do cache. O motivo é simples: o apt-get sempre instala as versões mais recentes dos programas. Ao instalar o Kokar, são restaurados os arquivos da pasta "/var/lib/apt/lists/" da forma como estavam na outra máquina, fazendo com que o apt use os pacotes do cache. Ao rodar o apt-get update, você atualiza as listas, fazendo com que ele volte a baixar os pacotes mais recentes da Internet.
Documentação
Depois de instalar um pacote que você não conheça, muitas vezes você vai ficar se perguntando: "o que faço agora"? Afinal, a instalação é feita de uma forma quase automática pelo apt-get, muitas vezes ele já cuida também da configuração básica, mas o conhecimento necessário para usar o programa em questão já depende de você. Depois de instalar qualquer pacote estranho, a sua primeira parada deve ser a página do desenvolvedor, onde você geralmente encontrará o manual e instruções de uso. Outra opção é a pasta "/usr/share/doc/", onde cada pacote instala uma cópia da documentação disponível. Por exemplo, ao instalar o pacote raidtools (um conjunto de ferramentas para configurar um sistema Raid via software), é criada a pasta "/usr/share/doc/raidtools/" onde fica disponível o howto, um read-me, um quickstart e alguns exemplos de configuração.
Caso os arquivos estejam compactados, basta clicar com o botão direito sobre o arquivo e usar a opção "Extrair aqui" do Konqueror. Aproveite também para fazer uma pesquisa no Google. Como ele indexa vários grupos de discussão e grupos da usenet, você sempre encontrará uma grande quantidade de mensagens com problemas e soluções.
Resolvendo problemas com o apt-get
O apt-get é uma ferramenta desenvolvida para ser usada em servidores e outras aplicações importantes. Isto significa que ele foi desenvolvido para ser o mais confiável possível e nunca realizar nenhuma modificação potencialmente perigosa para o sistema, a menos que autorizado por você. Quando qualquer coisa inesperada acontece, ele pára e fica esperando sua confirmação antes de fazer qualquer outra coisa. O problema desta abordagem é que às vezes um defeito em algum pacote ou um download corrompido pode fazer com que o apt fique "travado", sem concluir a instalação de um determinado pacote por causa de um erro qualquer e sem aceitar instalar outros antes que o problema inicial seja resolvido. Este tipo de problema é relativamente raro, mas pode acontecer. Veja um caso particularmente feio que aconteceu certa vez ao tentar atualizar o k3b usando o comando "apt-get install k3b". Neste caso ele precisou atualizar algumas bibliotecas do KDE antes de atualizar o programa, mas uma delas estava com um defeito bobo que fazia ela tentar substituir duas associações de arquivos do K3B. Isto passaria despercebido se o apt-get não entrasse em pânico: Descompactando substituto kdelibs-data ... dpkg: erro processando /var/cache/apt/archives/kdelibs-data_4%3a3.1.4-2_all.deb (--unpack): tentando sobrescrever `/usr/share/mimelnk/application/x-cue.desktop', que também está no pacote k3b dpkg-deb: subprocesso paste morto por sinal (Broken pipe) Erros foram encontrados durante processamento de: /var/cache/apt/archives/kdelibs-data_4%3a3.1.4-2_all.deb E: Sub-process /usr/bin/dpkg returned an error code (1)
A partir daí o apt-get se recusava a instalar qualquer outro pacote, pois sempre tentava terminar a instalação do pacote "kdelibs-data" o que sempre acabava no mesmo erro. Como o tal arquivo a ser substituído não tem importância nenhuma, é apenas uma associação de arquivos, a solução foi simplesmente forçar a instalação do pacote kdelibs manualmente, usando a opção do dpkg que ignora erros: # dpkg -i --force-all /var/cache/apt/archives/kdelibs-data_4%3a3.1.4-2_all.deb Depois disso, bastou usar o comando "apt-get -f install" que conclui a instalação de todos os pacotes pendentes, incluindo a atualização do K3B que era meu objetivo inicial. Lembre-se de que você pode usar o botão do meio para colar a localização do arquivo a partir da mensagem de erro, sem precisar ficar digitando tudo. Dependendo da situação, você pode remover o pacote com problemas ao invés de forçar sua instalação. Isso é útil em casos de pacotes que realmente estão com problemas mais graves e estão bloqueando a instalação de outros. Neste caso, use o comando "dpkg -r" , como em:
# dpkg -r k3b Basicamente, quando encontrar este tipo de problema você deve: a) Rodar o "apt-get update" para ter certeza que a lista de pacotes do apt está atualizada. b) Rode o comando "apt-get -f install" para usar o sistema de resolução de problemas do apt. c) Caso ele não resolva, experimente usar o "dpkg -i --force-all" para forçar a instalação do pacote com problemas, como no meu exemplo, ou use o "dpkg -r pacote" caso prefira desistir da instalação. d) Rode o comando "dpkg --configure -a", que verifica pendências na configuração dos pacotes. d) Rode novamente o "apt-get -f install". Caso ele não resolva, experimente o "apt-get -f remove", que tem uma função similar à do "-f install", mas dá preferência a remover os pacotes com problemas, ao invés de tentar corrigir a instalação.
Chaves de autenticação
O GPG é um sistema de encriptação composto de duas chaves, uma chave pública, que é distribuída abertamente e uma chave privada, que é secreta. A cache privada pode ser utilizada para encriptar arquivos, que podem ser desencriptados apenas usando a chave pública. Isto é feito através de um truque matemático: a chave privada é uma espécie de equação extremamente complexa, que embaralha o conteúdo dos arquivos. A chave pública é um antídoto para ela, que permite reverter os dados a seu estado original. Porém, é impossível descobrir o conteúdo da chave privada usando a chave pública e é também impossível fazê-lo via força bruta. A partir da versão 0.6, incluída no Debian Etch, o apt-get passou a operar em modo seguro, onde o desenvolvedor usa sua chave GPG privada para assinar seus pacotes e o apt-get usa a chave pública para verificar se o pacote que está sendo instalado não sofreu modificações. Este processo extremamente seguro, que visa ter certeza de que o pacote que está sendo instalado na sua máquina é exatamente o mesmo que foi disponibilizado pelo desenvolvedor, eliminando qualquer possibilidade de alguém de má fé alterar o conteúdo pelo caminho. Este é um nível se segurança que não possui similar no mundo Windows. Mesmo que alguém consiga invadir o servidor onde os pacotes estão hospedados, ou consiga dar upload de pacotes falsos usando uma senha roubada, não terá como falsificar também a assinatura dos pacotes, fazendo com que você seja avisado ao tentar instalar e o problema seja detectado instantâneamente. A desvantagem é que isto tornou o uso do apt um pouco mais complexo, já que agora, além de rodar o "apt-get update", para atualizar a lista dos pacotes, você precisará muitas vezes atualizar também a lista com as chaves públicas, usadas para verificar os pacotes. Ao atualizar a partir de uma versão antiga do apt-get, no Kurumin 5.1 ou anterior, ou em qualquer distribuição derivada do Debian que venha com uma versão antiga do apt-get, você passará a receber erros como estes ao rodar o "apt-get update": W: GPG error: http://ftp.us.debian.org etch Release: Could not execute /usr/bin/gpgv to verify signature (is gnupg installed?)
O primeiro passo é instalar o pacote "gnupg", usado pelo apt-get para fazer a verificação: # apt-get install gnupg
Como o sistema de autenticação ainda não está funcionando, ele vai exibir o aviso padrão, pressione "s" para continuar a instalação: AVISO : Os pacotes a seguir não podem ser autenticados ! gnupg Instalar estes pacotes sem verificação [s/N]?
Com o gnupg instalado, falta baixar as chaves públicas, que serão usadas para verificar os pacotes. Cada repositório listado no arquivo "/etc/apt/sources.list" possui uma chave diferente. Sem instalar as respectivas chaves, você continuará recebendo erros, como em: W: GPG error: ftp://ftp.nerim.net etch Release: Couldn't access keyring: Arquivo ou diretório não encontrado.
Para baixar a chave para o repositório principal, use o comando abaixo (como root): # wget http://ftp-master.debian.org/ziyi_key_2006.asc -O - | apt-key add Esta chave será atualizada anualmente. Em Janeiro de 2007, 2008, 2009, etc., atualize-a com o mesmo comando, mudando apenas o ano, como em: # wget http://ftp-master.debian.org/ziyi_key_2007.asc -O - | apt-key add Para baixar a chave do repositório Marillat (de onde são instalados o mplayer, o w32codecs e vários outros pacotes ligados a multimídia, de uma forma geral), que é usado por padrão no Kurumin e em diversas outras distribuições, use os comandos: # gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 1F41B907 # gpg --armor --export 1F41B907 | apt-key add Para o Debian Unofficial, também usado por padrão no Kurumin, use: # gpg --keyserver subkeys.pgp.net --recv-keys 4B2B2B9E # gpg --armor --export 4B2B2B9E | apt-key add Concluindo, baixe também a chave para o repositório com as atualizações de segurança do Etch: # wget http://secure-testing.debian.net/ziyi-2005-7.asc -O - | sudo apt-key add Estes comandos para baixar as chaves podem ser encontrados nas páginas iniciais dos respectivos projetos, ou através do Google. Faça uma pesquisa por "gpg", mais o endereço do repositório dos pacotes, como em "gpg ftp://ftp.nerim.net" Depois de adicionar todas as chaves, rode novamente o "apt-get update" e os erros desaparecerão. Se você precisar adicionar endereços extras, cujos pacotes não estejam assinados no "sources.list" e quiser desabilitar os avisos do apt-get, adicione a linha "APT::Get::AllowUnauthenticated 1 ;" no arquivo "/etc/apt/apt.conf".
Usando o Alien
O Alien permite converter pacotes .rpm, que originalmente seriam destinados a outras distribuições, como o Fedora, Mandriva, etc. Usar pacotes destinados a outras distribuições nem sempre funciona, pois eles foram compilados para trabalhar em outro ambiente, com bibliotecas e componentes diferentes dos que estão realmente instalados no seu micro. Mas, em muitos casos, pode ser a única opção. Um exemplo clássico é o antigo pacote de drivers 3D para as placas ATI Radeon. Digo antigo, pois nas novas versões ele adotou um sistema similar ao do VMware, onde existe um instalador genérico, que se encarrega da instalação. O driver antigo era distribuído apenas em versão .rpm, muito embora pudesse (com algumas adaptações), ser usado em outras distribuições. O Alien pode se instalado usando o próprio apt-get: # apt-get install alien Para converter um pacote, simplesmente use o comando "alien", seguido pelo arquivo, como em: # alien fglrx_4_3_0-8.10.19-1.i386.rpm fglrx-4-3-0_8.10.19-2_i386.deb generated Note que ele gera um arquivo de mesmo nome, mas com a extensão .deb, que pode ser instalado usando o comando "dpkg -i". Converter pacotes de um formato para outro é bem mais simples do que pode parecer à primeira vista. O principal não é o formato do pacote em si, mas o que existe dentro dele. Atualmente, está em desenvolvimento um gerenciador de pacotes universal, o "smart", que é capaz de converter e instalar automaticamente pacotes de diferentes formatos. Ele pode vir a ser o sucessor do apt-get, urpmi, yum e outros gerenciadores que usamos hoje em dia.
Instalando a partir do código fonte
Os pacotes com código fonte, distribuídos na forma dos famosos pacotes .tar.gz ou .tar.bz2, são o formato mais universal, porém ao mesmo tempo o mais complicado de instalar, que você deixa como um último recurso a lançar mão quando não encontrar um pacote atualizado do programa que precisa instalar. Em primeiro lugar, é necessário ter instalado um conjunto de compiladores, incluindo o gcc e g++, e ferramentas como o make, autoconf, diff e patch e bibliotecas, como o binutils-dev, libc6-dev. Este "kit básico" é instalado ao marcar a categoria "desenvolvimento" (ou development) durante a instalação. No caso do Kurumin, use o script "instalar-compiladores". Uma dica é que todos os pacotes cujo nome termina com "-dev" são justamente bibliotecas de desenvolvimento, que podem ser necessários ao compilar determinados programas. Quando o instalador reclama da falta de bibliotecas ou arquivos do X, provavelmente ele está dando falta do pacote "xlibsdev", quando reclamar da falta de arquivos do KDE, provavelmente está pedindo o pacote "libqt3-dev" e assim por diante. A maior dificuldade em compilar programas complexos está justamente em localizar e instalar o conjunto de bibliotecas de que ele precisa.
Se os pré-requisitos estiverem em ordem, a compilação em si é feita descompactado o arquivo (usando o comando "tar -zxvf pacote.tar.gz" ou "tar -jxvf pacote.tar.bz2" ou descompactando pelo próprio Konqueror), acessando a pasta que será criada e rodando três comandos básicos: $ ./configure $ make # make install O "./configure" executa um script (dentro da pasta do programa), que verifica o sistema, em busca dos componentes de que precisa. Ele avisa caso algo esteja faltando, como neste erro que apareceu ao tentar compilar o Qemu: ERROR: QEMU requires SDL or Cocoa for graphical output To build QEMU with graphical output configure with --disable-gfx-check Note that this will disable all output from the virtual graphics card. Neste exemplo, está faltando a biblioteca de desenvolvimento do SDL. Quase sempre, os pacotes que contém bibliotecas começam com "lib" e os pacotes de desenvolvimento terminam com "-dev". Procurando no http://www.debian.org por um pacote que comece com "lib", termine com "-dev" e tenha "sdl" no meio, você chega ao "libsdl1.2-dev", que é justamente o pacote que estava faltando neste caso :). Em casos onde a solução parecer mais difícil, a melhor opção é fazer uma busca no Google, usando parte da mensagem de erro. O "make" cuida do trabalho pesado, fazendo a compilação propriamente dita. Ele se baseia nas informações deixadas pelo configure para encontrar os componentes de que precisa. Finalmente, temos o "make install", que finalmente instala o programa, copiando os arquivos gerados pelo make para as pastas corretas do sistema. Ao contrário dos dois primeiros comandos, ele precisa ser executado como root, já que envolve fazer alterações no sistema. Apesar destes três comandos serem um padrão adotado na maioria dos pacotes, eles não são necessariamente uma regra. Muitos programas usam sistemas simplificados de instalação ou mesmo scripts próprios, por isso é sempre bom dar uma olhada no arquivo "INSTALL" ou "README" dentro da pasta, que explica os passos necessários. Em geral, os programas instalados a partir dos fontes não criam os ícones no menu. Você precisa chamar o programa via linha de comando ou criar os ícones manualmente. Uma dica com relação às dependências e bibliotecas é usar o auto-apt, um programa que verifica as mensagens de erro geradas durante a compilação e procura instalar via apt-get os componentes necessários para concluir a compilação. Ele não é perfeito: muitas vezes se perde ou tenta instalar pacotes desnecessários, mas realmente ajuda em muitos casos. Você pode instalá-lo via apt-get: # apt-get install auto-apt Depois de instalado, execute (nesta ordem) os comandos "auto-apt update", "auto-apt updatedb" e "auto-apt update-local", que geram a base de dados que ele usa para fazer seu trabalho. Depois de tudo pronto, você passa a executar os comandos de compilação dos pacotes através dele, usando o comando "auto-apt run" seguido pelo comando, como em: # auto-apt run ./configure # auto-apt run make
Programas com instalador
Como comentei, muitos programas usam instaladores próprios e são desenvolvidos de forma a funcionarem sem modificações em várias distribuições. Alguns exemplos são o Java, RealPlayer, Acrobat Reader, os drivers 3D da nVidia e ATI, versões antigas do OpenOffice (anteriores ao 2.0), versões do Firefox e Thunderbird baixadas do mozilla.org ou mozilla.org.br e muitos jogos (como o Quake 3, Unreal, Medal of Honour e outros), que utilizam um instalador gráfico desenvolvido pela saudosa Loki. Estes programas quase sempre usam a extensão ".sh" e são fáceis de instalar, já que basta executar o arquivo num terminal para iniciar a instalação. Ao baixar o arquivo, ele sempre virá com a permissão de execução desmarcada, uma medida de segurança para prevenir acidentes com possíveis arquivos infectados com vírus e trojans. Apesar de parecer perda de tempo, esta é uma das medidas que mais contribui para a segurança geral do sistema num desktop, pois você não corre o risco de executar um arquivo simplesmente por clicar por acidente num link no navegador ou no leitor de e-mails: precisa realmente salvá-lo no HD, marcar a permissão de execução e finalmente executá-lo. Um vírus que se propagasse via e-mail encontraria um terreno muito menos fértil no Linux; ele teria que vir com manual de instruções ;). Para ativar a permissão de execução, use o comando "chmod +x", como em: $ chmod +x mohaa-lnx-1.11-beta3.run Muitos instaladores podem ser executados diretamente com seu login de usuário, desde que você instale o programa numa pasta dentro do seu home. Outros realmente precisam ser executados como root. Você pode executar o programa diretamente pelo Konqueror, clicando sobre ele (lembre-se de que você pode abrir o Konqueror como root usando o comando "sudo konqueror" ou ainda "kdesu konqueror"); ou pelo terminal, usando o "./", como em: # ./mohaa-lnx-1.11-beta3.run
No caso dos games, o instalador pede os CDs de instalação do Windows, da onde copia os arquivos necessários (mapas, sons, etc.). Mas, depois de instalado, o game roda realmente como um aplicativo nativo. No caso de games compostos por vários CDs, você por usar os comandos "umount /mnt/cdrom" e "mount /mnt/cdrom" para trocar o CD durante a instalação. A dica neste caso é que você não pode estar dentro da pasta "/mnt/cdrom" ao tentar desmontar o CD, caso contrário o sistema percebe que o diretório está em uso e retorna um erro. Dê os comandos a partir de outro diretório qualquer e você consegue desmontar normalmente. Além das páginas dos respectivos desenvolvedores, você pode baixar os instaladores (e demos) for Linux de muitos dos games portados no: http://darkstar.ist.utl.pt/pub/games/.
Outras ferramentas de instalação
O apt-get é atualmente quase que uma ferramenta universal. Além de ser usado nas muitas distribuições derivadas do Debian (incluindo o Ubuntu), ele foi portado para distribuições derivadas do Red Hat pela Equipe da Conectiva. Embora ainda não seja a opção padrão, ele pode ser instalado no Mandriva, Fedora e em outras distribuições. Mas, além do apt-get em si, existem outras ferramentas de instalação, particulares de cada distribuição. No Mandriva é usando o "rpmdrake", um utilitário gráfico (disponível dentro do Mandriva Control Center) que permite instalar, remover e atualizar programas. Também é possível instalar programas via linha de comando usando os comandos "urpmi programa" (para instalar) e "urpme programa" (para remover). Por padrão, o urpmi simplesmente instala os pacotes a partir dos CDs de instalação, mas é possível adicionar fontes adicionais, como no apt-get. Um site que ajuda nesta tarefa é o: http://easyurpmi.zarb.org/. No Fedora é usado o "yum", que funciona de forma bem similar ao apt-get, baixando os pacotes da Internet, junto com as dependências. Use o comando "yum install pacote" para instalar novos programas e "yum remove pacote" para remover. Existe ainda o comando "yum update" que atualiza de uma vez todos os pacotes do sistema, de forma similar ao "apt-get upgrade". No yum não existe necessidade de baixar uma lista de pacotes, como no "apt-get update", pois ele faz isso automaticamente no início de cada operação. Assim como no urpmi, é possível adicionar repositórios extras, adicionando-os no arquivo "/etc/yum.conf".
Programas de escritório
Ao longo dos anos, o MS Office conquistou uma espécie de hegemonia dentro da plataforma Windows, como a suíte de escritório mais usada. Grande parte disto se
deve ao formato de arquivos usado. A partir do momento em que a maioria começa a usar o Office e começa a lhe mandar documentos criados nele, gostando ou não você acaba sendo obrigado a também ter o Office instalado para conseguir abri-los. Ter uma boa suíte de escritório, que ofereça bons recursos e compatibilidade com os arquivos do Office e ter um bom navegador são pré-requisitos para qualquer sistema operacional ter condições de competir com o Windows. Felizmente, já temos no Linux programas tecnicamente superiores tanto ao Office quanto ao Internet Explorer: o OpenOffice e o Firefox, que inclusive rodam nas duas plataformas.
OpenOffice O OpenOffice dispensa apresentações. Ele é a segunda suíte de escritório mais usada no mundo, atrás apenas do MS Office, disponível tanto em versão Linux, quanto Windows. O OpenOffice possui algumas vantagens importantes sobre o MS Office, como o fato de ser compatível com mais formatos de arquivos, ser capaz de salvar documentos em PDF nativamente (Arquivo > Exportar como PDF) e salvar os documentos num formato aberto, gerando arquivos muito mais enxutos e portáveis. Isso é muito importante para empresas e governos e mesmo para muitos que armazenam grandes quantidades de textos e outros documentos importantes. Usando o formato do OpenOffice você tem certeza que poderá abrir estes documentos daqui a 10, 20 ou 30 anos. No caso do MS Office, não existe esta garantia pois você fica amarrado a um fornecedor específico que controla o formato, no caso a Microsoft. Os arquivos gerados pelo OpenOffice são na verdade arquivos compactados, contendo arquivos separados para o texto, layout e imagens e outros objetos incluídos. As imagens são mantidas em seu formato original (sem perda, ou qualquer tipo de alteração) e o texto é salvo na forma de um arquivo .xml, razoavelmente legível, bem diferente da sopa de bytes gerada pelo concorrente. Examine você mesmo, descompactando um documento qualquer, como se fosse um arquivo zip. Via linha de comando você pode usar o comando "unzip", como em "unzip 1-Intro.sxw":
O fato do formato ser legível, organizado e aberto (o que permite que outros programas incluam suporte, filtros de conversão e outros tipos de ferramentas que permitam lidar com os arquivos), não existe nenhuma possibilidade real de você ter documentos corrompidos, "irrecuperáveis" como acontece no MS Office. Mesmo que uma tragédia acontecesse, ainda seria possível abrir o arquivo e arrumá-lo manualmente, corrigindo ou removendo a parte danificada usando um editor de textos. O OpenOffice é composto pelo Writer, Calc, Draw, Impress e Math, que são respectivamente o editor de texto, planilha, programa de desenho vetorial, gerador de apresentações e editor de equações. Naturalmente, o Writer e o Calc são os mais conhecidos e usados, mas o Draw e o Impress também surpreendem pelos recursos. O OpenOffice 2.0 trouxe um novo componente, o Base, um gerenciador de banco de dados que oferece recursos similares aos do MS Access, além de muitas melhorias na interface, novas funções dentro dos demais aplicativos e um melhor suporte aos documentos do MS Office. Apesar do tamanho do pacote ter aumentado, o desempenho melhorou em relação ao OpenOffice 1.1.3 e anteriores, sobretudo o tempo de abertura. Mesmo que você já utilize uma versão anterior do OpenOffice, é interessante procurar migrar para a nova versão, devido a todas as melhorias. Você pode baixar o OpenOffice no http://www.openoffice.org.br mas, na maioria dos casos, a melhor opção é simplesmente instalar a versão mais recente da sua distribuição favorita e usar a versão incluída. O Kurumin, por exemplo, passou a vir com o OpenOffice 2.0 a partir da versão 5.1, usada para escrever este livro.
Existem algumas dicas com relação ao desempenho do OpenOffice (como desabilitar o Java e aumentar o tamanho dos caches) e dicas para melhorar a qualidade do corretor ortográfico, que veremos a seguir. Enquanto escrevo, os manuais do OpenOffice 2.0 ainda não foram traduzidos para o português. Você pode acompanhar o trabalho de tradução no http://www.openoffice.org.br/, ou ler os documentos originais, em inglês no http://documentation.openoffice.org/manuals/index.html. Outro site com várias dicas é o http://www.tutorialsforopenoffice.org/.
Configurando o OpenOffice
O OpenOffice é um dos aplicativos mais complexos que temos no Linux, com mais linhas de código que o próprio Kernel e um sem número de componentes e bibliotecas diferentes. Ele também inclui suporte a diversas línguas e ao Java, o que torna o conjunto ainda mais complexo :). É possível obter o OpenOffice a partir de dois lugares. No http://www.openoffice.org/, você pode baixar o pacote oficial da Sun, disponibilizado em várias línguas (que é o pacote que vem pré-instalado na maioria das distribuições), enquanto no http://www.openoffice.org.br/ você encontra o pacote localizado para o Brasil, mantido pela equipe responsável pela tradução para o Português do Brasil, ainda na época do StarOffice.
Na pasta de downloads do site, você encontra três pacotes: OOo_2.0_Win32Intel_install.exe: O pacote com o instalador for Windows. OOo_2.0_LinuxIntel_install_debs.tar.gz: O pacote compactado, contendo o OpenOffice empacotado na forma de pacotes .deb. OOo_2.0_LinuxIntel_install_rpms.tar.gz: Tem o mesmo conteúdo, mas empacotados na forma de pacotes RPM. Pela lógica, se você usasse o Ubuntu, Kurumin, ou qualquer outra distribuição derivada do Debian, você baixaria os pacotes contendo os pacotes .deb. Mas, isto nem sempre é uma boa idéia, pois este pacote é gerado para trabalhar no Debian unstable e tem um grande número de dependências, que impedem que seja instalado em muitas distribuições. Ao invés disso, a instalação é mais simples se você baixar o pacote com os pacotes RPM e convertê-los usando o alien. Para isso, comece instalando o alien pelo aptget, como em: # apt-get install alien Descompacte o pacote e, dentro da pasta contendo os pacotes .rpm, rode o comando que faz a conversão: # alien *.rpm Isso vai gerar um conjunto de pacotes com o mesmo nome, porém com a extensão .deb. Você pode em seguida instalá-los usando o comando: # dpkg -i *.deb Na pasta "desktop-integration" você encontra pacotes contendo os ícones do menu iniciar para várias distribuições. Lembre-se de que você deve instalar apenas um deles. O arquivo com os pacotes .deb contém o pacote "openoffice.org-debianmenus", com os ícones para as distribuições derivadas do Debian. Na verdade, esta parte da instalação não é necessária na grande maioria dos casos, pois o OpenOffice já vem pré-instalado na maioria das distribuições. O próximo passo é o corretor ortográfico, uma peça essencial se você realmente usa o OpenOffice no dia-a-dia. O OpenOffice 2.0 é por padrão instalado dentro da pasta "/opt/openoffice.org2.0/". Em algumas distribuições, que incluem pacotes próprios, a pasta de instalação pode ser a "/usr/lib/openoffice2/" ou mesmo "/usr/share/openoffice/", mas este é um daqueles casos em que a ordem não altera o resultado. Dentro da pasta de instalação, acesse o diretório "share/dict/ooo/", que é onde vão os dicionários da correção ortográfica. O corretor completo é composto por três componentes, o corretor propriamente dito, o hifenizador (que entende a divisão das sílabas) e o dicionário de sinônimos (thesaurus), que inclui uma longa lista com variações de palavras, que complementa o dicionário principal. O pacote do OpenOffice da Sun vem apenas com um deles (o corretor). O pacote do OpenOffice.org.br vinha com os três na época do 1.1.3, mas estranhamente
passou a vir apenas com apenas o corretor na versão 2.0, resultando numa correção ortográfica bastante pobre. Você pode verificar o status do seu, em "Ferramentas > Opções > Configurações de Idioma > Recursos de Correção Ortográfica". Se apenas o "OpenOffice.org MySpell SpellChecker" estiver disponível, (como neste screenshot do OpenOffice incluído no Ubuntu 5.10), significa que apenas o corretor está instalado.
Mas, não existe motivo para pânico :). Você pode baixar o restante dos componentes aqui: http://guiadohardware.net/kurumin/download/dics-oo2-kurumin.tar.gz Como o nome sugere, este é o arquivo com os dicionários que reuni para uso no Kurumin, mas que naturalmente pode ser usado em qualquer distribuição. Para instalar, descompacte o arquivo e copie seu conteúdo para dentro da pasta "share/dict/ooo/", dentro do diretório de instalação do OpenOffice, substituindo os arquivos existentes.
Se você escreve textos técnicos, pode baixar também o meu dicionário pessoal, que contém uma lista enorme de termos técnicos, que ao ser instalado faz o corretor deixar de marcar os termos como palavras incorretas. Salve o arquivo na
pasta "share/wordbook/pt-BR/" dentro da pasta de instalação do OpenOffice. Desculpe pelo link longo ;). http://www.guiadohardware.net/kurumin/skel/.openoffice.org2/user/wordbook/kur umin.dic Depois de salvar os arquivos, feche todas as janelas do OpenOffice e abra-o novamente. Isso fará com que ele encontre os novos arquivos e ofereça a opção de usá-los. Volte ao "Ferramentas > Opções > Configurações de Idioma > Recursos de Correção Ortográfica" e você verá que apareceram mais duas opções no campo "Módulos de Idiomas Disponíveis" e o dicionário "kurumin" no campo "Dicionários Definidos pelo Usuário". Marque todas as opções e você ficará com o corretor completo. No campo "opções" marque a opção "Verificar em todos os idiomas". O pacote dos dicionários que disponibilizei contém também os arquivos do corretor em inglês (en_US), de forma que ao ativar esta opção o corretor passará a entender também palavras em inglês (simultaneamente com as em português) o que acaba sendo bastante útil, já que é muito comum usarmos termos e palavras do inglês no dia-adia.
Isso evita que você tenha que baixar e instalar todo o pacote do Openoffice.org.br só porque os corretores não vieram em ordem. O próximo passo é dar uma olhada geral nas configurações, para reduzir o tempo de carregamento e uso de memória. É quase que um consenso que o OpenOffice é pesado e que demora pra abrir. Mas grande parte do "peso" é devido à configuração padrão, que está longe de ser otimizada. A maior parte das configurações é definida durante a compilação e por isso não podem ser alteradas facilmente, mas existem duas configurações simples que podem ser modificadas rapidamente pelo "Ferramentas > Opções" e geram resultados interessantes. A primeira é desativar o Java na opção "OpenOffice.org > Java > Usar um JRE". Na verdade, o Java foi integrado artificialmente ao OpenOffice, como uma tentativa da Sun de integrar os dois produtos, fazendo com que a popularidade do OpenOffice impulsionasse também o uso do Java de uma forma geral. O Java é usado apenas
em macros, algumas funções dentro do Base (o banco de dados incluído no OpenOffice 2.0) e os assistentes para criação de documentos. Desativar o Java reduz o tempo de carregamento do OpenOffice quase pela metade e de quebra diminui o uso de memória em quase 30 MB. Você tem a opção de reativar o Java ao tentar usar qualquer opção que realmente precise dele, de forma que você pode desativá-lo com segurança.
Um dos motivos do OpenOffice demorar mais para abrir e salvar documentos do que o MS Office é o fato de ele salvar todas as imagens e o próprio texto e formatação do documento num formato compactado, que resulta em arquivos brutalmente menores que os do Office, mas que exigem muito mais processamento para serem criados e abertos. Uma forma de reduzir o tempo de carregamento é aumentar o tamanho do cache gráfico, na opção "OpenOffice.org > Memória > Cache Gráfico". Usar um cache maior faz com que o OpenOffice consuma mais memória RAM, mas fique perceptivelmente mais rápido. Se você tem um micro com 512 MB, vai ter bons resultados reservando de 80 a 150 MB dentro da opção "Utilização para o OpenOffice.org". Se, por outro lado, você tem um micro com 256 MB ou menos, vai ter melhores resultados usando um cache menor, de 20 a 40 MB. Ajuste também a opção "Memória por Objeto", que deve ser proporcional ao tamanho total do cache. Ao usar um cache maior, aumente o valor e, ao usar um cache menor, reduza-o.
Desativando o Java, aumentando o tamanho dos caches e fuçando um pouco mais nas configurações é possível fazer o OpenOffice carregar em cerca 7 segundos num Sempron 2800 com 512 MB (primeiro carregamento, sem preloading) e em pouco mais de 3 segundos a partir do segundo carregamento (quando ele já está armazenado no cache de disco) e consumindo bem menos memória RAM que de costume.
Koffice O OpenOffice é o líder disparado em número de usuários e (de uma forma geral) também em recursos. Mas, isso não significa que não existam alternativas. O Koffice é a suíte office do KDE, composta de 11 aplicativos. Eles oferecem a vantagem de serem mais leves que o OpenOffice e possuírem menos funções, o que os torna mais fáceis de usar para muitos. Inicialmente, os aplicativos do Koffice utilizavam um formato de arquivos próprio, com um fraco suporte a documentos criados no MS Office ou OpenOffice. Isso criava um sério problema de interoperabilidade, pois você tinha que salvar um texto em .rtf ou no formato do Word 6 para conseguir abri-lo em outro lugar. A partir da versão 1.4, os aplicativos do Koffice passaram a utilizar o formato OASIS, o mesmo usado pelo OpenOffice 2.0. Isso tornou as duas suítes muito mais compatíveis entre si. Os filtros para arquivos do Microsoft Office também receberam melhorias, o que tornou o Koffice uma alternativa mais promissora. Em resumo, os pontos fortes do Koffice, de uma forma geral, são a leveza (quando usado em conjunto com o KDE), facilidade de uso e a boa integração entre os aplicativos. Os negativos são a falta de muitos recursos avançados e a compatibilidade com arquivos gerados no MS Office e no OpenOffice, que apesar das melhorias das últimas versões ainda está longe de ser perfeita. Os aplicativos que compõe o Koffice (na versão 1.4.2) são: Kword, Kspread e Kpresenter: Estes são os três aplicativos base, respectivamente o editor, planilha e gerador de apresentações, correspondentes ao Word, Excel e Power Point do Office. Kivio e Kchart: Estes dois adicionam funcionalidades aos aplicativos principais. O Kivio é um gerador de fluxogramas (similar ao Visio), enquanto o Kchart permite gerar gráficos e diagramas. Apesar de você poder usá-los de forma autônoma, os fluxogramas e gráficos gerados por eles podem ser integrados aos documentos do Kword, Kspread e Kpresenter. Complementando a dupla, temos também o Kformula, que permite gerar fórmulas matemáticas para uso nos documentos. Karbon: O Karbon é um programa de desenho vetorial, com uma interface que lembra um pouco a do Corel Draw. Apesar de trabalhar por padrão com um formato próprio, ele é compatível com o formato SVG, de forma que é possível editar arquivos criados no Inkscape e outros programas. O Karbon também é capaz de importar os arquivos gerados no Kivio e Kchart, permitindo que você aplique efeitos e faça retoques em geral. Kugar: É um gerador de relatórios. Ao contrário dos outros programas da suíte, ele é desnecessariamente complicado de usar e pouco intuitivo. Um dos problemas fundamentais é que ele não é capaz de importar dados de outros aplicativos, é necessário criar manualmente um arquivo XML com as informações e criar o layout do relatório separadamente, usando o comando "kudesigner" (quem inventou este nome definitivamente não era brasileiro ;). No final você usa o Kugar para carregar os dois arquivos e, finalmente, ter seu relatório. Essa burocracia toda me faz dar razão para as pessoas que preferem usar papel e caneta :-/. Kplato: É um gerenciador de projetos, onde você pode incluir vários objetivos ou tarefas, pessoas encarregadas de executá-las, além de objetivos ou prazos. Ele pode ser usado em diversas áreas, de construções a desenvolvimento de projetos.
Ele é um dos componentes mais novos da suíte, e vem passando por grandes mudanças a cada versão. Kexi: Um gerenciador de banco de dados (como o Base do OpenOffice ou o MS Access), mas ainda em estágio inicial de desenvolvimento. Ele pode trabalhar com uma base de dados local, ou acessar um servidor MySQL ou Postgree. Para trabalhos sérios, é mais aconselhável usar o OpenOffice Base, incluído a partir do OpenOffice 2. Krita: Este é provavelmente um dos componentes mais promissores do pacote. Ele é um editor de imagens, similar ao Gimp e ao Photoshop em diversos aspectos, mas surpreendentemente poderoso e fácil de usar. Koffice-i18n-ptbr: Este pacote contém a tradução para o português do Brasil para todos os programas. É necessário instalá-lo para ter suporte à nossa língua, mesmo que você pretenda instalar apenas um dos componentes. Todos estes pacotes podem ser instalados diretamente via apt-get, como em "aptget install kword kspread kpresenter krita koffice-i18n-ptbr". Você encontra a suíte completa disponível a partir do Debian Sid (o atual testing). Todos os aplicativos do Koffice compartilham do corretor ortográfico padrão do KDE, configurado no Centro de Controle.
Abiword Depois do OpenOffice, o Abiword é provavelmente o melhor substituto para o Word. Ele possui um conjunto equilibrado de recursos e uma interface bem similar à do Word, o que o torna familiar para quem vem do Windows. O Abiword possui dois pontos fortes: ele é leve e independente as bibliotecas do KDE e do Gnome, o que faz com que rode rápido mesmo em micros antigos, ou ao usar outras interfaces gráficas, e ele possui uma boa compatibilidade com os arquivos do Word, que rivaliza em qualidade com os filtros do OpenOffice e estão bem à frente dos filtros do Kword. O Abiword possui também uma versão Windows (além de versões para o Mac OS e diversos outros sistemas), que pode ser baixada no: http://www.abisource.com/. Assim como o Kword, o Abiword é capaz de abrir documentos gerados no OpenOffice, mas a compatibilidade está longe de ser perfeita. Pelo contrário, existe um melhor suporte aos documentos do MS Office (um formato obscuro e complicado) do que ao formato aberto usado pelo OpenOffice, um paradoxo. Ao instalar o Abiword via apt-get, instale também os pacotes "abiword-plugins" (que inclui a maior parte dos filtros de conversão de documentos) e o "aspell-ptbr", que inclui o corretor ortográfico.
Gnumeric O Gnumeric faz par com o Abiword, oferecendo uma opção leve (porém poderosa) de planilha. Ele surpreende pela quantidade de recursos e pela boa compatibilidade com os arquivos gerados no Excel. Segundo muitos, o Gnumeric supera o
OpenOffice Calc em vários aspectos. Ao instalá-lo via apt-get, instale também o pacote "gnumeric-plugins-extra".
Scribus O Scribus é um programa de editoração eletrônica bastante maduro, similar em muitos aspectos ao Page Maker. Um programa de editoração é bem diferente de um editor de textos, pois é mais voltado para a produção do layout da página, oferecendo uma precisão muito maior. Você usa um editor de textos como Abiword para escrever um livro, mas usa um programa de editoração quando precisa fazer o layout de uma revista, ou a própria capa do livro :). Os pontos fortes do Scribus são a facilidade de uso (comparado com outros programas da área) e o excelente suporte a exportação de arquivos em PDF, um ponto em que o Scribus é realmente bem superior a outros programas. Ele inclui suporte a vários recursos incluídos nas últimas versões do formato, como a possibilidade de criar PDFs "inteligentes", com a inclusão de java scripts, que permitem incluir botões, formulários e outras funções. O Scribus foi o primeiro programa a oferecer suporte ao formato PDF/X-3 (um padrão ISO, aberto, para gerar arquivos PDF de alta qualidade, destinados à impressão), antes mesmo das ferramentas da Adobe. Ele também suporta CMYK (a conversão é feita automaticamente ao gerar arquivos PDF) e possui muitas ferramentas de desenho, incluindo o suporte a arquivos em SVG (um padrão para desenhos vetoriais), que podem ser incluídos diretamente no documento e
modificados dentro do próprio Scribus, sem necessidade de ficar importando e exportando. Ele pode também ser expandido através de plugins, escritos em C++, ou scripts, escritos em Python. Veja mais detalhes aqui: http://docs.scribus.net/index.php?&page=plugin_howto. Você pode encontrar vários tutoriais sobre o uso do Scribus no http://docs.scribus.net/.
Assim como o OpenOffice, o Scribus utiliza um formato de arquivo aberto e bastante limpo, baseado em arquivos XML. Isto surpreende, pois os arquivos gerados pelo PageMaker, Quark e outros programas da área são extremamente complexos e ilegíveis, praticamente impossíveis de recuperar quando algo dá errado. No caso do Scribus, é muito mais raro perder trabalhos por causa de arquivos corrompidos e, mesmo nestes raros casos, existe sempre a possibilidade de abrir o arquivo num editor de textos e remover a parte danificada. Por ser um programa bastante popular atualmente, o Scribus é bem simples de instalar na maioria das distribuições, basta instalar o pacote "scribus" usando o aptget, urpmi ou yum. Caso ele esteja aparecendo em inglês, experimente chamá-lo via linha de comando, usando o comando "scribus --lang br". O Scribus se beneficia dos avanços feitos pelo Linux em outras áreas, como no suporte a fontes truetype, as brutais melhorias no sistema de impressão, as melhorias nas bibliotecas gráficas e assim por diante. É a combinação de tudo isso que tem possibilitado o aparecimento de tantos programas profissionais para a plataforma, que realmente podem ser utilizados em ambientes de produção.
Imagem e desenho
O Gimp é o programa de edição de imagens for Linux mais conhecido, mas ele não é mais o único. Atualmente temos também programas como o Krita e o Kolourpaint, que também são editores de imagens, além do Inkscape, Sodipodi e Karbon, que são editores vetoriais. O Blender e o Blender e o PovRay complementam as duas turmas, oferecendo opções para modelagem em 3D. Temos ainda o Tuxpaint, que é um programa de desenho infantil, muito bonito e bem feito.
Gimp O Gimp é sem sombra de dúvida o editor de imagens for Linux mais completo e maduro disponível atualmente. Mesmo se comparado aos programas do Windows, o Gimp leva vantagem sobre a grande maioria; apenas o próprio Photoshop concorre diretamente com ele em recursos. Uma das funções mais interessantes são os scripts disponíveis em "Extras > Script-Fu", que permitem criar logotipos e efeitos diversos de forma muito simples, como este, criado usando a função "Logos > Brilhante".
A maior dificuldade tem a ver mais com a disposição das funções e a interface em geral. Embora o Gimp seja muito similar ao Photoshop em recursos, a interface é organizada de forma diferente e muitos efeitos são obtidos através do uso de duas ou mais ferramentas. O Gimp também não é um programa especialmente fácil de usar para quem não tem uma boa noção sobre o uso de programas gráficos. O programa exige uma certa curva de aprendizado. O Gimp pode ser encontrado em praticamente todas as distribuições. Se ele não vier instalado por padrão, você pode instalá-lo usando o apt-get, yum ou urpmi, chamando diretamente pelo nome, como em "apt-get install gimp", "urpmi gimp" ou "yum gimp". Existem diversos sites em Português com dicas sobre o Gimp, dois dos mais conhecidos são o http://www.ogimp.com.br/ e o http://www.gimp.com.br/. Você
também vai encontrar uma grande quantidade de tutoriais e exemplos no site oficial: http://www.gimp.org/docs/. Se você estiver à procura de um programa mais simples, mais no estilo "paint", pode experimentar o Kolourpaint, que faz parte KDE e também está disponível via apt-get, ou mesmo o Krita, que vimos no tópico sobre o Koffice. O Tuxpaint é um misto entre editor de imagens e programa educativo. Ele é um programa de desenho para crianças (de todas as idades), que conta com vários efeitos sonoros e animações, que tornam o programa muito colorido e atraente. Você pode baixá-lo via apt-get (apt-get install tuxpaint) ou ver mais detalhes no: http://www.newbreedsoftware.com/tuxpaint/.
Inkscape O Inkscape é um programa de desenho vetorial, similar em muitos aspectos ao Corel e ao Illustrator. O principal atrativo do Inkscape é que, apesar do programa conter muitas funções e ser bastante poderoso, a interface e as funções são bem simples de usar, com as ferramentas fazendo o que são projetadas para fazer, sem esquisitices. Ele utiliza por padrão o formato SVG, uma espécie de padrão entre os programas vetoriais. Você pode abrir os arquivos criados no Inkscape diretamente no Illustrator, ou importá-las no Corel. Eles também oferecem a opção de exportar em SVG, de forma que existe um bom nível de intercompatibilidade.
Clicando em "Ajuda > Tutoriais" você tem acesso aos arquivos de ajuda do Inkscape, que são documentos editáveis, em SVG. Esta é uma idéia bem interessante, pois todos os campos e exemplos podem ser editados através do próprio Inkscape, permitindo que você realmente coloque a mão na massa enquanto está lendo, editando os exemplos e testando as funções. Se os arquivos não estiverem disponíveis, simplesmente reinstale o Inkscape. Você pode fazer isso via apt-get usando o comando "apt-get install --reinstall inkscape". Você pode encontrar uma quantidade muito grande de cliparts e desenhos editáveis e de livre distribuição (a maior parte em SVG), bem úteis para treinar e usar no dia-a-dia no: http://www.openclipart.org/. O Inkscape surgiu em 2003 como uma derivação do Sodipodi. Desde então os dois programas têm sido desenvolvidos de forma mais ou menos separada, mas a maior parte das funções são muito similares em ambos. A principal diferença é que o Inkscape utiliza uma interface "estilo corel", com as barras de ferramentas incluídas na janela principal, enquanto o Sodipodi é baseado em menus flutuantes. O Sodipodi também pode ser instalado via apt-get: "apt-get install sodipodi".
Blender Originalmente, o Blender utilizava uma licença mista, com algumas partes do programa cobertas pela GPL, enquanto a maior parte era proprietária. Apesar disso, o Blender era gratuito, tanto na versão Linux quanto na versão Windows. Porém, a empresa que desenvolvia o Blender passou pro problemas financeiros e acabou sendo comprada. Acontece que os compradores estavam mais interessados na propriedade intelectual e no quadro de funcionários e demonstraram pouco interesse em continuar o desenvolvimento do Blender. O Blender já tinha então muitos fãs. Um grupo se uniu e propôs a compra dos direitos sobre o Blender por 100.000 euros. A proposta foi aceita e o dinheiro foi arrecadado através de uma campanha feita via Web. O resultado é que depois de resolvida toda a papelada, o Blender passou a ser licenciado integralmente sob a GPL e a ser desenvolvido num ritmo muito rápido. A página oficial é a http://www.blender.org, onde você encontra uma grande quantidade de tutoriais e trabalhos desenvolvidos nele. Existe também uma página em português no http://blender.com.br. A instalação via apt-get é bem simples, basta usar o comando "apt-get install blender". Outra opção é o PovRay é um programa profissional de modelagem em 3D, concorrente do Blender. Além da versão for Linux, existem ports para o Windows e OSX. Na página oficial você pode encontrar uma grande quantidade de documentação e vários projetos de exemplo: http://www.povray.org. Ao instalar via apt-get, baixe também o kpovmodeler, que é uma interface para ele. O comando fica: "apt-get install povray kpovmodeler".
Ksnapshot No Windows, a forma mais comum de tirar um screenshot é apertar a tela print screen, colar a imagem em algum programa de edição de imagem e finalmente salvá-la num arquivo. No KDE, você pode fazer isso de uma forma muito mais simples usando o Ksnapshot. O Ksnapshot é um programa extremamente prático. Ao chamá-lo, ele automaticamente tira um screenshot da tela atual. Você pode salvar este screenshot diretamente, basta escolher um nome de arquivo. O melhor de tudo é que ele salva as imagens já em .png (compactadas de uma forma extremamente eficiente, mas sem perda de qualidade), com a opção de gerar imagens em .gif, .jpg ou outros formatos. Você pode criar um atalho de teclado no Painel de Controle do KDE, de forma que ele seja executado ao pressionar a tecla print screen. Além de tirar screenshots da tela inteira, ele permite também tirar screenshots de janelas. Para isso, basta marcar a opção "Janela sob o cursor". Você pode estabelecer também um tempo de espera, 5 segundos, por exemplo, dando tempo de chegar até algum menu ou opção. Existe também uma função para imprimir diretamente o screenshot.
Não é preciso dizer que ele é uma ferramenta extremamente prática para quem deseja desenvolver apostilas e tutoriais. Você pode tirar rapidamente uma grande quantidade de screenshots mostrando todos os menus de um determinado programa e já salvá-los num formato compactado, pronto para o uso. Junto com o OpenOffice, o Ksnapshot é um dos programas que mais estou utilizando no desenvolvimento deste livro, por isso não poderia deixar de indicá-lo aqui :).
Navegadores
O Navegador é provavelmente a ferramenta mais importante hoje em dia, um recurso básico que damos como garantido em qualquer sistema que se preze. Existem três grandes navegadores disponíveis no Linux: o Firefox, Konqueror e Opera, seguidos por projetos menores, de navegadores especializados, como o Epiphany (um navegador baseado no Firefox, que usa as bibliotecas do Gnome) e até navegadores leves, destinados a micros antigos e dispositivos embarcados, como o Dillo.
Firefox No começo existia o Mosaic, que é considerado o primeiro navegador web moderno. Depois veio o Netscape, que foi durante muito tempo uma espécie de navegador padrão, até ser desbancado pelo IE, que passou a vir integrado no Windows. O Netscape teve então seu código aberto e se tornou a base para o projeto Mozilla, que além de navegador, tinha um cliente de e-mails, editor html e até um cliente de IRC. Justamente por conter tantos componentes, o Mozilla era grande e pesado. Surgiram então versões especializadas, que contém apenas um dos componentes do pacote e por isso são mais rápidas.
O primeiro foi o Phoenix, que depois mudou de nome para Firebird e finalmente Firefox, o nome definitivo. O cliente de e-mail do Mozilla se transformou no Thunderbird e o antigo Composer, que vinha sem muitas modificações desde o Netscape 4.5, ganhou vida própria na forma do NVU, um editor html visual que tem a equipe de desenvolvimento parcialmente financiada pela Linspire. O Firefox é uma espécie de "jóia da coroa" entre os aplicativos de código aberto. Além de ser o navegador mais usado no Linux, ele é usado como navegador padrão por mais de 10% dos usuários Windows, desafiando a hegemonia do IE. É bem provável que você já utilize o Firefox no dia-a-dia, então, ao invés de perder tempo falando sobre os recursos e a configuração básica, vou aproveitar para falar sobre a instalação de plugins, um recurso muitas vezes negligenciado na maior parte das distribuições. Ao contrário do que tínhamos a alguns anos atrás, atualmente temos plugins para quase todos os formatos de vídeo, animações e outros tipos de arquivos encontrados na Web. É possível assistir vídeos via streaming, fazer com que arquivos PDF sejam abertos diretamente ao clicar sobre um link (com a ajuda do Acrobat Reader) e assim por diante. Os plugins que comento aqui já vêm instalados por padrão no Kurumin, mas é útil conhecer os passos para instalá-los manualmente, tanto para instalá-los em distribuições que não os tragam por padrão, quanto para corrigir problemas. A configuração que descrevo aqui é uma espécie de "mínimo denominador comum", escrito de forma genérica, para funcionar em várias distribuições. Em muitos casos, você pode instalar o Java, Acrobat, ou mesmo o Flash simplesmente instalando um pacote. Mas, quando tudo mais falhar, siga as dicas abaixo :).
Suporte a Flash: Para instalar o Flash no Firefox, baixe o pacote for Linux (o arquivo "install_flash_player_7_linux.tar.gz") disponível no: http://www.macromedia.com/go/getflashplayer. Apesar da extensão, o pacote contém o programa já compilado. Basta descompactar, usando o comando "tar -zxvf flash_linux.tar.gz", ou usando o gerenciador de arquivos e, em seguida, copiar os arquivos "flashplayer.xpt" e "libflashplayer.so" para dentro da pasta de plugins do Firefox, que na maioria das distribuições é a "/usr/lib/mozilla-firefox/plugins/". Para habilitar o Flash também no Konqueror, clique em "Configurações > Configurar Konqueror > Plugins". Veja se a pasta de plugins do Firefox está na lista e a adicione caso necessário. Depois é só clicar no "Instalar novos plugins" para que ele detecte e ative o plugin.
Suporte a Java: Embora seja gratuito, o Java não é open-source, nem livre. O desenvolvimento é controlado pela Sun e mesmo a distribuição do pacote está sujeita a um contrato de licença. Isto faz com que muitas distribuições não incluam o Java, novamente obrigando-o a instalá-lo manualmente. Nestes casos, você tem duas opções. A primeira é baixar a JRE da Sun, que ativará o suporte não apenas no Firefox, mas também em outros programas, como o OpenOffice. O primeiro passo é baixar o instalador no: http://java.sun.com/j2se/. Escolha entre o "Linux RPM in self-extracting file" e o "Linux self-extracting file". Os dois são arquivos executáveis, que exibem o contrato de licença e se autodescompactam. A diferença é que o primeiro gera um arquivo RPM instalável da maneira usual e o segundo um arquivo binário que deve ser executado para concluir a instalação. O plugin para o Firefox será instalado na pasta "/usr/lib/j2re1.5/plugin/i386/ns7/". Para instalá-lo, você precisa criar um link, dentro da pasta "plugins" no diretório de instalação do Firefox apontando para o arquivo libjavaplugin_oji.so dentro da pasta de instalação do Java. É importante ressaltar que você não deve copiar o arquivo (pois ele não funciona fora da pasta original) mas sim criar um link para ele. Se o Firefox está instalado dentro da pasta "/usr/lib/mozilla-firefox/", por exemplo, o comando seria: # ln -sf /usr/lib/j2re1.5/plugin/i386/ns7/libjavaplugin_oji.so \ /usr/lib/mozilla-firefox/plugins/ A pasta de instalação do Java ou do Firefox podem mudar de distribuição para distribuição. Se não estiver encontrando, experimente usar o comando "locate", como em "locate firefox". Ele retorna os nomes de todas as pastas e arquivos com "firefox" no nome. Se você usa alguma distribuição derivada do Debian, existe um pacote extra-oficial disponível no "ftp.debian-unofficial.org", que facilita a instalação.
Para usá-lo, você precisa primeiro adicioná-lo à lista de fontes do apt-get. Para isso, abra o arquivo "/etc/apt/sources.list" e adicione a linha: deb http://ftp.debian-unofficial.org/debian sarge main contrib non-free Rode o comando "apt-get update" para que o apt-get atualize o banco de dados dos pacotes disponíveis e instale o Java com o comando: # apt-get install sun-j2se5.0-jre-binary O pacote inclui um script que cria automaticamente o link dentro da pasta de plugins do Firefox durante a instalação.
RealPlayer: Embora pouco divulgado, a Real mantém uma versão do Real Player for Linux desde os tempos da versão 7. Você pode baixar o arquivo no "http://www.real.com/linux?". Baixe o arquivo "RealPlayer10GOLD.bin". Este é um arquivo binário, desenvolvido para funcionar em qualquer distribuição. Para instalá-lo, você precisa apenas marcar a permissão de executável para o arquivo e em seguida executá-lo, como root: # chmod +x RealPlayer10GOLD.bin # ./RealPlayer10GOLD.bin O default do programa de instalação é simplesmente instalar o programa dentro da pasta onde ele foi executado. Se você executá-lo dentro do seu diretório home, ele vai criar a pasta "/home/$USER/RealPlayer/". Isto permite fazer uma instalação particular, dentro do seu home e válida apenas para seu login. Neste caso você pode executar o arquivo usando seu login de usuário, não existe necessidade de executá-lo como root. Para fazer uma instalação válida também para o root e outros usuários, instale-o numa pasta de sistema, como a "/usr/local/RealPlayer/". O pacote usa um instalador da velha guarda, um script com uma interface simples, em modo texto. No final ele pergunta: "Configure system-wide symbolic links? [Y/n]:". Esta opção cria links que permitem que você chame o programa pelo nome, sem precisar dar o caminho completo. A maioria dos instaladores fazem isso sem ficar puxando sua calça pedindo confirmação, mas no RealPlayer isso exige um "Y" adicional. O script é tão chato e detalhista que em seguida pergunta: "enter the prefix for symbolic links [/usr]:". Responda "/usr/bin/" para que ele crie o link na pasta correta. A partir daí você pode abrir o programa executando o comando "realplay". Crie um ícone no menu para facilitar. O próprio instalador se encarrega de instalar o plugin no Firefox, que permite assistir aos vídeos disponíveis na Web, que consiste em criar os links "nphelix.so" e "nphelix.xpt" dentro da pasta de plugins do Firefox, apontando para os arquivos reais, localizados na pasta "mozilla/", dentro do diretório de instalação do RealPlayer.
Ao clicar sobre o link de um arquivo .RA ou .RAM no Firefox pela primeira vez, ele perguntará o que fazer com o arquivo. Marque a opção "abrir com: Programa..." e indique a localização do executável do RealPlayer ("/usr/local/RealPlayer/realplay", por exemplo) e marque a opção "Memorizar a decisão para este tipo de arquivo". Alguns links abrem os vídeos dentro de janelas popup e só funcionam se você desabilitar a opção "Bloquear janelas popup" na configuração do Firefox.
O plugin para o Firefox é a principal aplicação do RealPlayer, pois o suporte a outros formatos (no RealPlayer) é muito fraco, superado com muitas vantagens por programas abertos, como o Kaffeine, Xine e Mplayer. Para os vídeos em formato WMF a melhor solução é usar o kaffeineplugin ou o mplayerplugin (veja mais detalhes a seguir), com o pacote "w32codecs" instalado. Nas distribuições derivadas do Debian, você pode instalar a partir do debianunofficial, assim como o Java. Depois de adicionar a linha "deb http://ftp.debianunofficial.org/debian sarge main contrib non-free" no "/etc/apt/sources.list" e rodar o "apt-get update", instale o Real Player com o comando: # apt-get install realplayer10-binary O RealPlayer em si é proprietário, mas a maior parte do código fonte está disponível na forma do HelixPlayer, que a Real desenvolve com ajuda da comunidade e usa como base para o RealPlayer comercial. O HelixPlayer oferece suporte a muitos formatos, mas ironicamente não aos vídeos no formato RealMedia, que utilizam um conjunto de sistemas anticópia proprietários, que não podem ter o código fonte divulgado. Você encontra informações sobre o HelixPlayer no https://helixcommunity.org/.
Acrobat Reader: Existem vários leitores de PDF livres, como o Kghostview e o Xpdf e as distribuições geralmente trazem pelo menos um já instalado e configurado. O Kghostview, por exemplo, faz parte do pacote KDE e se integra muito bem com o Konqueror. Ao clicar num link para um arquivo PDF numa página Web qualquer, ele já o abre automaticamente numa janela dentro do Navegador, como se fosse uma página html.
Mesmo assim, muita gente prefere instalar o Acrobat Reader for Linux. O principal motivo é que o Acrobat Reader oferece uma qualidade de visualização melhor que a dos leitores livres, mantendo a qualidade do texto e imagem ao utilizar vários níveis de zoom. Alguns arquivos PDF que ficam com as fontes borradas no Kghostview abrem normalmente no Acrobat Reader for Linux. Você pode baixá-lo no http://www.adobe.com/products/acrobat/readstep2.html. Ao contrário das versões anteriores, o arquivo de instalação do Acrobat 7 tem quase 40 MB, incluindo muitas fontes TrueType adicionais. Para instalar, descompacte o arquivo, acesse a pasta que será criada, logue-se como root (su) e inicie a instalação: $ tar -zxvf AdbeRdr701_linux_enu.tar.gz $ cd AdobeReader/ $ su <senha> # ./INSTALL Por padrão, o Acrobat será instalado na pasta "/usr/local/Adobe/Acrobat7.0/". Em algumas distribuições, o instalador reclamará da falta de um pacote chamado ed (um editor de texto, usado pelo instalador para exibir o contrato de licença). Ele faz parte da maioria das distribuições, por isso não deverá ser problema instalá-lo. No Debian e derivados, por exemplo, você pode instalá-lo com o comando "apt-get install ed". Se você manteve o default do instalador, o comando para chamar o Acrobat Reader será "/usr/local/Adobe/Acrobat7.0/bin/acroread", o que não é muito prático de digitar. Para resolver isso, crie um link com o comando: # ln -s /usr/local/Adobe/Acrobat7.0/bin/acroread /usr/bin/acroread A partir daí você poderá chamá-lo simplesmente digitando "acroread" num terminal. Aproveite para criar também um atalho no menu do KDE. Existem duas formas de fazer isso. A primeira é chamar o kmenuedit, que é o editor de menus do KDE. A segunda é criar diretamente o ícone dentro da pasta "/usr/share/applnk/" (para isso, abra o Konqueror como root). Para concluir, você pode aproveitar para associar os arquivos PDF com o Acrobat Reader, isso fará com que os arquivos sejam automaticamente abertos nele quando você clicar sobre o arquivo ou link no Konqueror ou outro aplicativo do KDE. Para isso, abra o Centro de Controle do KDE (kcontrolcenter) e vá em Componentes do KDE > Associações de arquivos > Application > PDF e mude o comando do aplicativo de "kgohostview" (ou o que estiver configurado) para "acroread". Para que o Acrobat se integre também com o Firefox, você deve criar um link dentro do diretório de plugins do Firefox para o arquivo nppdf.so, que fica dentro da pasta "/usr/local/Adobe/Acrobat7.0/Browser/intellinux/", como em: # ln -s /usr/local/Adobe/Acrobat7.0/Browser/intellinux/nppdf.so \ /usr/lib/mozilla-firefox/plugins/
Ao usar o debian-unofficial, você pode instalar o Acrobat usando o apt-get: # apt-get install acroread Neste caso, o plugin para o Firefox (incluindo o link) é instalado através de um pacote adicional, o mozilla-acroread: # apt-get install mozilla-acroread
Kaffeine e Mplayer: O RealPlayer é útil apenas para vídeos em seu próprio formato. Para assistir a vídeos em QuickTime ou no formato WMF, você pode escolher entre usar os plugins do Kaffeine ou do Mplayer. Estes dois plugins detectam tags de abertura de vídeo ou áudio dentro das páginas e carregam os arquivos no player. Em ambos os casos, você precisará também do pacote w32codecs, que contém um conjunto de dlls do Windows, que são executadas com uma mãozinha da biblioteca do Wine, dando suporte a mais formatos de vídeo, incluindo vídeos em QuickTime e até no formato do Windows Media Player. A existência do win32codecs e outros pacotes semelhantes são um indício interessante de novos tempos. Hoje em dia, existem projetos abertos para suporte a quase todo tipo de formato e, no caso dos formatos mais secretos ou complicados, é possível utilizar a biblioteca do Wine para fazer com que a biblioteca ou o próprio programa for Windows rode no Linux. Isto pode ser feito diretamente, instalando o Wine na sua máquina ou, de uma forma mais refinada, pelos próprios desenvolvedores. O Kaffeine pode ser encontrado na maioria das distribuições que utilizam o KDE. O kaffeineplugin é um programa relativamente pequeno, que apenas direciona os arquivos para o Kaffeine propriamente dito. Em algumas distribuições, o plugin é incluído dentro do próprio pacote "kaffeine" e em outras (como no Debian) temos dois pacotes separados, com o plugin oferecido na forma do pacote "kaffeinemozilla", que precisa ser instalado separadamente. Com ele instalado, você encontrará o arquivo "kaffeineplugin.so" (junto com outros dois arquivos) na pasta "/usr/lib/mozilla/plugins/"; eles são colocados nesta pasta mesmo que o Mozilla não esteja instalado no sistema. Ao usar outro navegador, como o Firefox, você deve criar um link simbólico dentro da pasta de plugins do navegador, apontando para a pasta "/usr/lib/mozilla/plugins/" (assim como no caso do Java) e não tentar copiar o arquivo diretamente. Para criar o link, use o comando abaixo, prestando atenção na hora de indicar a pasta onde o Firefox está instalado. Em caso de dúvida, confirme a localização dos arquivos usando o comando "locate": # ln -s /usr/lib/mozilla/plugins/kaffeineplugin.so \ /usr/lib/mozilla-firefox/plugins Uma observação importante é que ao instalar simultaneamente o plugin do RealPlayer e o Kaffeineplugin, o Kaffeineplugin será o default, pois os plugins são inicializados em ordem alfabética e o K vem antes do R. Isto faz com que o Kaffeineplugin passe a sempre tentar abrir os arquivos .RAM (aos quais ele não tem suporte), ao invés de deixar a tarefa para o RealPlayer.
A solução neste caso é renomear o link para o Kaffeineplugin, de forma que o nome comece com outra letra. Desta forma, o Firefox primeiro consulta o RealPlayer (que se oferece para abrir apenas arquivos do seu próprio formato) e consulta o Kaffeineplugin no caso de outros formatos de arquivos. Um "z" no início no nome resolve o problema. Para isso, basta remover o link antigo e criar outro, indicando o novo nome do arquivo: # ln -s /usr/lib/mozilla/plugins/kaffeineplugin.so \ /usr/lib/mozilla-firefox/plugins/zkaffeineplugin.so Ao abrir uma página com vídeo, o Kaffeine Starter entra em ação, carregando o vídeo e abrindo uma janela separada do Kaffeine Player, que se encarrega de exibir o vídeo. O grande problema com os formatos de streaming são as chaves de encriptação usadas para dificultar a cópia dos arquivos. O Kaffeine suporta muitas destas chaves, o que permite assistir à maior parte dos vídeos.
Em muitos casos, os vídeos são linkados dentro da página usando tags ActiveX que só funcionam no Internet Explorer (e vão continuar assim, pois o ActiveX é uma tecnologia insegura e que caminha para se tornar obsoleta). Neste caso é uma opção do webdesigner, que optou por desenvolver uma página compatível apenas com um navegador. Você pode retribuir o favor simplesmente acessando outra página ;).
Konqueror O Konqueror é o browser nativo do KDE. Além de navegador, o Konqueror também serve como gerenciador de arquivos e pode ser expandido com novas funções. Na verdade, o Konqueror em si é composto por apenas algumas poucas milhares de linhas de código, responsáveis por criar a interface. Todas as funções usadas nele fazem parte do Kpart, uma biblioteca de componentes que pode ser usada em
qualquer aplicativo do KDE, composta de coisas como funções para abrir menus, renderizar páginas html e assim por diante. O Konqueror é intimamente relacionado ao KDE e as novas versões do navegador acompanham as novas versões do ambiente. É praticamente impossível atualizar o Konqueror sem atualizar junto as bibliotecas base do KDE e a maior parte do ambiente, por isso ele é o tipo de aplicativo que já vem pré-instalado e você não atualiza com tanta freqüência. Todas as distribuições que trazem o KDE, instalam o Konqueror automaticamente. Nas primeiras versões o Konqueror era bastante deficiente na parte de java-script e suporte a plugins, mas isso foi gradualmente mudando e ele tornou-se um browser bastante maduro a partir do KDE 3.0. Uma curiosidade é que o Safari (o navegador do MacOS X) é baseado no código fonte do Konqueror. A partir do KDE 3.1 o Konqueror adquiriu também o suporte a tabs (como no Firefox) e um corretor ortográfico integrado, que corrige suas barbeiragens ao postar num fórum ou blog. A configuração dos plugins vai em "Configurações > Configurar Konqueror > Plugins". Aqui você configura as pastas onde o Konqueror busca por plugins. Ao invés de exigir uma configuração específica, o Konqueror é desenvolvido para ser compatível com os plugins do Firefox ou Mozilla; por padrão ele já vem configurado para procurar nas pastas de plugins dos demais navegadores. Ou seja, ao instalar o Flash ou Java no Firefox ou Mozilla, o plugin também será detectado pelo Konqueror. Ele procura por novos plugins durante a abertura do KDE ou ao usar o botão de procura manual. No caso de distribuições que trazem apenas o Konqueror (como o Slax), sem o Firefox, você pode instalar os plug-ins seguindo as receitas anteriores copiando os arquivos ou criando os links dentro da pasta "/usr/local/netscape/plugins/" ou qualquer outra incluída na lista do Konqueror. Como gerenciador de arquivos, o Konqueror também oferece muitos recursos. Se você, por exemplo, tem um monte de imagens dentro de uma pasta e quer fazer um álbum de fotos, vá em "Ferramentas > Criar Álbum de Imagens". Clicando com o botão direito sobre um arquivo e indo em "Ações", você abre um menu de contexto com opções relacionadas ao tipo de arquivo, como gravar um CD, mandar por e-mail, etc. No caso de uma imagem, aparecem opções para redimensionar, girar, converter para jpg, gif ou png, entre outras opções.
Opera O Opera é um navegador leve, independente do KDE e Gnome, o que o torna a opção preferida de muita gente que usa micros antigos. Ele consegue ser um pouco mais rápido que o Firefox no geral e oferece um bom suporte a páginas problemáticas, desenvolvidas especificamente para o IE, ou com código mal escrito. Outro ponto forte é que ele oferece uma quantidade muito grande de opções de personalização, desde opções para não carregar imagens, ou exibir apenas imagens incluídas no cache do navegador (útil quando a conexão estiver lenta), até uma opção de exibir a página como ela seria vista num palmtop (útil para webmasters que querem oferecer esta opção). Inicialmente, o Opera era um aplicativo comercial, depois passou a ser oferecida uma versão gratuita, que exibia um banner de propaganda e, recentemente ele passou a ser inteiramente gratuito (embora sem ter o código aberto). Você pode baixar a versão mais recente no http://opera.com/download/. A empresa faz um trabalho surpreendente de empacotamento, oferecendo pacotes específicos para várias distribuições (no caso do Kurumin 5.1, por exemplo, você baixaria o pacote para o Debian Etch) e também um par de pacotes genéricos (.rmp e .tar.gz), que podem ser usados nas poucas distribuições que não são diretamente suportadas.
NVU Junto com o OpenOffice Writer (usado com a opção de salvar em html), o NVU é um dos melhores editores html visuais. A longo prazo, a idéia é concorrer com o Dreamweaver, que apesar das deficiências é um dos programas mais usados. A Macromedia já anunciou que está trabalhando numa versão nativa do Dreamweaver, portada através da libwine, mas as versões atuais já rodam de forma aceitável no Linux, através do Wine ou do CrossOver Office. O NVU está disponível no apt-get a partir do Debian Etch (ou seja, está disponível apenas ao utilizar o Testing). Para instalá-lo, use o "apt-get install nvu". Também existe a opção de baixar um pacote genérico, que funciona em várias distribuições no: http://www.nvu.com/.
E-Mail
Hoje em dia, a maioria das pessoas simplesmente usa algum webmail, que pode ser acessado de qualquer lugar, ao invés de um cliente dedicado, como nos velhos tempos. Um dos fatores que apressou esta mudança foram os inúmeros problemas de segurança no Outlook e Outlook Express. Felizmente, a Microsoft ainda não resolveu desenvolver uma versão Linux da dupla, de forma que você pode ter um ambiente muito mais seguro para ler seus e-mails :). Alguns dos leitores mais usados no Linux são:
Mozilla Thunderbird O Thunderbird é o primo-irmão do Firefox, que surgiu do desmembramento do Mozilla. O principal diferencial dele em relação a outros programas é um poderoso filtro anti-spam, que aprende durante o uso, tornando-se cada vez mais preciso. Para ativá-lo, marque a opção "Ferramentas > Anti-Spam > Filtro Adaptável > Identificar Spam ao receber mensagens desta conta". Na aba "Opções" você pode configurar o que fazer com as mensagens marcadas como spam; o padrão é movelas para a pasta "Spam". O filtro é desenvolvido de forma a preservar os e-mails úteis, excluindo mensagens apenas quando houver certeza. Depois de ativar o filtro, você precisa "treiná-lo", indicando o que é e o que não é spam, de forma que ele identifique um padrão e passe a agir de forma autônoma. Sempre que receber um spam, clique com o botão direito sobre a mensagem e use a opção "Marcar > Como Spam" ou pressione a tecla "J". Marque também as mensagens importantes como não Spam, pressionando "Shift+J". Na aba "Ferramentas > Anti-Spam > Opções" você pode configurar o que fazer com as mensagens marcadas como spam, onde o padrão é move-las para a pasta "Spam" e deletá-las depois de alguns dias. É importante que nos primeiros dias você cheque as mensagens movidas para a pasta e marque manualmente como não spam qualquer mensagem boa classificada de forma equivocada pelo filtro. Depois de alguns dias de treinamento, o filtro passará a eliminar o grosso dos spams e, depois de algumas semanas, passa a eliminar quase tudo. Quanto mais você o treina, mais ele se torna apurado. O Thunderbird guard os e-mails e preferências dentro da pasta ".mozillathunderbird", dentro do seu diretório home. Basta conservar esta pasta ao reinstalar o sistema, e seus e-mails e filtros continuarão intactos. Por ser um programa bastante popular, é possível encontrar o Thunderbird na maioria das distribuições. Nas derivadas do Debian, você pode instalá-lo via aptget: # apt-get install mozilla-thunderbird # apt-get install mozilla-thunderbird-locale-pt-br Você pode também usar a versão disponível no: http://www.mozilla.org.br/. Esta versão não precisa ser instalada, basta descompactar a pasta em qualquer diretório (você pode inclusive instalar dentro do seu diretório home, sem nem precisar usar a conta de root) e executar o comando "./thunderbird" dentro da pasta. Uma observação importante é que esta versão armazena os e-mails dentro da pasta ".thunderbird" e não ".mozilla-thunderbird", como na versão disponível no apt-get. Isso causa uma certa confusão ao trocar de uma versão para outra, pois um não consegue encontrar as pastas de e-mails criadas no outro. A solução mais simples neste caso é simplesmente fazer um link. Se seus e-mails estão na pasta ".mozilla-thunderbird" e você quer usar a versão do mozilla.org.br, que usa a pasta ".thunderbird", use o comando: $ ln -s ~/.mozilla-thunderbird ~/.thunderbird
Crie o link, não renomeie simplesmente a pasta, pois na configuração de cada conta vai o caminho completo até a pasta onde estão os arquivos. Ao renomear a pasta, o Thunderbird reconhece o profile, mas não consegue encontrar os e-mails. Criando o link, tudo funciona perfeitamente.
Evolution Enquanto o Thunderbird é mais voltado para o público doméstico, o Evolution é um cliente de e-mails voltado para o público corporativo, incluindo também funções de agenda, suporte a Palms e, principalmente, suporte a LDAP e servidores MS Exchange, o que permite a integração com a estrutura de e-mail e gerenciamento de tarefas usada em muitas empresas. Para ativar o suporte a servidores MS Exchange, você deve instalar também o pacote "ximian-connector", disponível no http://www.gnome.org/projects/evolution/. Ao usar o Debian Etch (testing), você pode instalá-lo junto com o Evolution via apt-get: "apt-get install evolution ximianconnector".
Kmail e Sylpheed Tanto o Thunderbird quanto o Evolution não são exatamente programas leves. Ao usar o KDE, uma opção de programa mais simples e leve é o Kmail, que pode ser instalado via apt-get. Dependendo da distribuição, ele está disponível na forma do pacote "kmail", ou como um componente incluído no pacote "kdepim". Um dos pontos fortes do Kmail é a preocupação com a segurança. Em geral, todos os clientes de e-mail for Linux são bastante seguros, mas a equipe do Kmail se esforça para ficar um pouco à frente neste quesito. Outro ponto forte é que ele se integra bem com outros aplicativos do KDE, como o Korganizer (agenda de compromissos), Konqueror e até mesmo com o Knotes, que permite criar notas rápidas. O Kmail faz par com o Knode, um leitor de news. Prosseguindo na categoria dos pesos leves, encontramos também o Sylpheed, cujo principal objetivo é ser um leitor de e-mails leve, com uma interface simples de usar. Embora não tenha tantos recursos quanto o Evolution, não seja integrado a outros aplicativos do KDE, como o Kmail, nem conte com um filtro anti-spam tão apurado quanto o do Thunderbird, ele é uma boa opção para quem usa o Fluxbox ou outra interface leve num micro mais antigo. Já cheguei a usar o Sylpheed em conjunto com o IceWM num 486 com 16 MB de RAM :).
Mensagem e Voz
Me lembro que em 98, quando estava dando minhas primeiras cabeçadas no Linux, a única opção para usar o ICQ era uma versão em Java, pesada e que travava de vez em quando. Felizmente estes tempos passaram. Hoje em dia, praticamente usa algum protocolo de mensagem instantânea. Em número de usuários, o ICQ e o MSN dominam, mas existem outros muito usados como o AIM e mais recentemente o Jabber, que é uma tentativa de criar um protocolo de mensagem instantânea open source. Devem existir hoje em dia de 100 a 200 clientes diferentes, que variam em recursos, mas, para poupar tempo, vou comentar apenas os relevantes.
Gaim O Gaim é um dos mensageiros mais antigos. As primeiras versões tinham poucos recursos e eram baseadas no GTK 1.x, o que também não ajudava no visual. Mas, a partir da versão 0.6, o Gaim foi portado para o GTK 2, ganhou muitos novos recursos e passou a seguir o human interface guidelines, um padrão internacional de usabilidade. Tudo isso contribuiu para quem o Gaim se tornasse um dos mensageiros mais usados no Linux, adotado por padrão em diversas distribuições. A interface do novo Gaim é bem simples e intuitiva para novos usuários. A tela de abertura tem apenas três opções: Contas, Preferências e Conectar. A tela de adicionar uma nova conta é novamente bem simples, você apenas escolhe o protocolo que será usado, usuário, senha e apelido. São suportados o ICQ, AIM,
MSN, Yahoo, IRC e Jabber, além de protocolos mais incomuns como o TOC, Zephyr, Gadu-Gadu e até o protocolo de conversação usado pelo antigo Napster. Uma das grandes vantagens do Gaim é que você pode configurar várias contas e usar todas simultaneamente, uma solução para quem usa ICQ, MSN e outros protocolos ao mesmo tempo. A página do projeto é a http://gaim.sourceforge.net.
Kopete O Gaim e o Kopete são similares em muitos aspectos, ambos suportam o uso de vários protocolos simultaneamente e incluem muitas funções. A principal diferença é que o Kopete é baseado nas bibliotecas do KDE. Além das diferenças estéticas, o Kopete oferece mais opções de personalização, embora seja ao mesmo tempo um pouco menos simples de usar. Uma observação importante, que se aplica tanto ao Kopete quanto ao Gaim, é que é sempre recomendável manter uma versão recente instalada. Os protocolos de mensagem usados pelo ICQ e (principalmente) pelo MSN mudam com uma certa freqüência, fazendo com que versões antigas dos programas comecem a apresentar erros estranhos, ou simplesmente deixem de conectar na rede quando passa a ser usada uma nova versão do protocolo. Por exemplo, a partir de 15/10/2003 a Microsoft tornou mandatário o uso do MSN 9, a nova versão do protocolo do MSN, que havia sido lançada poucos meses antes. Depois desta data, mesmo os usuários Windows teriam que atualizar o programa. O novo protocolo é fechado, não documentado e foram empregadas várias técnicas para dificultar o uso de engenharia reversa. Mesmo assim, em 09/09/2003, mais de um mês antes da mudança, já estava disponível o Kopete 0.7.2, compatível com o novo protocolo. Uma nova mudança ocorreu em Maio de 2005, novamente precedida pelo lançamento de uma versão atualizada do Kopete (o 0.10.1), compatível com o novo protocolo.
Para instalar o Kopete use o "apt-get install kopete" (no Debian) ou "urpmi kopete" (no Mandriva). Muitas distribuições já o trazem instalado por padrão.
Mercury O Mercury é um cliente MSN escrito em Java, disponível no: http://www.mercury.to/. Ele se tornou famoso por ser o primeiro a oferecer suporte a webcam no MSN, embora o suporte ainda seja incipiente. Outro fator interessante é que o visual e as funções são muito similares ao MSN da Microsoft, incluindo o suporte a winks animados e outras frescuras. Ele é provavelmente o cliente mais parecido com o Messenger que existe atualmente no Linux. A desvantagem é justamente o fato de ele ser escrito em Java, o que acabou tornando o programa bem maior e mais pesado. Ele não é definitivamente um programa adequado para ser usado em máquinas antigas. No site, existem duas versões Linux, a "With JVM" e a "Without JVM". A primeira é bem maior, mas já vem com o Java incluído, fazendo com que a instalação seja menos passível de problemas. Basta descompactar o arquivo e executar o instalador que está dentro. Para usar o segundo arquivo, você deve ter o Java da Sun instalado. Veja a dica sobre a instalação do Java no tópico sobre a instalação de plugins no Firefox. Para instalar o suporte a webcams, você precisa instalar o JMF, um módulo adicional. Você encontra instruções dentro do Wiki, disponível no: http://www.mercury.to/. Para o Mercury 1709, o pacote com os arquivos do JMF pode ser baixado via bittorrent, através do: http://download.mercury.to/torrents/JMF.torrent. Depois de descompactar o arquivo, copie os arquivos "VidConf-libs.jar" e "JavaLibslinux.jar" para a pasta "lib/", dentro do diretório de instalação do Mercury e descompacte o arquivo "NativeLibs-linux.zip" na pasta "jni/linux/jmf" (novamente dentro do diretório de instalação do Mercury). Esta pasta não existe originalmente, você deve criá-la manualmente. Copie também o arquivo "libjmutil.so" para dentro da pasta "lib/i386/" no diretório de instalação do Java. Ele varia de distribuição para distribuição, no Kurumin 5.1, por exemplo, é a pasta "/usr/lib/sun-j2se5.0-jre/lib/i386/".
Sim O Sim é outra opção interessante de mensageiro. Além de ser mais leve que o Kopete, existem vários detalhes na interface que o deixam mais confortável de usar. Por exemplo, ao receber uma mensagem o ICQ da Mirabillis simplesmente toca um som e o ícone ao lado do relógio fica piscando. Você só sabe quem mandou a mensagem ao abrir a janela do ICQ. No Kopete é mostrado um balãozinho que mostra o remetente, mas ele é um pouco irritante por ficar esperando por um click do mouse.
No Sim é mostrada uma mensagem de texto no lado esquerdo da tela que some depois de alguns segundos. Ela cumpre o papel de avisar sobre quem mandou a mensagem, mas de uma forma que não perturba caso você esteja ocupado e resolva ignorar o aviso. A equipe do Sim tem feito um trabalho muito legal em implementar as sugestões, o que tem atraído uma legião de usuários fiéis. O Sim oferece suporte ao ICQ, MSN e outros protocolos. A principal deficiência é que você só pode usar um de cada vez. A página é: http://sim-icq.sourceforge.net.
Amsn O Amsn é um "clone" do MSN Messenger escrito em TK, uma biblioteca gráfica que é muito usada em scripts, mas que não oferece tantos recursos quanto o Qt e o GTK2 e não possui um visual muito bonito. Levando em conta estas limitações, o Amsn surpreende. Em primeiro lugar porque ele é um programa leve que "simplesmente funciona" sem muitas frescuras que fiquem consumindo memória. Os pontos negativos são o número relativamente grande de bugs e problemas em geral (uma parte do próprio Amsn, outros da biblioteca Tk, que ele utiliza ao extremo) e a falta de suporte à suavização de fontes e outros efeitos visuais, novamente limitações da biblioteca usada.
O visual default do Amsn é um pouco estranho, mas você pode ajustar as fontes e cores a gosto nas preferências do programa. Você pode instalá-lo via apt-get (aptget install amsn). Existe ainda uma versão genérica, disponível no http://amsn.sourceforge.net, que pode ser usada em diversas distribuições. Basta descompactar o arquivo e executar o "amsn" dentro da pasta criada.
Skype Embora seja um programa proprietário, o Skype é bastante popular também no Linux. Não é comum encontrá-lo pré-instalado nas distribuições (com exceção do Kurumin), mas você pode baixá-lo no: http://skype.com/products/skype/linux/. Assim como no caso do Opera, estão disponíveis pacotes para várias distribuições, incluindo o Debian, Mandriva, Fedora e SuSE. Estão disponíveis também dois pacotes genéricos, que podem ser usados em caso de problemas de instalação com os principais, ou no caso de distribuições que não estejam na lista, como o Slackware, Gentoo e outros. O "Dynamic binary tar.bz2" é um arquivo compactado, onde você só precisa descompactar e executar o programa de dentro da pasta. Você pode inclusive descompactá-lo dentro do seu diretório home e executar o programa a partir daí, sem nem precisar usar a senha de root. Para funcionar, o Skype precisa da biblioteca Qt, de forma que você precisa ter o KDE, ou pelo menos as bibliotecas base do KDE instaladas. A segunda opção, menos passível de problemas, é o "Static binary tar.bz2 with Qt 3.2 compiled in", um arquivo um pouco maior, que contém uma cópia interna das bibliotecas necessárias. Esta é a opção "à prova de falhas", que realmente vai funcionar em praticamente qualquer ambiente. Naturalmente, além do Skype existem vários outros programas de VoIP for Linux. Outro bastante usado é o GnomeMeeting, que também suporta o uso de webcam. Ele utiliza o protocolo do antigo Netmeeting da Microsoft (sem compatibilidade com o padrão usado pelo MSN), permitindo que você faça contato tanto com outros amigos usando o GnomeMeeting, quanto com clientes Windows usando o Netmeeting. Você pode instalar o GnomeMeeting via apt-get (apt-get install gnomemeeting). A página oficial é a http://www.gnomemeeting.org/. O Asterix é uma solução profissional, que permite transformar um PC comum em uma central PBX, capaz de realizar tanto chamadas via internet, quanto através de uma linha telefônica convencional (usando uma placa adaptadora). Uma vez configurada a central, você pode fazer chamadas a partir de qualquer um dos micros da rede local (usando o GoPhone, GnomeMeeting ou outro dos clientes disponíveis) para micros em outras redes, ou mesmo para telefones fixos ou celulares. A idéia neste caso é que a chamada seja feita via internet até um outro servidor Asterix localizado na cidade-destino e deixar que ele realize uma chamada local para o telefone, economizando o interurbano. O Asterix está longe de ser uma solução fácil de usar, mas está crescendo rapidamente, adotado na infra-estrutura de comunicação de inúmeras empresas. Você pode encontrar mais informações no http://www.asterisk.org.
Vídeo, som, CDs e DVDs
O suporte a formatos de vídeo e áudio já foi um problema no Linux. Mas, esta foi a área que progrediu mais rápido nos últimos dois ou três anos, chegando a um ponto em que muitos consideram mais fácil assistir a vídeos de formatos variados no Linux do que no Windows.
Kaffeine O Kaffeine é o player de mídia padrão do KDE, capaz de exibir vídeos em diversos formatos, música, DVDs e até TV, caso você tenha uma placa de captura. O Kaffeine faz parte da família de players baseados na libxine, uma biblioteca compartilhada por muitos programas. O primeiro foi o próprio Xine e em seguida vieram muitos outros, como o gXine, Toten e outros. Estes programas variam em recursos e opções de interface, mas o nível de compatibilidade com arquivos é basicamente o mesmo. A interface do Kaffeine é bem construída, com acesso fácil às funções e suporte a legendas em filmes em Divx. Ao abrir o filme, ele abre a legenda automaticamente (caso os dois arquivos tenham um nome parecido), ou pede sua confirmação, caso exista mais de um. Existe também um recurso de playlist integrado ao Konqueror: clique com o botão direito sobre o arquivo e você tem a opção de incluí-lo na playlist do Kaffeine. Também funciona se você simplesmente arrastar o arquivo para dentro da janela da playlist. Um pequeno extra é que, ao abrir um MP3 ou outro formato de áudio, ele ativa um plug-in de visualização, daqueles hipnóticos, algo parecido com o que o Media Player do Windows faz. Para ter um suporte completo a formatos de vídeo, você precisa ter instalado o pacote w32codecs e para ter suporte a DVDs protegidos, o pacote libdvdcss2. Estes dois pacotes são um pouco problemáticos do ponto de vista legal, pois o w32codecs é composto por um conjunto de dlls do Windows, retiradas do Windows Media Player e outros programas e executadas no Linux através da biblioteca do Wine (incluída no pacote). O libdvdcss2 quebra o sistema de encriptação dos DVDs e é proibido nos EUA (embora seja perfeitamente legal no Brasil e em outros países). Estas restrições fazem com que ambos os pacotes não sejam incluídos diretamente nas distribuições, embora você possa instalá-los manualmente sem muita dificuldade. No Debian, adicione as linhas abaixo no arquivo "/etc/apt/sources.list" e rode o comando "apt-get update": deb ftp://ftp.nerim.net/debian-marillat/ sarge main deb ftp://ftp.nerim.net/debian-marillat/ etch main Em seguida, instale os dois pacotes usando o comando "apt-get install w32codecs libdvdcss2". No Kurumin, as linhas já vêm adicionadas no arquivo sources.list por padrão, você só precisa instalar os pacotes ou usar o ícone mágico para instalar mais suporte de vídeos. Este repositório possui vários mirrors. Se o endereço principal estiver fora do ar, você pode encontrar outros pesquisando por "debian-marillat" no Google. Um exemplo é o: deb http://www.las.ic.unicamp.br/pub/debian.d/debian-marillat/ sarge main deb http://www.las.ic.unicamp.br/pub/debian.d/debian-marillat/ etch main
O Kaffeine possui também um plugin para o Firefox, o "kaffeineplugin", que permite assistir vídeos via streaming, como vimos no tópico sobre o Firefox.
Mplayer O Mplayer é famoso por ter sido o primeiro player de vídeo "completo" para Linux, capaz de exibir vídeos na maioria dos formatos e DVDs protegidos. Muito do que existe hoje na área de suporte a formatos de vídeo e multimídia em geral, no Linux, surgiu graças ao trabalho feito no Mplayer. Ainda hoje ele é um dos players mais usados, embora não venha incluído por padrão na maioria das distribuições, que preferem usar o Kaffeine, Totem e outros players da família do Xine. O Kurumin traz o Mplayer pré-instalado, de forma que as instruções de instalação se aplicam apenas a outras distribuições derivadas do Debian, onde seja necessário instalar manualmente. Um dos grandes atrativos do Mplayer é que ele oferece um excelente suporte a vídeos danificados ou incompletos. Isto é muito útil naqueles casos em que você baixa um Divx pela metade, e quer assistir o que já baixou, sem ter que achar o resto do arquivo. O Mplayer é esperto o suficiente para reconstruir o mapa de frames do arquivo (que normalmente fica no final) e exibir o vídeo normalmente. O índice de sucesso também é muito bom com vídeos danificados, ele consegue "pular" as partes defeituosas e exibir o restante do vídeo, geralmente sem muitos problemas. Ele também é eficiente na hora de assistir vídeos em formatos exóticos, para os quais não existe um codec adequado instalado. Eles simplesmente tenta exibir usando o codec mais próximo, muitas vezes com bons resultados. A regra é sempre "fazer o possível" para exibir o vídeo, não importa o quão estranho seja o arquivo. O Mplayer está disponível no repositório Marillat, o mesmo que contém os pacotes w32codecs e libdvdcss. Depois de adicionar as duas linhas no sources.list, você pode instalar o mplayer via apt-get, com o comando "apt-get install mplayer-586". O comando para abrir a interface gráfica do Mplayer é "gmplayer". Se você estiver usando o KDE, clique com o botão direito sobre os arquivos dos vídeos, selecione a opção "abrir com", escreva "gmplayer" no espaço para o comando e marque a opção "lembrar da associação de aplicativo para este tipo de arquivo". Assim, os vídeos passarão a ser abertos automaticamente no Mplayer quando você clicar sobre eles. Clique com o botão direito sobre a janela principal e você verá as opções para abrir vídeos, legendas, DVDs e VCDs:
Acessando o menu "Preferences", você tem acesso a mais algumas opções importantes. No menu vídeo você escolhe o driver de vídeo que será usado. O default é o X11, que funciona em todas as placas de vídeo e possui uma qualidade de imagem muito boa. O problema é que o X11 é todo processado via software, por isso também é o mais lento, principalmente ao ativar o modo de tela cheia. A segunda opção é o xv, que já utiliza a interpolação via hardware disponível na grande maioria das placas modernas. Ele já consegue exibir vídeos em tela cheia sem perda de desempenho, mas a qualidade da imagem não é a mesma, principalmente na temperatura de cor. Os resultados variam de acordo com o modelo da placa de vídeo. A terceira opção é o xvidix que também oferece aceleração via hardware e uma qualidade de imagem semelhante à do X11, mas em compensação é compatível com menos placas. Finalmente, temos o xmga, o driver otimizado para placas Matrox G200, G400, G450 e G550 e o dxr3, que ativa o suporte a placas dxr3, vendidas em muitos kit's de DVD da Creative. A opção "Enable Double Buffering" é importante para a qualidade de exibição, pois permite que o software processe simultaneamente dois quadros ao invés de um, permitindo que, enquanto o primeiro quadro está sendo exibido, o seguinte já esteja pronto para ser exibido, evitando delays e perda de frames. Esta opção exige mais processamento, por isso pode ser desabilitada para melhorar o desempenho em micros antigos. O "Enable Frame Dropping" permite assistir vídeos em alta resolução mesmo em máquinas lentas. O software simplesmente vai descartando alguns frames, de acordo com o processamento disponível. O vídeo fica pulado, mas pelo menos você consegue assistir.
No Kaffeine, a configuração do driver de vídeo que será usado, entre outras opções relacionadas à decodificação e exibição dos vídeos vai no "Configurações > Parâmetros do Xine".
Na aba Audio você pode alterar o driver de audio usado. O Alsa é o que oferece melhor qualidade, mas só vai funcionar caso a sua placa de som seja suportada pelos drivers Alsa e eles estejam ativados. As outras opções podem ser testadas em caso de problemas. Na aba Misc você encontra mais algumas opções que podem melhorar a qualidade ou desempenho do vídeo. Se você tem um processador muito rápido, ative o "Enable postprocessing", assim os ciclos livres serão utilizados para melhorar a qualidade da renderização dos vídeos em Divx. Ao assistir vídeos a partir de um CD, DVD ou um compartilhamento de rede, aumente o valor da opção Cache. Ela permite determinar a quantidade de vídeo já processado que será armazenado na memória. Quanto maior o valor, maior será a "reserva" a ser exibida em casos de interrupções temporárias no fornecimento de dados. O cache grande vai ser muito útil ao assistir um filme gravado num CD riscado por exemplo. Os valores do DVD device e CD-ROM device precisam estar corretos, caso contrário você não conseguirá assistir nada a partir deles. Em caso de problemas com os links padrão, experimente fornecer diretamente o device do drive, como em: "/dev/hdc" (mestre da segunda IDE) ou "/dev/hdd" (slave da segunda IDE). Os leitores e gravadores de CD USB também são detectados como se fossem dispositivos SCSI, por isso também aparecem como "/dev/sr0" ou "/dev/sr1". Em geral eles são detectados automaticamente pelo hotplug, encontrado em praticamente todas as distribuições atuais. Você precisa apenas plugar o drive e aguardar alguns instantes. Uma curiosidade é que existe também a opção de chamar o Mplayer via linha de comando, mesmo a partir de um terminal de texto puro, usando o driver svga, frame-buffer ou mesmo exibindo o vídeo usando caracteres de modo texto. Algumas mini-distribuições, como por exemplo o emovix, utilizam estas opções para exibirem vídeos mesmo sem ter o X instalado. Alguns exemplos de comandos para assistir os vídeos a partir do modo texto são o "mplayer -vo svga filme.avi" (usa o driver svga, que funciona na maioria das placas, exibindo o filme em tela cheia) "mplayer -vo vesa filme.avi" (que funciona em algumas placas onde o svga não roda), "mplayer -vo fbdev filme.avi" (usa frame-buffer, só funciona se o frame buffer estiver ativo na configuração do lilo). Abra o arquivo /etc/lilo.conf e procure pela linha "vga=" deixe em "vga=788" para 800x600 ou "vga=791" para 1024x768) e "mplayer -vo aa filme.avi" (a mais curiosa de todas exibe o filme usando caracteres de texto. Dá um efeito interessante, mas a qualidade não é lá essas coisas. O legal é que funciona mesmo usando um monitor CGA ;). No manual você encontra as opções para ativar legendas, assistir DVDs, VCDs, frameskipping, etc. ao usar o player de modo texto. São realmente muitas opções, você pode dar uma garimpada no manual: man mplayer.
K3B Por ser bastante intuitivo e possuir muitos recursos, o K3B se tornou rapidamente uma espécie de programa padrão para gravação de CDs e DVDs no Linux. Ele oferece uma interface bastante prática, com todas as opções para gravar CDs e DVDs de dados, copiar CDs (incluindo uma função para clonar CDs e DVDs), ripar CDs de música, ripar DVDs, converter músicas e vídeos em diversos formatos,
limpar CDs regraváveis e até mesmo gravar CDs mistos, onde são misturadas faixas de áudio e dados, como nos CDs de alguns games. A página oficial é a: http://k3b.org.
A interface lembra a do Nero, com as funções bem acessíveis. O ponto forte do K3B é que ele tenta ser o mais intuitivo possível. Por exemplo, ao criar um CD de música, você vai arrastando os arquivos de áudio para a janela de gravação. O K3B se encarrega de converter arquivos em .mp3 ou .ogg para o formato nativo do CD automaticamente, durante e gravação. Existe funções do K3B incluídas no menu de contexto do KDE. Ao clicar com o botão direito sobre uma pasta ou arquivo, aparece a opção de gravá-los num CD de dados, dentro do menu "ações":
Caso o K3B exiba um erro, dizendo que não foi possível encontrar um driver cdrdao, acesse as preferências em Configurações > Configurar K3B... > Dispositivos e altere o "Driver cdrdao" para Generic-MMC (compatível com a maioria dos drivers) ou um adequado ao seu gravador:
O K3B é na verdade uma interface para diversos programas de linha de comando, que ficam encarregados do trabalho pesado. Caso você note a falta de alguma funcionalidade no K3B, verifique se todos estes pacotes estão instalados: "cdparanoia" (necessário para ripar e copiar CDs de audio), "transcode" (necessário para ripar DVDs, salvando os filmes em Divx), "libvorbisenc2" (biblioteca necessária para criar CDs de música a partir de arquivos .ogg), "vcdimager" (necessário para criar VCDs), "normalize" (permite normalizar o volume das faixas ao gravar CDs de música), "sox" (esta é uma biblioteca que permite converter arquivos de áudio, necessária para criar CDs de áudio a partir de arquivos .mp3 ou .ogg), "liblame0" (necessária para gravar CDs de música a partir de arquivos .mp3), "libmusicbrainz4c2" (outra biblioteca, que permite que o K3B inclua corretamente as informações sobre as faixas (CD-Text) ao criar CDs de música a partir de arquivos .mp3 ou .ogg) e emovix (o K3B inclui uma opção para
criar CDs ou DVDs bootáveis, contendo músicas ou filmes usando o emovix; veja mais detalhes sobre como instalá-lo a seguir). Uma opção mais antiga de gravação de CDs é o Xcdroast, um programa bem mais simples, com menos funções que o K3B, mas por outro lado bastante robusto. Ele pode ser instalado via apt-get (apt-get install xcdroast), ou encontrado no http://www.xcdroast.org/.
eMovix Muitos CDs com filmes em Divx que tenho visto ultimamente estão vindo com os executáveis de algum player ou os codecs de alguma versão do Divx. Muitas pessoas não possuem estes arquivos instalados, e não saberiam como exibir o filme sem eles. O Movix é uma mini distribuição que permite resolver este problema. Ao invés de ficar adicionando executáveis no CD, você pode transformá-lo num CD bootável, que inicializa em poucos segundos e já começa a exibir o arquivo automaticamente. É algo parecido com o que temos no Kurumin, só que menor e otimizado para esta tarefa específica. O eMovix é uma variação dele, que possui apenas 8 MB e é usado para criar CDs "híbridos". Ao abrir o CD no Windows, ou qualquer distribuição Linux, você vê um CD "comum" com algum filme ou músicas dentro. A única pista de que o CD contém algo a mais é uma pasta "movix" perdida no raiz. Porém, ao dar boot através do CD, o eMovix automaticamente detecta o vídeo e placa de som e depois de alguns segundos começa a exibir os arquivos de vídeo ou áudio que estão dentro do CD sem que seja necessário fazer absolutamente nada. É uma solução ideal para poder transportar seus filmes e músicas, sem se preocupar se o PC que vai usar tem ou não os codecs necessários para exibi-lo e também para quando você quiser mandar alguma coisa para aquele seu(ua) amigo(a) completamente leigo(a) que não saberia o que fazer com o arquivo. É um exemplo de aplicação que transforma o PC numa espécie de eletrodoméstico, que não precisa de muitas instruções para ser usado. Originalmente, criar CDs incluindo o eMovix era um processo trabalhoso, mas o K3B oferece uma opção no menu "Arquivo > Novo Projeto", que automatiza o processo. Clique no "Novo Projeto de DVD (ou CD) eMovix" e arraste os arquivos com os filmes ou músicas que quiser, como se estivesse gravando um CD de dados normal.
Para que esta opção funcione, é necessário instalar o pacote com os arquivos do eMovix. Ele pode ser instalado via apt-get, ou baixado manualmente no: http://sourceforge.net/projects/movix/.
Enquanto escrevo, a versão mais recente é o arquivo "emovix_0.9.0-1_all.deb". Depois de baixar o arquivo, instale-o com o comando: # dpkg -i emovix_0.9.0-1_all.deb Para usar legendas, inclua o arquivo junto com o filme no CD e ela será aberta automaticamente. Existem duas pequenas regras aqui: a) A legenda deve ter exatamente o mesmo nome do arquivo (observe maiúsculas e minúsculas), mudando apenas a extensão. O "filme-12345REC.avi" vai usar um arquivo de legenda "filme-12345REC.src", por exemplo. b) Todos os arquivos que serão exibidos devem ficar no raiz do CD-ROM. Arquivos dentro de sub-pastas são ignorados pelo eMovix. Os arquivos do eMovix ocupam 8 MB no CD-ROM. Para gravar um CD de 80 minutos, o filme deve ter no máximo 692 MB. Se você precisar gravar arquivos maiores, procure uma mídia de 90 minutos ou use um DVD. Depois de terminar de selecionar os arquivos, clique no botão de gravação e você verá a janela com as opções do projeto. Além das opções normais de gravação (velocidade, gravador, DAO, TAO, etc.), aparecerá uma aba "eMovix".
A opção "Loop playlist" determina quantas vezes os arquivos serão exibidos. Se você está fazendo um CD com um monte de músicas, pode querer colocar um número alto aqui para que ele fique tocando indefinidamente, mas, no caso de um filme, você provavelmente só vai querer ver uma vez. Por default, o eMovix vai exibir os arquivos incluídos no CD em ordem alfabética. Você pode mudar isso ativando a opção "Play files randomily. A opção "Do not use DMA" desabilita o DMA do CD-ROM. É apenas para a solução de problemas, caso o micro trave durante o boot, por exemplo. Esta opção deteriora muito a qualidade da exibição dos filmes, por isso deve ser usada apenas como último recurso. Aproveite para ajustar também a opção "eMovix boot messages language", o português está disponível :).
DVDrip O DVDrip permite fazer "backups" de DVDs, salvando os filmes em MPEG2 (o formato original), ou convertendo-os para Divx ou outros formatos. Ele é capaz de ripar tanto DVDs sem proteção, quanto títulos protegidos, utilizando o libdvdcss2 que também deve estar instalado. Ele oferece vários filtros de cor e som (ajuste de temperatura de cor, filtro de eliminação de ruído e assim por diante) e é capaz de ripar também as legendas (tanto como arquivos separados quanto mescladas com o filme). O DVDrip em si é uma interface, que reúne as funções disponíveis em diversos outros programas, de uma forma similar ao K3B. Para ter o conjunto completo, você deve instalar todos os pacotes a seguir, usando o apt-get: dvdrip (o programa propriamente dito :), libdvdcss2 (suporte a DVDs protegidos), avifilexvid-plugin, avifile-vorbis-plugin, avifile-mad-plugin, toolame, transcode (este é um dos pacotes principais, permite converter vídeos em diversos formatos), subtitleripper (para extrair as legendas), ogmtools (opcional, permite salvar o áudio em .ogg, reduzindo um pouco o tamanho final) e vcdimager (também opcional, necessário para criar VCDs). Muitos destes pacotes fazem parte dos repositórios do Marillat (as duas linhas que adicionamos no sources.list no tópico sobre o Kaffeine).
Amarok O Amarok é um player de audio de "nova geração", que trabalha com um conceito de organização de arquivos diferente do usado em programas mais antigos com o XMMS e o WinAMP. Ao invés de simplesmente colocar alguns arquivos ou pasta numa playlist, você cria uma "coleção" contendo todas as suas músicas. O Amarok utiliza um banco de dados para armazenar todas as informações sobre as músicas, incluindo o artista, o CD do qual cada uma faz parte, gênero e assim por diante. Parte das informações são retiradas das tags ID3 dos arquivos, outras são obtidas através de uma base de dados online. Graças à combinação das duas coisas, o Amarok é capaz de reunir músicas que fazem parte de um CD, mesmo que elas estejam espalhadas em várias pastas diferentes. Se você tiver muitas músicas espalhadas, vai acabar percebendo que na verdade tem faixas de muitos CDs que nem imaginava que existiam :).
O processo inicial de criação da coleção e catalogação das músicas pode demorar alguns minutos, caso você tenha muitas músicas, mas depois você notará que ele oferece muitos recursos interessantes, como exibir as letras das músicas que estão tocando e mostrar imagens das capas dos CDs (tudo baixado da web). Conforme vai usando o programa, ele começa a reunir uma série de estatísticas, como as músicas que são mais ouvidas, o número de vezes que ouviu cada uma e assim por diante. Ele também oferece recursos para ouvir rádios online (ele já vem com uma lista bastante completa), podcasts, suporte a iPods e outros MP3 Players e até opções para gravar músicas da coleção direto em CD. A interface do Amarok possui muitas funções, por isso demora um pouco para se acostumar com ele, mas o conjunto de todas as funções faz com que ele seja atualmente um dos melhores programas da área, embora naturalmente não agrade todo mundo. A grosso modo, a organização das músicas por artistas e por CD faz sentido se a sua coleção de músicas realmente é composta predominantemente por álbums completos, com as tags ID3 dos arquivos criadas corretamente. Se você tem um monte de arquivos soltos, a coleção dentro do Amarok vira uma bagunça.
Justamente por ser um programa complexo, o Amarok possui uma grande lista de dependências, que além da versão correspondente do KDE e vários plugins e bibliotecas, incluem até o pacote "mysql-common", usado para criar a base de dados local, onde ficam armazenadas as informações sobre as músicas. Isso faz com que a facilidade de instalação dependa do fato de ele fazer parte ou não dos pacotes incluídos na distribuição que está usando. No Debian Etch (testing), por exemplo, você pode instalá-lo simplesmente usando o "apt-get install amarok". O site oficial é o: http://amarok.kde.org/. Outro programa com recursos similares é o Rhythmbox (também disponível via apt-get), que utiliza as bibliotecas do Gnome. Ele se integra ao Nautilus e à barra de tarefas do Gnome, fazendo com que ele seja mais usado em distribuições que
utilizam o Gnome por padrão, como o Ubuntu e o Fedora. A página oficial é a: http://www.gnome.org/projects/rhythmbox/.
XMMS O XMMS é um dos players de audio for Linux mais antigos. A primeira versão foi lançada em 1997 e ele é até hoje o player mais popular. Ele não oferece tantos recursos quanto o Amarok e está há vários anos numa fase de manutenção, recebendo apenas pequenas melhorias. Ele oferece uma interface simples, similar à do WinAMP, onde você adiciona algumas músicas na playlist e escuta, sem rodeios. Existem alguns plugins, que permitem adicionar recursos extras, como vários tipos de filtros de áudio e até suporte a alguns modelos de controle remoto (útil para quem usa o PC como aparelho de som), mas o principal ponto positivo do XMMS é justamente a simplicidade.
Kaudiocreator Existem vários programas para ripar CDs de música no Linux, inclusive o próprio Konqueror. Acessando o endereço "audiocd:/" na barra de endereços, ele exibe um conjunto de pastas contendo várias opções de formatos para as músicas do CD. Arrastando qualquer uma das pastas para o HD, o CD é ripado automaticamente, no formato escolhido. A principal vantagem do Kaudiocreator é que ele é capaz de baixar as informações sobre as faixas (nome, artista, álbum, etc.) via web, a partir do freedb.org. Isso permite que os arquivos MP3 sejam gerados com as tags ID3 criadas corretamente. Para ripar as faixas bastam dois cliques: "Selecionar todas as faixas" e "Ripar faixas selecionadas" (o botão com o ícone da engrenagem). Os arquivos gerados vão para a pasta "mp3", dentro da pasta home, já convertidas em MP3 e divididas por artista e disco. Você pode acompanhar o status da ripagem na aba "trabalhos":
Nas preferências você pode escolher o padrão de compressão dos arquivos. É possível gerar arquivos MP3, Ogg, Flac ou arquivos Wav sem compressão. Outra boa opção é o Grip, um programa especializado em ripar CDs, que permite ripar os arquivos diretamente em MP3 e também serve como CD-player. Você pode instalá-lo via apt-get (apt-get install grip). Na tela principal, marque as faixas a serem ripadas clicando sobre elas com o botão direito. Depois, acesse a aba "Extrair" e em seguida em "Extrair e Codificar" para ripar direto em MP3 ou Ogg Vorbis ou em "Rip only" para extrair as faixas em formato Wav. Assim como no caso do Kaudiocreator, as músicas são salvas na pasta "mp3/", dentro da sua pasta home.
O default do Grip é encodar as músicas no formato Ogg Vorbis, não em MP3. O Ogg é um formato de áudio com uma qualidade e capacidade de compressão semelhantes à do MP3, mas que traz a vantagem de ser completamente aberto, enquanto o MP3 é um formato proprietário, cuja patente pertence ao Instituto Fraunhofer. Você pode alterar a configuração na "Configuração > Encode > Codificador". Troque o "oggenc" (que gera arquivos .ogg) pelo "lame" (que gera arquivos .mp3).
Audacity O Audacity é um gravador e editor de áudio que inclui diversos efeitos, filtros e ferramentas de edição bastante simples de usar. Ele é um programa sem equivalentes, pois é ao mesmo tempo muito fácil de usar, mas ao mesmo tempo tão poderoso quanto muitos programas de edição mais profissionais. Ele é ideal para quem não é profissional da área, mas precisa de um programa de edição para uso no dia a dia. Ao abrir o programa, você pode gravar diretamente a partir do microfone (não existe limite para o tamanho da gravação, ele simplesmente vai gravando enquanto houver espaço no HD, o que é útil ao gravar palestras e concertos) ou importar um arquivo de áudio em .mp3, .ogg, .wav ou qualquer um dos outros formatos suportados. Usando a ferramenta de seleção (Selection Tool) você pode selecionar trechos, que podem ser removidos (tecla DEL), copiados (Ctrl+C) ou colados em outro lugar (Ctrl+V). Você pode editar os canais de áudio simultaneamente, inclusive juntando
múltiplas faixas. Se você tem uma banda de garagem, por exemplo, pode gravar voz e instrumentos separadamente (usando um metronomo) e depois juntar tudo usando o Audacity. Isso vai gerar uma gravação muito mais próxima da feita em estúdio, onde você pode ajustar individualmente o volume de cada instrumento, remover trechos ruins, ajustar o tempo e assim por diante.
Você pode instalar o audacity via apt-get (apt-get install audacity) ou baixá-lo manualmente no http://audacity.sourceforge.net/download/linux. Ele não tem muitas dependências externas, por isso é um programa bem fácil de instalar. Outro programa similar, porém voltado mais para o público profissional é o Rezound, disponível via apt-get ou no http://rezound.sourceforge.net.
Usando o VMware Player
Ao começar a usar Linux, a maioria opta por conservar o Windows em dual boot, a fim de ir se habituando gradualmente ao sistema, sem perder o acesso aos programas e ao ambiente que está acostumado a usar. Com o passar do tempo, alguns conseguem passar a usar apenas Linux, com algum sacrifício, enquanto outros conservam o dual boot, perdendo tempo entre os resets. Mas, hoje em dia existe uma opção muito mais interessante que o dual boot, que é a possibilidade de manter o Windows instalado dentro de uma máquina virtual. Isso permite rodar o Windows dentro de uma janela, usando simultaneamente os aplicativos dos dois sistemas.
Todos os arquivos referentes à máquina virtual são salvos dentro de uma pasta, de forma que você não precisa ter uma partição separada. Também é muito mais fácil fazer backups e reinstalações, já que você só precisa salvar a pasta em outro lugar e restaurá-la quando qualquer coisa der errado. Usando uma VM, você não precisa mais perder tempo reinstalando o sistema cada vez que o Windows pegar vírus ou começar a travar. Além do Windows, é possível rodar outras distribuições Linux ou mesmo outros sistemas operacionais para micros PC, permitindo que você teste diversos sistemas sem precisar ficar formatando o HD.
Naturalmente, dois sistemas rodando simultaneamente são mais pesados do que um, por isso você precisa ter um PC relativamente potente (a partir de um Duron de 1.0 GHz), com de preferência 512 MB de memória RAM. Como citei no capítulo 2, existem diversas opções de emuladores e virtualizadores, incluindo o Qemu e o Xen, mas o VMware (pelo menos do ponto de vista de um usuário doméstico) é de longe o mais prático de usar. Ele está disponível no http://www.vmware.com. O grande problema do VMware era o fato de ser um software caro. Você podia se cadastrar no site para obter um trial de 30 dias mas, para usá-lo definitivamente (pelo menos legalmente), você precisava pagar US$ 199 pela versão completa. Isso mudou com o lançamento do VMware Player, em outubro de 2005. O Player é uma versão gratuita do VMware, cuja grande limitação é o fato de não possuir as opções que permitem criar e modificar a configuração da máquina virtual. Isso não impede que ele seja usado no dia-a-dia, pois você pode usar a versão trial do VMware Workstation para criar e configurar a máquina virtual e depois ficar usando-a indefinidamente no Player. A licença de uso do VMware Player permite explicitamente o uso de máquinas virtuais distribuídas por outras pessoas ou criadas usando o VMware Workstation, mesmo a versão trial. Você pode inclusive distribuir máquinas virtuais com distribuições Linux (ou qualquer outro sistema de livre distribuição) préinstaladas. Ao usar o Kurumin, você pode usar o Kurumin-EMU, um conjunto de script que desenvolvi para instalar o VMware Player, além de criar e modificar as máquinas virtuais, eliminando a necessidade de usar o VMware Workstation. Inicialmente, tinha desenvolvido o Kurumin-EMU como uma interface para o Qemu, o emulador open-source, que concorre com o VMware, pois na época ele era melhor solução gratuita. Depois do lançamento do VMware Player, modifiquei os scripts para utilizá-lo no lugar do Qemu, dando origem à versão atual, que você encontra nas versões recentes do Kurumin, a partir do 5.1:
Ao usar outras distribuições, você pode baixar o arquivo de instalação do VMware Player no: http://www.vmware.com/download/player/. Existem duas versões Linux disponíveis, um pacote .rpm e um pacote .tar.gz genérico, que pode ser instalado em qualquer distribuição. Para instalá-lo, descompacte o arquivo e execute (como root) o arquivo "vmware-install.pl" dentro da pasta. Via terminal, os comandos seriam os seguintes: $ tar -zxvf VMware-player-1.0.0-16981.tar.gz $ cd vmware-player-distrib/ $ su <senha> # ./vmware-install.pl A fim de ser compatível com todas as distribuições, o VMware usa um instalador bem simples, em modo texto. A instalação é basicamente automática, mas ele confirma as pastas de instalação de uma série de arquivos. Você pode simplesmente ir pressionando enter, aceitando as opções padrão. Dependendo da distribuição em uso, ele pergunta num certo ponto sobre a compilação de um módulo de Kernel. Este módulo é necessário pois ele precisa de acesso direto ao hardware. No Kurumin, a instalação prossegue automaticamente, pois o sistema já vem com os headers do Kernel e os compiladores necessários, mas em outras distribuições você pode precisar instalar estes componentes manualmente. Procure pelos pacotes "kernel-headers", "kernel-source", "gcc" e "g++". No capítulo seguinte, veremos um passo a passo de como instalá-los no Ubuntu.
Depois de instalado, você pode executá-lo usando o ícone criado no menu, ou via terminal, usando o comando "vmplayer". Execute-o usando seu login de usuário; o root só é necessário para a instalação. Ao abrir, você só precisa indicar a pasta com a máquina virtual que será usada. Se tiver memória RAM suficiente, você pode inclusive abrir duas ou mais instâncias simultaneamente, cada uma rodando um sistema diferente.
Aqui chegamos ao primeiro problema: ainda não temos nenhuma máquina virtual criada :). Você poderia voltar ao http://www.vmware.com e preencher o formulário para baixar o trial do VMware Workstation, instalá-lo, usá-lo para criar as VMs e, depois de 30 dias voltar a usar o VMplayer. A segunda opção é usar o próprio Kurumin-EMU, que oferece a mesma opção de forma bem mais descomplicada. Ao criar uma nova máquina virtual, você deve definir o sistema operacional que será instalado, a quantidade de memória RAM que será reservada e o tamanho do disco virtual. Se você tem 512 MB, por exemplo, pode reservar 256 MB para a máquina virtual. O sistema dentro da máquina virtual (chamado de guest) fica limitado a usar a quantidade reservada, sem prejudicar o sistema principal. Em termos de hardware, a memória RAM é justamente o principal requisito para um bom desempenho, mais importante que o processador. Quando existe pouca memória disponível, o VMware começa a usar swap, reduzindo brutalmente o desempenho. Se as coisas estiverem lentas, experimente antes de mais nada adicionar mais um pente de memória. No caso dos discos virtuais, o tamanho definido é apenas uma espécie de limite. Inicialmente, o disco virtual é um arquivo vazio, que ocupa poucos kbytes. Dentro da máquina virtual, o sistema guest pensa que está formatando e usando um HD de verdade, mas todas as mudanças são mascaradas e feitas dentro do arquivo. Conforme você instala o sistema e outros programas, o arquivo vai aumentando de tamanho, até o limite definido. Enquanto ele não é atingido, o arquivo do disco virtual ocupa um espaço equivalente à quantidade de espaço realmente ocupado. Se você criou um disco virtual de 20 GB, mas apenas 2 GB estão em uso, você verá um arquivo de apenas 2 GB dentro da pasta da máquina virtual. Este é o wizard de criação de uma nova máquina virtual do VMware Workstation:
E este é o script usado pelo Kurumin-EMU. Lembre-se de que a máquina virtual é simplesmente uma pasta criada no HD, de forma que você pode usar o Kurumin-EMU para criar e modificar suas VMs, mesmo que você pretenda usar outra distribuição. Basta dar boot pelo CD:
Depois de criada a VM, o próximo passo é instalar o sistema. A máquina virtual se comporta da mesma forma que um PC normal, com setup e tudo mais. A única diferença é que tudo acontece dentro de uma janela. Como de praxe, a instalação consiste em dar boot através do CD de instalação do sistema, fazer o procedimento normal de instalação e depois reiniciar dando boot pelo HD.
Para configurar o "setup" da máquina virtual, pressione a tecla "F2" na tela inicial. Nele você pode escolher entre dar boot pelo CD-ROM ou pelo HD, e até mesmo acertar a hora do setup. A máquina virtual tem até mesmo um relógio de CMOS próprio! :-). Você pode tanto usar um CD-ROM físico, dentro do drive, quanto usar diretamente um arquivo ISO, útil para testar outras distribuições Linux sem precisar queimar o CD. Isso é definido dentro da configuração da máquina virtual:
O sistema dentro da VM realmente acha que está sendo instalado dentro de um PC real. Você particiona e formata o "HD" e tudo mais, porém tudo é feito dentro dentro da pasta, sem afetar o sistema principal:
Espiando dentro da pasta onde foi criada a VM, você verá uma estrutura como esta. O arquivo .vmdk contém o disco virtual (dependendo da configuração ele pode ser dividido em vários arquivos), o .nvram contém a configuração do "setup" e o .vmx contém a configuração da máquina virtual:
O arquivo de configuração possui uma estrutura relativamente simples, permitindo que você edite algumas opções diretamente no arquivo, sem precisar usar o Kurumin-EMU ou o VMware Workstation. A quantidade de memória RAM reservada à máquina virtual pode ser ajustada diretamente pelo VMplayer, em "Player > Troubleshot > Change Memory Allocation".
Depois de instalar o sistema, vem outro passo importante, que é instalar o VMware Tools, um conjunto de drivers que faz o sistema guest rodar com um melhor desempenho e de forma mais transparente, sobretudo com relação ao vídeo. Isso é necessário, pois, de dentro da máquina virtual, o sistema guest não enxerga o hardware real da sua máquina, mas sim um conjunto de dispositivos virtuais criados por ele. É por isso que você pode usar a mesma VM em vários micros diferentes, sem precisar ficar instalando drivers nem modificando o sistema guest. O VMware Tools é especialmente importante se você estiver usando o Windows 98 ou 2000 como guest, pois ambos não possuem drivers para a placa de vídeo virtual do VMware, fazendo com que o vídeo fique a 640x480, sem qualquer tipo de aceleração.
Outra grande vantagem em instalar o VMware Tools é que o mouse não fica mais "preso" dentro da janela da VM (normalmente você clica na janela para usar a VM e pressiona Ctrl+Alt para liberar o mouse), o cursor passa a movimentar-se livremente, como se a máquina virtual fosse apenas mais uma janela. Ao usar o VMware Workstation, você pode instalar o VMware Tools dando um boot na máquina virtual e usando a opção "Settings > VMware Tools Install". Isso simula a inserção de um CD-ROM dentro da máquina virtual, o que (no Windows) faz com que o instalador seja aberto automaticamente. O VMware Tools é simplesmente um conjunto de drivers, instalado de forma rápida.
Naturalmente, também é possível instalar o VMware Tools manualmente. Aqui vai o caminho das pedras: Baixe o arquivo de instalação do VMware Workstation. Ao contrário do player, ele inclui as imagens do VMware Tools. Descompacte o arquivo e, dentro da pasta criada, acesse a pasta "lib/isoimages/". Ela contém quatro arquivos ISO, contendo o VMware Tools pra Linux, Windows, Netware e BSD.
Para usá-los, você pode tanto queimar um CD-ROM, quanto configurar a máquina virtual para usar diretamente o arquivo ISO como CD. O importante é que o conteúdo da imagem esteja acessível dentro da VM. Para instalar o VMware Tools no Windows, basta dar boot na VM e abrir o programa de instalação dentro do CD. Ele detecta a versão do Windows em uso e instala os drivers adequados. Para instalar o VMware Tools for Linux, copie o arquivo "VMwareTools-5.0.0-13124.tar.gz" de dentro do CD para uma pasta qualquer do HD, descompacte-o e execute o arquivo "vmware-install.pl" dentro da pasta. Será aberto um instalador em modo texto, bem similar ao usado para instalar o VMware Player. Confirme as pastas de instalação e no final escolha a resolução de vídeo que deseja usar. Ele oferece instruções para usar um driver de rede alternativo, mas você não precisa se preocupar com isso, pois a rede virtual do VMware é bem suportada no Linux. O mais importante é o novo driver de vídeo, que é muito mais rápido e não prende o cursor do mouse. Ao instalar o Kurumin como guest dentro da máquina virtual, você pode usar o script "instalar-vmwaretools", que automatiza o processo. Uma configuração importante relacionada ao desempenho do vídeo é sempre configurar o sistema guest para usar a mesma profundidade de cores que o sistema host. Se você está usando 16 bits de cor em um, use igual no outro. Finalmente, temos a questão da configuração da rede, bem simples na verdade, pois a máquina virtual simplesmente acessa sua rede local como se fosse um PC à parte. Se você tem um servidor DHCP ativo, o sistema guest vai configurar a rede automaticamente e até navegar na internet usando a conexão compartilhada. Caso contrário, você pode configurar a rede manualmente, de forma que o sistema host e o guest façam parte da mesma rede, e até mesmo usar os scripts que compartilham a conexão. O VMware Workstation inclui um recurso que permite compartilhar pastas entre o sistema host e o guest, uma forma simples de trocar arquivos entre os dois. Este recurso não está disponível no VMware Player, mas você pode usar o Samba, NFS ou mesmo um servidor FTP para compartilhar arquivos entre os dois, usando a rede virtual. Ao rodar o Windows dentro da VM, crie um compartilhamento de rede e tente acessá-lo no Linux usando o SMB4K ou o "smb:/" do Konqueror. Ao rodar outra distribuição Linux dentro da VM, você pode usar o NFS para compartilhar arquivos, colocando as pastas compartilhadas dentro do arquivo "/etc/exports". Em caso de problemas, você pode usar um servidor FTP para acessar os arquivos. Um servidor FTP for Windows muito fácil de usar é o Filezilla, disponível no: http://filezilla.sourceforge.net/.
Outra idéia é usar um pendrive. Ao conectá-lo na porta USB, aparece um botão na janela do VMware Player, que permite compartilhá-lo com a máquina virtual. Usando este recurso, ele pode ser acessado nos dois sistemas, servindo como uma área de transferência de arquivos.
Este mesmo recurso funciona também com impressoras, scanners, palms e outros dispositivos USB, que podem ser usados dentro da máquinas virtual, mesmo que não estejam configurados no Linux. O VMware Player simplesmente permite que o sistema guest acesse diretamente o dispositivo. Note que este recurso só funciona com periféricos USB. Não adianta tentar usar o Windows dentro da VM para ativar seu softmodem que não possui suporte no Linux, pois o VMware não oferece acesso direto a dispositivos PCI. Uma última dica é que o vmplayer pode ser chamado via linha de comando, carregando diretamente a máquina virtual desejada. Basta indicar o arquivo .vmx dentro da pasta, como em: $ vmplayer /mnt/hda6/winxp/VM.vmx Isto permite criar ícones no desktop, ou até mesmo fazer que uma determinada máquina virtual seja aberta automaticamente durante a inicialização do KDE. Neste caso você só precisa colocar o ícone com o comando dentro da pasta ".kde/Autostart", dentro do seu diretório home.
Usando o Wine
Enquanto o VMware cria um ambiente virtual, que permite executar uma cópia do Windows e rodar os programas sobre ela, o Wine usa uma abordagem mais direta: simplesmente rodar os programas diretamente. Como disse no início, não existe originalmente qualquer compatibilidade entre os programas do Windows e Linux. Os dois sistemas não possuem sequer uma base comum, são realmente duas coisas bem diferentes. A equipe do Wine faz um trabalho de formiguinha, incluindo suporte às funções usadas no Windows, uma a uma. O conjunto destas funções é chamado de API (application programing interface). O Wine é justamente uma implementação da API do Windows, que permite executar os programas no Linux como se fossem aplicativos nativos. O problema reside justamente no fato da API do Windows ser fechada e existirem muitas chamadas escondidas e até mesmo bugs que são usados pelos programas. A única forma de descobri-las é na base da tentativa e erro, o que faz com que o desenvolvimento do Wine seja bem lento. O Wine foi provavelmente o maior alpha da história. Foram 12 anos, desde o anúncio das primeiras versões, em 1993. Em 25/10/2005 foi finalmente lançada a primeira versão beta, que indicou uma mudança de rumos no projeto. Até então, mudanças estruturais aconteciam a cada novo release, fazendo com que muitos programas que rodavam em uma versão não funcionassem mais na seguinte. Isso dificultava muito o uso do wine, pois a
única forma de ter certeza que um determinado software iria funcionar seria usar a mesma versão e distribuição que o autor da dica estava usando. Você pode ver mais detalhes sobre esta fase negra neste tutorial que publiquei no Guia do Hardware: http://www.guiadohardware.net/tutoriais/098/. A entrada no estágio beta indicou que o software passou a ser muito mais estável e previsível, fazendo com que as novas versões simplesmente incluam novos recursos, e não novos problemas. Vale lembrar que mesmo em estágio alpha, o Wine já rodava uma quantidade muito grande de aplicativos, como o Office, AutoCAD, Photoshop, IE, Lotus Notes e um sem número de pequenos programas. Daqui pra frente a lista tende a aumentar. Note que o Wine não é perfeito. Mesmo programas que são considerados compatíveis rodam muitas vezes com pequenos defeitos ou pequenas diferenças em relação ao Windows e muitos programas simplesmente não rodam. Você pode encontrar uma lista de alguns programas testados no: http://www.frankscorner.org/. Naturalmente, esta lista está longe de ser completa, de forma que a melhor forma de saber se um determinado programa roda ou não é simplesmente testando. O melhor lugar para baixar a última versão do Wine é na própria página do projeto, onde você encontra pacotes para várias distribuições: http://www.winehq.org/site/download. Para instalá-lo no Ubuntu, Kurumin e outras distribuições derivadas do Debian, adicione a linha abaixo no arquivo "/etc/apt/sources.list": # Wine deb http://wine.sourceforge.net/apt/ binary/ Depois de rodar o "apt-get update", instale o Wine usando o apt-get: # apt-get install -t binary libwine wine A maioria das distribuições incluem pacotes próprios do Wine. No Ubuntu, por exemplo, ele está disponível no repositório "Universe". O "-t binary" no comando faz com que o apt-get instale a versão disponível no repositório que adicionamos, ao invés de instalar o pacote disponível no repositório principal do Debian ou Ubuntu. Depois de instalado, rode o "winecfg" (desta vez usando seu login de usuário, não o root). Ele se encarrega de criar as pastas e arquivos de configuração usados pelo Wine: $ winecfg Dentro do painel de configuração, clique em "Drives > Autodect", isso faz o winecfg criar a configuração que permite que os programas Windows acessem arquivos dentro do seu diretório home e em outras pastas do sistema. O diretório home é geralmente visto dentro dos programas Windows com o drive "H:" e o diretório raiz aparece como o drive "Z:", mas isso pode variar de acordo com a configuração da sua máquina. Na aba "Applications" você pode escolher qual versão do Windows será simulada. A maior parte dos programas roda melhor escolhendo "Windows 98", que é a opção recomendada. Mas, alguns programas só instalam no Windows 2000 ou XP. Nestes casos, você pode experimentar abrir novamente o winecfg e trocar a versão.
Se você pretende usar o som dentro dos aplicativos Windows, acesse a aba "Audio" e marque a opção "Alsa", no lugar do "OSS" que vem marcado por padrão. Se preferir desativar o som, basta desmarcar ambas as opções. Depois de salvar a configuração no winecfg, o Wine já está pronto para uso. Um passo importante é instalar o "dcom98" dentro do Wine. Ele é uma atualização importante, necessária para que vários programas rodem corretamente sob o Wine. O arquivo de instalação pode ser baixado no: http://download.microsoft.com/msdownload/dcom/98/x86/en/dcom98.exe Para executar programas do Windows, você chama o comando "wine", seguido do programa Windows que vai ser executado dentro dele. Para instalar o dcom98, use o comando: $ wine dcom98.exe
Você pode associar os arquivos ".exe" com o Wine no Konqueror, de forma a executá-los simplesmente clicando sobre eles no gerenciador de arquivos. Para isso, clique com o botão direito sobre um arquivo ".exe" qualquer. Nas propriedades, acesse a opção "Abrir Com" e, no campo para indicar o programa, escreva "wine" e marque a opção "Lembrar da associação de aplicativo para este arquivo":
A partir daí, ao clicar sobre qualquer executável do Windows, ele será executado automaticamente através do Wine. Todos os programas instalados através do Wine vão para dentro da pasta ".wine/drive_c" dentro do seu diretório de usuário. Dentro dela, você verá as pastas "Windows", "Arquivos de programas" e outras usadas pelos programas. Nas versões recentes, o Wine se encarrega também de incluir ícones para os programas instalados no menu:
Aqui estou rodando o Flash MX, um dos programas bem suportados, que instala e roda sem problemas visíveis:
Uma observação é que os programas executados pelo Wine podem (na configuração padrão) ler e modificar arquivos dentro do seu diretório home. Isto significa que, em algumas situações, como ao executar um arquivo infectado através do Wine, o vírus pode apagar ou modificar seus arquivos. Para evitar essa possibilidade, você pode executar o Wine usando um usuário separado. Crie um novo usuário usando o "adduser" ou o "users-admin" e use o "sux" ou o "su" para logar-se como ele, como em: $ sux joao Qualquer programa executado usando este usuário separado poderá no máximo modificar arquivos dentro do home dele, sem risco para seus arquivos.
Vamos a um exemplo prático de uso do Wine, instalando o DVDShrink, que permite fazer backups de DVDs de vídeo. Ele é muito útil, pois os DVDs são caros e ao mesmo tempo frágeis, e você não ganha outro caso o DVD que comprou risque. O DVDShrink é um dos programas mais simples de usar. Ele extrai o vídeo, junto com legendas, menus e faixas de áudio do DVD original e comprime (caso necessário) de forma que possa ser gravado numa única mídia DVD+R ou DVD-R. Isso permite inclusive fazer backup de DVDs dual-layer numa única mídia, embora com uma pequena perda de qualidade. Você pode também remover as faixas extras de áudio, extras e outros recursos, de forma a deixar mais espaço para o filme. O único problema é que ele é um programa Windows, um detalhe que o Wine ajuda a resolver. O primeiro passo é instalar os pacotes libwine e wine, como vimos a pouco. Ao rodar o winecfg, não se esqueça de detectar os drives da máquina, clicando no "Drives > Autodetect". Você precisa ter instalado também o pacote "libdvdcss2", disponível via apt-get no repositório Marillat ou via urpmi no plf.
Na aba "Applications", defina a versão do Windows como "Windows 2000". O DVDShrink não roda caso o Wine simule o Windows 98. O próximo passo é baixar o instalador do DVDShrink no http://www.dvdshrink.org/. O ideal é que você rode a versão 3.2 do DVDShrink sobre o Wine 0.9.8, que é um conjunto bastante testado e que funciona seguindo apenas as instruções que reporto aqui. Se não for possível, use uma versão mais atual do Wine, mas nunca uma versão antiga. Você pode baixar a versão correta do DVDSrink também no link abaixo: http://www.mrbass.org/dvdshrink/dvdshrink32setup.zip. Para instalar, descompacte o arquivo e execute-o através do Wine. O instalador roda sem problemas visíveis, como se estivesse rodando diretamente sobre o Windows. $ unzip dvdshrink32setup.zip $ wine dvdshrink32setup.exe Aproveite para instalar também o DVD Decrypter, que permite quebrar sistemas diversos de proteção, gerando um arquivo .iso que pode ser posteriormente processado através do DVDShrink: http://www.mrbass.org/dvdrip/SetupDVDDecrypter_3.5.4.0.exe. Nas versões anteriores do Wine, era necessário copiar manualmente algumas dlls para dentro da pasta ".wine/drive_c/Windows/System" e criar um link para o CD-ROM dentro da pasta ".wine/dosdevices", mas atualmente nada disso é necessário. Basta instala-lo diretamente. Outra melhoria do Wine 0.98 sobre as versões anteriores é que agora são criados (corretamente) ícones no desktop para os aplicativos instalados através do Wine. Isso torna o uso muito mais confortável, pois basta clicar no ícone, como no Windows. De qualquer forma, se você tem algum problema pessoal com eles, nada impede que execute os programas instalados da forma antiga, especificando o executável e caminho de instalação, como em: $ wine /home/joao/.wine/drive_c/Arquivos\ de\ programas/DVD\ Shrink/DVD\ Shrink\ 3.2.exe
Veja que nas versões recentes, o Wine usa a pasta ".wine/drive_c" como drive C:, ao invés da ".wine/fake_windows", usada nas primeiras versões. Para que qualquer aplicativo executado via Wine consiga acessar o DVD ou CD-ROM no drive, é preciso que ele esteja montado. Ao usar uma distribuição que não faça isso automaticamente via automount, monte-o usando o ícone no desktop, ou o tradicional: $ mount /mnt/cdrom Uma coisa que me chamou a atenção ao rodar o DVDShrink pela primeira vez foi definir a região do meu drive de DVD. No Linux, não importa para qual região seu drive está ajustado, pois os aplicativos lêem o disco usando o libdvdcss2, que decodifica o filme diretamente, sem utilizar o chip decodificador incluído no drive. É por isso que usei meu drive por meses, sem sequer perceber que ele não estava com a região definida:
Ao abrir, clique no botão "Open Disk" para que ele leia o DVD no drive. Se neste ponto você receber uma mensagem de erro "Failed to open file \d:", abra as permissões do "/dev/cdrom" e do dispositivo do seu drive de DVD, como "/dev/hdc" ou "/dev/hdd", usando o comando chmod, de forma que o Wine tenha permissão para acessar o disco:
# chmod 666 /dev/cdrom # chmod 666 /dev/hdc No caso de DVDs com algum dos sistemas de proteção recentes (onde o DVD Shrink reporta um erro similar), existe a possibilidade de usar o Mplayer para quebrar a proteção, permitindo que o DVD Shrink acesse o DVD já sem a proteção ativa. Para isso, você precisa ter o Mplayer instalado, junto com o pacote libdvdcss. Com o DVD no drive, chame o Mplayer (via linha de comando), como se fosse assistir o DVD: $ mplayer dvd://1 Caso necessário, especifique o driver de vídeo a ser usado, como em: $ mplayer -vo xv dvd://1 Feche a janela pouco depois de começar o filme, monte o "/mnt/cdrom" e abra o DVD Shrink. Você notará que apenas por previamente abrir o filme no Mplayer, ele conseguirá acessar o conteúdo do DVD normalmente. Isso acontece por que uma vez quebrado o sistema de proteção, o DVD fica disponível para
qualquer aplicativo. Você precisa chamar o Mplayer novamente para cada novo DVD, mas é ainda bem mais prático do que ter que usar o DVD Decrypter, como seria necessário no Windows. Na tela principal do DVDShrink você tem a opção de eliminar as trilhas e áudio e legendas de que não precisa. Nas configurações, desmarque a opção "Enable Burning with Nero", já que vamos gravar o DVD usando o K3B.
Ao clicar no "Backup!" você tem a tela final, onde você escolhe em qual pasta salvar o arquivo final (é preciso ter pelo menos 4.4 GB livres) e mais algumas opções relacionadas à qualidade do arquivo gerado. No meu caso, estou salvando no "drive" E:, que corresponde à pasta "/mnt/hda6" no Linux.
Depois de extraídos os arquivos, falta gravar o DVD, usando o K3B. Crie um "Novo Projeto de DVD de Vídeo", arraste os arquivos das pastas "AUDIO_TS" e "VIDEO_TS" (de dentro da pasta gerada) para dentro do projeto e clique no "Queimar". Note que a pasta "AUDIO_TS" fica vazia quando você desmarca as faixas de áudio extras.
Se você prefere utilizar um programa nativo, experimente o k9copy, que embora não seja tão completo quanto o DVDShrink, é bem simples de usar e oferece os recursos mais básicos. A página do projeto é a http://k9copy.free.fr/ e você pode instala-lo via apt-get através do pacote "k9copy", disponível no repositório Marillat.