21 - Desktop 3D_jul_2006

Page 1

Ferramentas de desenvolvimento p. 16 Entrevista: James Reinders, da Intel

LinuxWorld p. 12 Estréia bem sucedida!

AIGLX X.org 7 SuperKaramba Anubis ZENworks

Julho 2006

Criptografia de emails

Enlightenment Audacity Op LinuxWorld C & Python

Solução centralizada com o Anubis

Novell ZENworks 7.0 Gerenciamento completo de estações e servidores

venda proibida

XGL

» Desenvolvedor da Novell explica o XGL p. 24 » Cabeça da Red Hat descreve o AIGLX p. 28 » X.org 7.0: a grande mudança no X11 p. 32 » Crie widgets do SuperKaramba p. 36 » Aplicativos que se falam com o D-BUS p. 40

p. 22

9 771806 942009

Desktop 3D

Desktop 3D

R$10,90 € 5,50 Ed. 21 07/2006

00021 exemplar de assinante

Número 21

Número 21

Linux Magazine

a revista do profissional de ti

p. 64

p. 56

Veja também:

» Beleza diet: Enlightenment p. 44 » Grave podcasts com o Audacity p. 48 » Op: uma alternativa simples ao sudo p. 60 » Bibliotecas C no Python p. 72

http://supertuxbr.blogspot.com

W W W. L I N UX M AG A Z I N E . CO M . B R

C D D O A S S I N A NTE : U B U N T U 6 . 0 6 LTS D E S KTO P


~ SOLUÇoES LINUX

2 user free! gratuito para até 2 usuários

Transforme UM PC em até DEZ PCs

As soluções Ultra Thin Client da ThinNetworks permitem que até 10 usuários compartilhem os mesmos recursos e a capacidade de um único computador (PC Host) simultaneamente. Todos os usuários utilizam suas estações como se fossem PC’s individuais utilizando o sistema operacional Linux.

Basta conectar um monitor, teclado, mouse e caixas de som (opcional) a um computador já existente, instalar o software e configurar as novas estações. Os usuários poderão trabalhar em aplicações iguais ou diferentes ao mesmo tempo.

Multiplique seu PC A ThinNetworks disponibiliza 3 soluções baseadas no conceito Ultra Thin Client voltadas exclusivamente para área de trabalho Linux. O Desktop Multiplier, o Desktop Server e o DiscoverStation permitem que até 10 usuários compartilhem os mesmos recursos e a capacidade de um único computador simultaneamente. Reunindo um ambiente flexível, simples de baixo custo e baseado em janelas, o Desktop Multiplier, o Desktop Server e o DiscoverStation tornam-se a grande opção pra quem busca mais flexibilidade e redução de custos no ambiente de TI.

Novo Thin Client TC-Net 1 01 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

11 00 1 10 10 1 10 01 0 1 1 0 1 0 1 00 0 1 0 1 1

1 0 10 0 10 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 10 0 1 1 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 0 0 0 1 0 1 1

1 01 0 010 1 01 0 10 1 01 0 1 0 1 0

A ThinNetworks revoluciona o mercado de TI ao apresentar sua nova linha de Thin Client inicialmente composta pelo TC-Net e TC-Net 2. Contando com um sistema operacional exclusivo, o TC-NET OS, essa solução agrega redução de custos de aquisição e atualização, facilidade de instalação e manutenção, maior estabilidade e confiabilidade, maior segurança, baixo consumo de energia e tamanho compacto. O TC-Net conta com recursos de administração centralizados otimizando upgrades de software, manutenções de sistemas e configurações de permissão de usuário. Conta ainda com um servidor VNC para permitir o controle remoto de cada Thin Client, entre vários outros recursos. O TC-OS oferece suporte para clientes CITRIX-ICA, Microsoft RDP, XDMCP, VNC e Tarantella, além de diversas ferramentas e aplicativos para uso local (navegador, protetor de tela e outros).

*Disponível em versão PXE, sem sistema operacional, compatível com LTSP

vendas@thinnet.com.br Tel: (61) 3366-1333

http://supertuxbr.blogspot.com www.thinnetworks.com.br


Expediente editorial

Diretor Editorial Rafael Peregrino da Silva, rperegrino@linuxmagazine.com.br

Coordenador Editorial e Diretor de Arte Luciano Hagge Dias, lhagge@linuxmagazine.com.br Editor Emersom Satomi, esatomi@linuxmagazine.com.br

Tradução e Revisão Livea Marchiori, lmarchiori@linuxnewmedia.com.br Design da Capa Pinball, info@pinball-werbeagentur.de

Centros de Competência Centro de Competência em Software: Oliver Frommel, ofrommel@linux-magazine.com Centro de Competência em Hardware: Mirko Dölle, mdoelle@linux-magazine.com Centro de Competência em Redes e Segurança: Achim Leitner, aleitner@linux-magazine.com

Correspondentes & Colaboradores Augusto Campos, Daniel S. Haischt, Hagen Höpfner, Hans-Georg Esser, Joe Casad, Jon Watson, Karsten Jäger, Kevin E. Martin, Mário Meyer, Martin Kuppinger, Mathias Hopf, José Maria Ruíz, Oliver Frommel, René Rebe, Zack Brown. Diretor Comercial Claudio Bazzoli, cbazzoli@linuxmagazine.com.br

Anúncios: www.linuxmagazine.com.br/Advertise Brasil Claudio Bazzoli, anuncios@linuxmagazine.com.br Tel.: +55 (0)11 2161 5400 Fax: +55 (0)11 2161 5410 Todos os países (exceto Alemanha, Áustria e Suíça) Brian Osborn, ads@linux-magazine.com Tel.: +49 (0)6509 910 495 Fax: +49 (0)6509 910 497 Alemanha, Áustria e Suíça Osmund Schmidt, anzeigen@linux-magazine.com Tel.: +49 (0)6335 9110 Fax: +49 (0)6335 7779 Linux Magazine Rua Arizona, 1349 Conj. 5B – Cidade Monções 04567-003 – São Paulo – SP – Brasil Tel.: +55 (0)11 2161 5400 Fax: +55 (0)11 2161 5410

Assinaturas: www.linuxnewmedia.com.br assinaturas@linuxmagazine.com.br Na Internet: www.linuxmagazine.com.br – Brasil www.linux-magazin.de – Alemanha www.linux-magazine.com – Portal Mundial www.linuxmagazine.com.au – Austrália www.linux-magazine.ca – Canadá www.linux-magazine.es – Espanha www.linux-magazine.pl – Polônia www.linux-magazine.co.uk – Reino Unido www.linux-magazin.ro – Romênia

Apesar de todos os cuidados possíveis terem sido tomados durante a produção desta revista, a editora não é responsável por eventuais imprecisões nela contidas ou por conseqüências que advenham de seu uso. A utilização de qualquer material da revista bem como do CD-ROM incluso ocorre por conta e risco do leitor. O CD-ROM foi testado extensivamente e, até onde pudemos verificar, se encontra livre de qualquer vírus ou outro tipo de software de conteúdo malicioso, bem como de defeitos.

Nenhum material pode ser reproduzido em qualquer meio, em parte ou no todo, sem permissão expressa da editora. Assumese que qualquer correspondência recebida, tal como cartas, emails, faxes, fotografias, artigos e desenhos, são fornecidos para publicação ou licenciamento a terceiros de forma mundial não exclusiva pela Linux New Media do Brasil, a menos que explicitamente indicado. Linux é uma marca registrada de Linus Torvalds.

Linux Magazine é publicada mensalmente por: Linux New Media do Brasil Editora Ltda., São Paulo/SP, Brasil.

Direitos Autorais e Marcas Registradas © 2004 - 2005: Linux New Media do Brasil Editora Ltda. Distribuído por Distmag

Impressão e Acabamento: Parma ISSN 1806-9428

Impresso no Brasil

INSTITUTO VERIFICADOR DE CIRCULAÇÃO

em processo de filiação

Bem-vindo

Editorial

Ponto final ao tédio da CPU

Prezado leitor, prezada leitora da Linux Magazine, usuários de Linux têm o privilégio de poder acompanhar facilmente a taxa de utilização do processador do seu sistema enquanto trabalham: independentemente do ambiente de trabalho utilizado, é muito simples ativar um plugin ou applet qualquer que permite visualizar o quanto de CPU está sendo utilizado pelo sistema. E a constatação que se faz é simples: estamos desperdiçando poder de processamento à vontade! Com exceção de alguns picos de utilização, a média de uso do processador do usuário comum fica abaixo do 10% – no Linux isso é ainda mais “crítico”, uma vez que o sistema lida, via de regra, de modo extremamente otimizado com o processador. Quais são as opções para mudar esse cenário? Há algumas interessantes, como instalar programas de projetos “comunitários” que usem o tempo ocioso do processador – alternativas famosas nessa categoria são, por exemplo, o projeto SETI@Home (Search for Extra-Terrestrial Intelligence), Genome@Home, Folding@Home etc. Mas se você quer realmente ficar na “crista da onda”, a palavra de ordem atualmente é “virtualização”! Virtualização não é uma coisa nova: computadores de grande porte (os famosos mainframes) se utilizam dessa técnica notável há décadas. A novidade é que essa técnica está cada vez mais próxima do mundo dos computadores pessoais. Projetos, como o onipresente Xen, permitem que vários sistemas operacionais rodem em paralelo no PC, com uma perda de desempenho bem pequena. Empresas como AMD e Intel, envolvidas no projeto praticamente desde o seu início, têm desenvolvido tecnologias para seus processadores de múltiplos núcleos que possibilitam ao sistema de virtualização retirar ainda mais performance de cada CPU. Assim, técnicas como Pacifica e Van der Pool permitem, de acordo com a quantidade de processadores, distribuir processamento separadamente para múltiplos sistemas operacionais sem qualquer necessidade de alterações neles. Recentemente, também a Sun Microsystems anunciou a compatibilidade do OpenSolaris com o Xen, primeiro passo para que a compatibilidade com o sistema de paravirtualização de código aberto esteja disponível também no Solaris 10. Mas nem só de Xen vive a virtualização. Macacos velhos, como o VMware, deixaram há muito o estigma de “aplicativo” para rodar o Windows® no Linux (ou vice-versa), para tornar-se sinônimo de criação de infraestruturas de virtualização completas. O “novato” Parallels, de origem russa, também está entrando com tudo nesse mercado, a preços muito abaixo da concorrência. E por falar em concorrência, não nos esqueçamos também do Virtual PC, da Microsoft, que recentemente anunciou suporte ao Linux como “sistema convidado”. Usuários de Software Livre têm ainda a opção de usar o QEMU ou mesmo o Bochs, que, ao contrário dos outros projetos, emula inclusive o processador. Com a evolução e alta integração do hardware em blades de múltiplos núcleos de processamento, pôr fim à pasmaceira da CPU é imperativo. E sistemas de código aberto, mesmo enquanto mais recentes, mantêm a dianteira da tecnologia e do desempenho quando se trata disso. Ponto para o GNU! .

Rafael Peregrino da Silva Diretor Editorial

3

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Índice

Linux Magazine

Cartas

06

Notícias

10

Mundo livre em revista Com o pé direito

10 12

LinuxWorld estréia em São Paulo.

Entrevista – James Reinders, da Intel

16

Notícias do Kernel Dicas de [In]segurança

19 20

O que a Intel reserva aos programadores brasileiros?

Capa

22

Vida em 3D

Uma nova era se inicia no desktop Linux.

22

Muito além da decoração

24

Horizonte de luz

28

X Novo

32

Construção visual

36

Tráfego inteligente

40

Xgl, OpenGL e Compiz.

A área de trabalho acelerada da Red Hat. X.Org 6.9/7.0: a nova geração do X11. Crie temas do SuperKaramba. Comunicação entre processos com D-Bus e HAL.

4

12

Com o pé direito

Alto nível. Essas duas palavras resumem o que foi a primeira edição brasileira da LinuxWorld, evento que já acontece anualmente em 19 países do globo. Palestras, cases, painéis, debates e boa organização: com essa combinação não é à toa que o evento do ano que vem já conte com uma ampla adesão.

16

Compilação turbinada

Confi ra nessa entrevista exclusiva com James Reinders, da divisão de ferramentas de desenvolvimento da Intel, as novidades e soluções da companhia para o mercado brasileiro. Principalmente no ramo de compiladores e aplicativos de otimização de desempenho.

22

Vida em 3D

Antes do lançamento do Windows Vista®, a era dos desktops com efeitos acelerados no hardware gráfico está chegando ao mundo Linux. Convidamos dois insiders dos projetos mais promissores dessa área para detalhar suas tecnologias: o XGL, da Novell; e o AIGLX, da Red Hat. Ainda nesse tema, confi ra o que muda com a versão 7.0 do Xorg, a mudança mais significativa no X11 em mais de 10 anos de desenvolvimento. Aprenda também como construir um widget do SuperKaramba, o sistema que integra belos e funcionais mini-aplicativos à experiência do usuário. Outra tecnologia que vem trazendo recursos muito bem-vindos à área de trabalho Linux é o D-bus, que permite uma comunicação eficiente entre aplicativos do ambiente desktop. Agora que, integrado ao HAL, esse sistema está se consolidando, aprenda como tirar o melhor proveito dos aplicativos.

http://supertuxbr.blogspot.com julho 2006

edição 21


Linux Magazine

44

Faça-se a luz

Apesar de ainda ser uma versão de desenvolvimento, o Enlightenment Release 17 (ou E17) já é razoavelmente estável. Já valeria a pena confe� rir esse ambiente gráfico � apenas por um motivo: ele � segue um caminho bem �� próprio na definição de padrões para uma interface �� gráfica. Mas, além disso, é �� excepcionalmente agradável e leve também.

56

��

44

Gerente novo

Conheça o ZENworks Linux Management 7, o conjunto de aplicativos da Novell para gerenciar estações e servidores de grandes redes. Entre os principais recursos da nova versão, está uma interface retrabalhada, além da administração totalmente baseada em políticas de uso e o gerenciamento de novas instalações através de arquivos de imagem de disco.

64

Análise

44

Faça-se a luz!

Explorando o ambiente gráfico E-17.

48

Tutorial

48

Estúdio caseiro

Grave podcasts com o Audacity.

55

Proteção egípcia

Configurar a criptografia de emails não é uma tarefa muito simples. Principalmente se isso precisar ser feito de cliente em cliente, em uma rede extensa. A opção nesse cenário é o Anubis, um poderoso aplicativo servidor que centraliza toda a criptografia de mensagens em uma rede. Além disso, ele também pode realizar absolutamente qualquer tipo de manipulação em emails que saem ou chegam da rede. Acompanhe nosso passo-a-passo para começar uma implementação Anubis.

SysAdmin

55

56

Coluna do Augusto

Cadê o meu desktop? Foi para a web.

Gerente novo

Análise do gerenciador de sistemas ZENworks 7.

60

Root fácil

Op: alternativa ao sudo.

64

Proteção egípcia

Criptografia de emails com o Anubis.

72

Programação

72

Reutilização de código

Como usar bibliotecas C no Python.

76 76

Serviços

CD do Assinante

Dapper Drake, o melhor Ubuntu de todos os tempos.

78 80 82

Linux.local Mercado / Eventos / Anunciantes Na próxima edição

5

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Cartas

Escreva pra gente

Permissão de escrita

✎ Email do mês Quando vi a capa da revista (nº 20) não pude deixar de notar um erro, pois a capa diz “Linux Turbo”, mas a imagem é de um motor V8 aspirado. Eu sei que eu posso estar sendo chato, mas é só para avisar. Um abraço a todos. Luiz Bandeira

✎ Veja os fatos Sou assinante da revista e só tenho a agradecer pelo rico conteúdo apresentado na revista todos os meses. Meu email é sobre uma publicidade em específico. Não sei as estratégias de marketing da empresa, mas deixo minha opinião sobre a publicidade da Microsoft na mesma com a campanha “Veja os fatos”. Acho um pouco “estranho” dentro do conteúdo da revista. Apenas um comentário supérfluo, nada mais. Flávio Flávio, entendemos que o conteúdo do anúncio seja responsabilidade e prerrogativa exclusiva do anunciante. Quando o leitor encontra propaganda de cerveja na Veja, deve ele acreditar que a revista esteja defendendo o consumo de álcool? Obviamente que NÃO. Como usuários de Linux e partidários do Software Livre e de Código Aberto, somos também partidários da liberdade, que não deve ser restrita

6

apenas a nós ou quando está a nosso toda a quantia paga ao projeto Debian. favor. A Microsoft desejou se comunicar Depois de um certo tempo, quando eles com a comunidade de leitores da Linux perceberam que os anúncios na Linux Magazine e trazer a eles a sua mensagem. Magazine alemã não traziam retorno Por mais que não concordemos com o e que eles estavam patrocinando tanto seu conteúdo, seria um contra-senso de a revista quanto os projetos de Software nossa parte tolher a empresa desse direi- Livre que eles tanto combatem, pararam to somente por que a sua propaganda de anunciar. é contrária ao Linux. A empresa pagou Esperamos ter esclarecido a nossa pela publicidade como qualquer outra posição. Sugerimos apenas que procure e tem direito de anunciar. Como disse nos julgar pelo nosso conteúdo editorial Voltaire, “posso não concordar com o que e pelas nossas atividades em prol do dizes, mas defenderei até a morte o teu Software Livre e não pelo conteúdo das direito de dizê-lo!” propagandas dos nossos anunciantes (que Pensamos bastante antes de aceitar o estão, naturalmente, tentando vender o anúncio. Perceba que a Linux Magazine “seu peixe”). Rafael Peregrino - Editor é um veículo de mídia independente, que tem sua linha EDITORIAL especializada Erratas em Linux e Tecnologias Abertas em geral. Essa linha é imutável! Mas, na parMeteorologia te publicitária, QUALQUER anunciante Na Linux Magazine 19, foi publicado um erro de informação na entrevista “Os pingüins que se sujeite às condições comerciais da Band”. Por engano dos entrevistados, o da empresa tem o direito de veicular sua nome da empresa de meteorologia citado na propaganda, desde que o conteúdo do pág. 13 foi publicado de maneira incorreta. anúncio não seja ilegal ou ofensivo. Assim, Trata-se da SOMAR (Southern Marine Weather Services) e não da ClimaTempo. a decisão de aceitar o anúncio na revista foi, pessoalmente, difícil, mas, reitero, Inicialização no Debian temos que ser coerentes com as nossas Na Linux Magazine 19, foi publicado um erro na pág. 34, no artigo “Turbina de Dados”. O convicções e nossos ideais de liberdade. nome correto do script de inicialização do DeComo dito acima, a Microsoft já publicou bian é /etc/init.d/rc. O erro foi notado anúncios com a gente na Alemanha e, da pelo leitor João Carlos Gomes da Costa. primeira vez que isso ocorreu, doamos

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


SEJA LIBRIX NA RUA, SEJA LIBRIX EM CASA, SEJA LIBRIX NO TRABALHO.

A solução completa.

Agora, além do Librix (Linux da Itautec), a sua empresa pode contar com o melhor e mais estável pacote de hardware e software do mercado, testado e homologado pela Itautec.

DPZ

Toda a liberdade que você precisa para trabalhar com mais mobilidade, usando a internet sem fio, e ainda operar com software livre. É mais segurança, porque a Itautec oferece suporte técnico especializado via internet ou pelo telefone, serviços de tuning e configuração e ainda atendimento nacional on site. Tem alta tecnologia para os aplicativos como editor de textos, planilha eletrônica, editor de imagens e apresentações. É mais facilidade e maior flexibilidade no seu dia-a-dia. Na hora de trabalhar, não se sinta preso. Seja Librix.

Foto ilustrativa.

• Compre com 256 MB de memória e leve com 512 MB, sem custo adicional • Software de gerenciamento: Auto Manager Server Monitor

Foto ilustrativa.

Monitor de 15” incluso

Itautec Minitorre

Servidor Itautec LP100

Código da oferta: IN-521LX

Código da oferta: SI-305LX

IDEAL PARA ACESSO À INTERNET E COMUNICAÇÃO.****

• Processador Intel® Celeron® D 315 (256 KB de cache L2, 2.25 GHz, FSB 533 MHz) • 256 MB de memória • HD 40 GB • Floppy • CD-RW • Placa de vídeo integrada • Placa de rede integrada • Fax/Modem 56 Kbps • Teclado e mouse • Monitor de 15”• LIBRIX - Distribuição Linux Itautec • 1 ano de garantia balcão*****

R$

1.249,00

à vista

ou 24 parcelas de R$ 57,28

Condições para venda a pessoa física através do Programa Computador para Todos.**

MELHOR RELAÇÃO CUSTO-BENEFÍCIO.

• Processador Intel® Pentium® 4 530 com Tecnologia HT (1 MB de cache, 3 GHz, FSB 800 MHz) • 256 MB de memória DDR2 400 com ECC • HD SATA 80 GB fixo • Floppy 1,44 MB • CD-ROM 52x IDE • Placa de vídeo 32 MB • 2 interfaces de rede Gigabit • Teclado e mouse • Não inclui sistema operacional • 1 ano de garantia on site***

71 52

Parcelas a partir de R$ Financiamento em até 36x R$ 2.099,00 à vista

,

*

www.itautecshop.com.br CO M P R E D I R E TA M E N T E D O FA B R I C A N T E

PRESENTE EM MAIS DE 2.700 CIDADES.

0800 121 444

De 2ª a 6ª, das 8h às 20h. Sábado, das 9h às 18h. Domingo, das 9h às 15h.

Ofertas válidas até 15/7/2006 ou enquanto durarem os estoques. Celeron, Celeron Inside, Centrino, o logotipo Centrino, Core Inside, Intel, o logotipo Intel, Intel Core, Intel Inside, o logotipo Intel Inside, Intel SpeedStep, Intel Viiv, Itanium, Itanium Inside, Pentium, Pentium Inside, Xeon e Xeon Inside são marcas registradas ou marcas da Intel Corporation ou de suas filiais nos Estados Unidos e em outros países. *Financiamento para pessoa jurídica através do cartão BNDES, com taxa de 1,22% a.m. Necessário possuir o cartão de crédito citado, sujeito a confirmação da disponibilidade da linha de crédito para as localidades e limite para a operação. Consulte nossa Central de Atendimento para informações sobre outras condições de financiamento para pessoa física ou jurídica pelo telefone 0800-121-444. **Entrada de R$ 49,00. Financiamento através da Caixa Econômica Federal. Programa Computador para Todos. Limite máximo de financiamento de 24 meses. Juros de 2% a.m. e TAC de R$ 40,00. Operação isenta de IOF. ***Garantia de um ano on site, de 2ª a 6ª, das 8h30 às 18h, em um raio de 50 km do Centro de Serviços Itautec mais próximo. ****Para possibilitar o acesso à internet são necessários uma linha telefônica ou banda larga e um provedor à sua escolha. A velocidade de comunicação de 56 Kbps depende e pode variar de acordo com o tipo e a qualidade da linha telefônica utilizada. *****Garantia balcão de um ano para partes, peças e serviços. Preços com impostos inclusos para São Paulo. Frete não incluso. Demais características técnicas e de comercialização estão disponíveis em nosso site e no Televendas. Fica ressalvada eventual retificação das ofertas aqui veiculadas. Quantidade: 10 unidades de cada. Empresa/produto beneficiado pela Lei de Informática. Fotos meramente ilustrativas.

http://supertuxbr.blogspot.com


Cartas

Escreva pra gente

✎ Autopackage

✎ iptables

Tenho lido algumas discussões a respeito de um instalador padrão para os aplicativos das diversas distribuições GNU/Linux. Conforme nota de lançamento na edição de número 19, entrei no site do aplicativo XaraLX para baixar o código-fonte (segundo a nota, a única forma disponível para download). Porém descobri que os desenvolvedores distribuíram o aplicativo no formato autopackage (www.autopackage. org ). O objetivo do autopackage é justamente criar um ambiente de instalação amigável para aplicativos comerciais (ou não). Segundo o site do autopackage, o mesmo não visa substituir o gerenciamento de pacotes das distribuições (como RPM ou DEB ), pois esses são essenciais para a instalação básica e principais aplicativos do sistema. Instalei o package XaraLX sem problema nenhum (principalmente dependência), de forma totalmente intuitiva em ambiente gráfico. Instalei ainda o jogo SCOURGE também sem problema algum. Nunca pensei que um dia instalaria um programa no GNU/Linux apenas clicando em “Avançar/Avançar/Concluir”. O autopackage cria entradas no menu do KDE e um aplicativo gráfico para desinstalar os programas. Acho que seria uma ótima alternativa para os desenvolvedores que querem distribuir o seu programa independente de distribuições GNU/Linux. Rafael M. Raposo Nilópolis - RJ Realmente, Rafael, o autopackage é uma solução bem prática, como o Klik. No momento da redação daquela nota, a única forma disponível de download era o código-fonte. ■

Gostaria de fazer uma sugestão para alguma edição posterior: não sei se já saiu alguma revista com esse conteúdo, mas eu nunca vi nenhuma que abordasse de forma um pouco mais detalhada. Gostaria de pedir que fosse elaborado um material falando sobre roteamento, falando um pouco sobre o Netfilter, o Iptables, como criar as regras, exemplos comuns tais como redirecionamento de porta para uma DMZ, por exemplo, matches do Iptables (módulos limit, string, mac, state etc..). ■ João Carlos Gomes da Costa

8

✎ Biometria Não sou assinante da Linux Magazine, mas compro a revista todos os meses. Gostaria, se possível, que fosse publicado na revista um artigo sobre biometria no Linux. Esse tipo de serviço está sendo bem comum em Porto Alegre (RS), onde eu moro. Muitas empresas estão aderindo ao “cartão de ponto” com sistemas de biometria. Uma solução com Linux ( Slackware ) + Mysql + Apache seria bem interessante. Onde seria posto um servidor, com o Apache rodando para mostrar a hora que cada funcionário marca o seu ponto. No caso, a tela do browser seria um relógio mostrando a hora atual e se o usuário está marcando a entrada ou saída. ■ Rafael Tomelin

✎ Problema de envio Em primeiro lugar, gostaria de parabenizar a revista pelo excelente trabalho (vocês devem estar cansados de tanto ouvir isso, mas não me canso de dizer, realmente a revista é ótima). Bom, mas vamos ao que interessa. A edição 18 da revista até hoje não chegou aqui em Salvador. Estou achando que tem alguma coisa errada. Vocês

poderiam me explicar? Comprei a primeira edição da EasyLinux, mas a LM nada. Tem algum problema com o envio para o Nordeste? E, aproveitando o email, gostaria de saber quando vocês colocaram alguma coisa sobre programação de clusters e de alta performance. Como é um ramo que estou estudando, queria ver alguma coisa assim na revista. Muito obrigado e axé pra vocês :) Marcelo Marcelo, repassamos sua informação para nossa distribuidora, para saber o que está acontecendo. Se houver leitores com o mesmo problema, por favor entrem em contato. Sobre suas sugestões, planejamos no futuro abordar sim esses assuntos. O mais perto que uma edição antiga chegou do tema foi na Linux Magazine 11, com um artigo sobre clusters MySQL. ■

✎ Menor do mundo? Sobre o artigo na pág. 15, março de 2006, o micro da Shimafuji não é bem um lançamento: http://linuxdevices.com/news/ NS4228247530.html. Notem que a matéria da LinuxDevices é de 2004. O detalhe é ele ser compatível com PC/AT. Já o menor micro Linux, provavelmente é o Picotux: http://www.picotux.com. Se o site não abrir, é melhor ver a matéria: http:// linuxdevices.com/news/NS8386088053.html. Massa Obrigado pelos links, Massa. Você tem razão. Falha nossa. ■

Problemas com Linux? Não temos como responder os inúmeros emails com dúvidas sobre aplicativos, configurações e problemas de hardware que chegam à redação. Esta seção se destina a comentários e dúvidas relacionadas à revista Linux Magazine. Infelizmente (ou felizmente!), não somos uma empresa de suporte a distribuições e aplicativos Linux.

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


Oracle Grid

Todos os seus bancos de dados

Em GRID Sem desperdício de capacidade Sem desperdício de dinheiro Sem ponto único de falha

Oracle Grid É rápido... é barato... E está sempre disponível

oracle.com/grid ou ligue para 0800.901.985 Obs.: “Sempre disponível” indica que, se um servidor cair, seus aplicativos continuam rodando.

http://supertuxbr.blogspot.com Copyright © 2005, Oracle. Todos os direitos reservados. Oracle é uma marca registrada da Oracle Corporation e/ou de suas afi liadas. Outros nomes podem ser marca registrada de seus respectivos proprietários.


Notícias

Mundo livre em revista Curtas

❐ MS Office vai abrir e salvar Open Document

Onda de aquisições Oracle

Recentemente, a Oracle adquiriu mais três empresas de software: a Portal Software, do ramo de faturamento e gestão de ingressos; a Demantra, da área de planejamento orientado pela demanda; e a Telephony@Work, fornecedora de aplicativos baseados em IP para serviços hospedados das centrais de atendimento. A empresa lançou também o projeto Oracle's Validated Configurations, que lista as configurações Linux (Suse e Red Hat) ideais para as soluções Oracle (http://tinyurl.com/muthn).

Migração em concessionária

A Carbel, maior concessionária VW em Minas Gerais, começou a migração de seus 150 desktops para Linux. O projeto é baseado na parceria com a Spress Informática, desenvolvedora do Dealer System, sistema líder na gestão de concessionárias. Esse aplicativo roda em Linux. A empresa teve uma boa experiência com essas estações de trabalho e vai estender a migração para todos os desktops.

Itautec compra Tallard

A Itautec adquiriu a Tallard Technologies, empresa americana líder em serviços, vendas e distribuição de computadores e equipamentos de telecomunicações para a América Latina. Fundada em 1983, a Tallard é distribuidora exclusiva IBM nos países latino-americanos onde possui filiais. Além disso, a empresa é canal de distribuição em vários países da América do Sul das marcas Apple, Avaya e de outros produtos relacionados à Internet e comunicações.

A Microsoft anunciou que a próxima versão de seu conjunto de aplicativos Office vai salvar e abrir documentos ODF (Open Document Format), também conhecido como ISO 26300. Esse é o formato padrão do OpenOffice.org, além de ser compatível com diversos outros aplicativos. A MS vai patrocinar um projeto de código aberto para criar um plugin com essa funcionalidade. O Office

2007, previsto para janeiro, já deve vir com essa função. Segundo a Microsoft, está havendo demanda por esse formato por parte de governos. O estado de Massachussetts (nos EUA) e a Bélgica já decretaram que o ODF deve ser o formato padrão para os documentos de suas repartições públicas. Como esse movimento pode ser seguido por diversos outros órgãos públicos no mundo, haveria uma considerável perda de clientes caso o Office não adotasse o formato. ■

❐ Linux em “Carros” Assim como todos os grandes estúdios de animação, a Pixar, da Apple, também depende de Linux em suas produções. O longa-metragem “Carros” é a animação visualmente mais complexa que o estúdio já produziu. Renderizar as seqüências exigiu muito processamento. Em comparação com o filme “Os Incríveis”, por exemplo, as seqüências de “Carros” levavam 10 vezes mais tempo para serem processadas. Para isso, foi usado um aplicativo proprietário da Pixar, que roda em Linux, conforme revelou Bill Kinder, diretor de pós-produção da Pixar, ao site TechWeb. Apesar de ser uma plataforma de trabalho própria, ela é capaz de importar seqüências feitas no Autodesk Maya, um dos softwares mais utilizados para esse tipo de animação. ■

Thin clients Blanes

A Tecnoworld e a Blanes participaram no 12º Conip (Congresso de Informática e Inovação na Gestão Pública) com sua solução de thin clients Linux. Entre os produtos apresentados, a Blanes demonstrou seu Desktop Corporativo, o SBA (servidor Linux para thin clients) e o Linux Embarcado (para thin client ou PC).

10

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


Notícias

Curtas

❐ Xandros em pt-br A empresa XandrOS Inc. também está chegando oficialmente ao Brasil. O escritório em SP deve ser inaugurado em breve, conforme anunciou James Largotta, executivo-sênior da companhia. A distribuição Xandros está sendo traduzida para o português brasileiro e as versões desktop e server do sistema serão lançadas sem demora no mercado nacional. Um dos ambiciosos objetivos da empresa é fazer da versão servidor dessa distribuição uma solução capaz

Prêmio para desenvolvimento

de ser usada por administradores sem experiência específica com Linux. Não perca, na próxima edição, a entrevista completa com James Largotta. ■

A Univale (Faculdades Integradas do Vale do Ivaí) vai premiar com US$ 3.000 o melhor projeto de software que facilite o trabalho colaborativo entre pesquisadores brasileiros e estrangeiros. Trata-se do 1º Prêmio Antonio Pietrobon de Software Livre aplicado à pesquisa médica. Mais informações em http://www. univale.com.br/livre. A Univale também vai promover entre 20 e 21 de outubro a 2ª Semana Software Livre Univale, em Ivaiporã (PR). Serão realizadas palestras sobre Mono, XUL (XML User Interface Language), Web 2.0, entre outros temas.

IBM investe US$ 2,2 bi

❐ Red Hat abre escritório em SP

❐ Pingüim vira estrela em feira de bancos

Ao adquirir as operações locais de seu distribuidor na América do Sul, a Red Hat abriu escritórios em São Paulo e Buenos Aires. Com isso, a empresa está aumentando sua presença nas áreas de suporte, treinamento, vendas e ofertas de soluções localizadas. “A América Latina é um mercado com inúmeras oportunidades. Aumenta a adoção de tecnologias Open Source entre as empresas públicas e privadas da região. Nossa presença direta neste mercado reforçará o apoio às comunidades locais e ajudará a promover a adoção das tecnologias de código aberto”, disse Matthew Szulik, principal executivo e presidente do conselho da Red Hat. Entre os clientes da empresa, estão o Serpro (Serviço Federal de Processamento de Dados) e o Bradesco. ■

Durante o 14º CIAB Febraban, evento de TI para a área bancária, diversas soluções Linux ganharam os holofotes. Entre elas, a “maior implantação Linux em bancos do mundo”. Trata-se do case do Banco do Brasil, a ser concluído neste ano. São 40 mil terminais de atendimento, 60 mil estações de trabalho e 5,5 mil servidores. Todos rodando Linux! Segundo o banco, isso gera uma economia de R$ 53 milhões, principalmente em royalties. Ainda no tema “maior do mundo”, o banco holandês ABN Amro demonstrou seu gigantesco case de outsourcing de serviços, assumidos por cinco empresas: as americanas IBM, Accenture e as indianas Tata Consultancy Services, Infosys Technologies e Patni Computer Systems. O CIAB Febraban foi realizado entre 21 e 23 de junho, em São Paulo. ■

❐ Suporte 0800 para Linux A Intel e a Stefanini IT Solutions anunciaram a criação do primeiro canal de suporte a usuários de Linux. Através de uma central de atendimento, os clientes desse sistema podem tirar dúvidas sobre configurações, funcionalidade, terminologias, entre outras.

O programa é resultado da experiência bem sucedida do projeto OSSL (Open Source Software Laboratory), primeiro laboratório de instalação e manutenção da plataforma Linux do Brasil, iniciado em novembro de 2004 para atender, a princípio, a demanda do programa Computador para Todos. ■

A IBM investirá US$ 2,2 milhões na expansão do Centro de Tecnologia Linux no Brasil em 2006. Parte desse investimento já está sendo utilizado para construir um segundo laboratório em Hortolândia (interior de SP). O primeiro laboratório do LTC fica em Campinas, na Unicamp, e também está sendo expandido. O Centro de Tecnologia Linux no Brasil, que conta atualmente com 10 profissionais, comportará agora 45 especialistas em desenvolvimento de componentes internos do Linux. Apenas em Hortolândia, mais de 150 mil dólares estão sendo investidos em equipamentos.

HP na Santa Ifigênia

Através de uma parceria com a distribuidora Alcatéia, computadores HP dx2025 (com Mandriva pré-instalado) estão sendo vendidos oficialmente na rua Santa Ifigência, tradicional reduto do comércio de computadores e peças na capital de São Paulo. Esse modelo faz parte do programa Computador para Todos. No mercado mundial, a HP já é pelo 16º trimestre consecutivo a empresa que mais vende servidores (incluindo máquinas com Linux e Unix) do mundo, segundo pesquisa da IDC. Também é líder no mercado de computação de alto desempenho (HPC - High Performance Computing).

Insigne Six-System

A Insigne apresentou a solução Six-System durante a Linux World, evento realizado em maio, em SP (leia mais na pág. 12). Trata-se de um aplicativo que divide uma única estação de trabalho para seis usuários simultâneos. O programa roda na distribuição Insigne 4.0 GNU Linux. O Six-System inclusive separa o áudio de cada usuário.

11

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Notícias

Evento

LinuxWorld™ Conference & Expo 2006 no Brasil

Com o pé direito Alto nível. Essas duas palavras resumem o que foi a primeira edição brasileira de um evento que já acontece em 19 países. Palestras, cases, painéis, debates, aliados com muitos anúncios expressivos dos fornecedores de soluções de código aberto e boa organização: com essa combinação – e o sucesso que adveio dela –, não é à toa que o evento do ano que vem já conte com uma ampla adesão. por Rafael Peregrino da Silva

E

ntre os dias 23 e 26 de maio deste especiais. Com 2.500 visitantes – 10% ano, no Centro de Convenções do dos quais conferentes –, 78 sessões de hotel Gran Meliá WTC São Paulo, conferências, divididas em cinco macroapós quase um ano de preparação, a pri- temas, e 40 expositores, a LinuxWorld meira edição brasileira da LinuxWorld™ já se estabeleceu como evento perene, Conference & Expo se tornou finalmente superando as expectativas de David uma realidade – e um sucesso “de pú- Korse, presidente e CEO do IDG World blico e crítica”. A união dos esforços de Expo, que, em entrevista exclusiva à representantes do mercado de soluções Linux Magazine [1], disse apenas esperar abertas no Brasil, bem como de grandes “que todo mundo que estiver presente usuários corporativos de tais soluções ache que foi um bom investimento do – que formaram o conselho consultivo do seu tempo. Que a primeira edição do evento –, aliada à larga experiência de evento no país pavimente a via e crie gestão de eventos da subsidiária brasilei- ‘momento’ para uma segunda edição, e ra da Reed Exhibitions, maior promotora este para uma terceira, até que o evento de feiras de negócios e eventos corpora- se estabeleça no mercado.” tivos do mundo, foram decisivos para o resultado da conferência. Foram diversas Bom programa, reuniões com o objetivo de imprimir à edição local da LinuxWorld “a cara” do bem diversificado e com Brasil, criando uma grade de palestras, casos de sucesso de implementação e painés de qualidade, e que atendesse o bons palestrantes nosso mercado. Todo esse trabalho de preparação resultou em alguns números impressionantes, especialmente considerando que É interessante notar como a trajetória que se trata da primeira edição do evento levou ao acontecimento – e ao sucesso no país: foram 6 keynotes speakers e 99 – dessa conferência foi realizada de forma palestrantes, três dos quais convidados colaborativa, bem ao estilo das soluções

Bastidores

12

apresentadas no evento. Em outubro de 2004, durante a realização da LinuxWorld Conference & Expo em Frankfurt, Alemanha, por conta da parceria internacional de mídia entre a Linux Magazine e o IDG World Expo, uma recém-fundada Linux New Media do Brasil, presente naquela edição da conferência, foi abordada no sentido de viabilizar a realização do evento no Brasil. A Reed Exhibitions foi escolhida para organizá-lo, e os resultados todos conhecemos.

Local e infraestrutura O espaço do Centro de Convenções Gran Meliá WTC São Paulo estava “na medida” para o número de participantes e atividades programadas para este ano. Diante do sucesso alcançado, é questionável se o mesmo espaço irá ser capaz de comportar a próxima edição. Estandes bem montados, salas bem preparadas para suas atividades-fim, e uma estrutura de TI bem dimensionada serviram para compor o ambiente de maneira quase ideal para participantes e expositores. Alguns “torceram o nariz” para a oferta de conectividade móvel da VEX, padrão no local: além de ser considerada cara, em um evento de profissionais de TI de alto nível o tráfego

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


Evento

de dados sem-fio deveria ser criptografado por padrão, o que não era o caso. A escolha por São Paulo também foi acertada: estava faltando um evento Linux dessa magnitude voltado para o público corporativo na maior cidade do país.

Patrocínio Praticamente todas as empresas de expressão nacional e internacional na área de TI estavam presentes como expositores. Como não podia deixar de ser, a IBM e a HP estavam mostrando poderosas soluções de hardware para as mais diferentes finalidades, todas rodando Linux e outras aplicações de código aberto. Soluções de virtualização eram onipresentes, bem como computação de alto desempenho. Os técnicos nesses estandes estavam “afiados”, ilustrando com cases reais o uso prático do hardware dos fabricantes, combinado com soluções em Software Livre. Podemos citar, por exemplo, a simulação de crash tests automotivos, para verificar a eficiência de itens de segurança, material e estrutura de protótipos. Uso semelhante é realizado pela Petrobrás em prospecção de petróleo, que para isso usa um dos 20 maiores clusters do mundo, rodando em Linux. O investimento em hardware para simulação é ridículo se comparado ao custo de criação e manutenção de ambientes reais de teste ou prospecção. Isso mostra também que o custo não é o fator condicionante da escolha de soluções de código aberto, mas principalmente a sua confiabilidade, segurança e desempenho, bem como a sua flexibilidade e facilidade de customização. Os estandes da Itautec, da Novell e da Red Hat também estavam presentes, oferecendo linhas de produtos diretamente concorrentes. A Itautec, enquanto também produtora de hardware, desfilou uma série de servidores, desktops e laptops topo de linha com diferentes versões pré-instaladas do Librix (desktop, AD e servidor).

No estande da Novell, as atenções se voltavam especialmente à nova interface polida e tridimensional do Suse Linux Enterprise Desktop (SLED), fornecida pela dupla XGL e Compiz, demonstrada incansavelmente a todos que desejavam conhecê-la. Havia técnicos de sobra também para apresentar as outras soluções da empresa, tais como ferramentas de colaboração, de gerenciamento de identidade e ciclo de vida de colaboradores em uma empresa. No estande da Red Hat ocorriam apresentações periódicas sobre soluções e novidades da empresa, que dispõe agora de uma subsidiária nacional (mais a respeito a seguir). A Intel patrocinou o CyberCafé Garden, um espaço aberto aos visitantes do evento com vários laptops para navegação na Internet, nos quais estava instalada a versão preliminar do SLED, dotada de todos os recursos gráficos dos quais ouvimos falar nos últimos meses. Outros dois expositores merecem destaque: a australiana ThinLinx, pelo seu projeto Hot-e, um terminal leve baseado na arquitetura ARM do tamanho de um HD comum e com entradas e saídas que

Notícias

fariam inveja ao melhor dos PCs. Do lado do software, o sistema usa o NX para trazer ao sistema local uma interface gráfica remota – conforme pudemos verificar em demonstração realizada por John Nicholls, CEO da ThinLinx. Nosso segundo destaque é a presença da Xandros, que veio ao Brasil trazer o seu novo lançamento, o Xandros Server, além da notícia de que abrirá em breve uma subsidiária aqui no Brasil. Não deixe de ler, na próxima edição, a entrevista exclusiva com James Largotta, Diretor Executivo da empresa para a América Latina, que conta em detalhes qual será a estratégia da empresa no Brasil. Do lado das soluções, ficamos satisfeitos em ver a iFractal com um estande mostrando seu sistema ERP+CRM, a CrackIT, com sua solução firewall/proxy, a SnapIT, trazendo o seu conjunto integrado de soluções de TI corporativa e, como não podia deixar de ser, a Solis, mostrando que o modelo comercial de cooperativa é uma alternativa viável para realizar negócios com Software Livre. A Insigne Free Software também estava lá, demonstrando as últimas versões do Insigne GNU/Linux e do Insigne Six-System. ➟

Figura 1: Apresentações da nova interface gráfica da Novell chamaram bastante atenção.

13

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Notícias

Evento

Novidades

solução flexível baseada em softwares desse tipo de plataforma tem sido cresAlém da chegada da Xandros no Bra- padronizados. O pacote é composto pelo cente. Entretanto, não existia nenhum sil, houve também outros anúncios de Novell Open Enterprise Server, Novell atendimento profissional para tirar as expressão, naturalmente reservados GroupWise 7, ZENworks Suite 7, o siste- principais dúvidas dos usuários. Por isso, a sete chaves para “causar sensação” ma operacional Novell Linux Enterprise a criação do 0800. A expectativa é que o durante o evento. Dentre eles, desta- Desktop, e o conjunto de aplicações para serviço se torne uma grande central de camos a tão aguardada chegada “de escritório OpenOffice.org 2.0 para Win- atendimento para o sistema Linux que mala e cuia” da Red Hat no Brasil e dows® e Linux. Segundo Ricardo Fer- está em crescimento contínuo. Para ter na Argentina. Em uma coletiva de im- nandes, presidente da Novell do Brasil, uma idéia do tamanho do mercado, de prensa, Alex Pinchev, vice-presidente comparado ao principal concorrente, o acordo com o levantamento ‘Impacto executivo global de vendas da empresa, produto da Novell pode gerar uma eco- do Software Livre e de Código Aberto anunciou a aquisição das operações nomia de mais de 70%. na Indústria de Software do Brasil’, dilocais da Latin Source Technology, seu Outro anúncio importante – que faz vulgado pelo Ministério de Ciência e distribuidor master. Com a Red Hat parte da estratégia da Intel de viabilizar Tecnologia, o Linux pode assumir uma Brasil, com sede em São Paulo, e a Red um ecossistema de soluções baseadas em fatia de 18% do mercado mundial de Hat Argentina, com sede em Buenos código aberto para o mercado corpora- sistemas operacionais até 2007, saindo Aires, a empresa expande sua presença tivo – foi a criação, com a Stefanini, do dos 9% atingidos em 2003.” na região nas áreas de suporte, treina- primeiro canal de suporte a usuários de Além desse comunicado, a Intel anunmento e vendas, bem como na oferta software livre. Através de uma central ciou, em parceria com a Linux New Mede soluções localizadas. de atendimento exclusiva, os usuários dia do Brasil, o lançamento do Guia de TI Adicionalmente, a empresa aprovei- do sistema vão poder, a partir de agora, – Soluções em Tecnologias Abertas, com tou a oportunidade para formalizar a tirar dúvidas específicas sobre recursos, o objetivo de consolidar as informações contratação de Marcelo Tosatti, um configurações, terminologias técnicas, sobre soluções e sistemas baseados em dos nomes de maior destaque no cená- entre outras. Segundo Zenos Strazzeri Software Livre e de Código Aberto (SL/ rio de desenvolvimento de software de Araujo, diretor de serviços para infra-es- CA), além de fornecer um catálogo de código aberto, que vai ocupar o cargo tutura da Stefanini, “a demanda pelo uso seus fornecedores. de engenheiro de software e prograQuadro 1: Bill Hilf versus Maddog – ou será que é a favor? mador, tendo como principal função atuar no projeto One Laptop Per Child De acordo com Sulamita Garcia, da EDS Brasil, “o discurso de Bill Hilf, no geral, todo mundo pode (OLPC), cujo objetivo é desenvolver adivinhar: interoperabilidade é a palavra de ordem. Com dezenas de sistemas em todos os níveis, desde hardware, conectividade de rede, bancos de dados e sistemas operacionais, não se pode mais um laptop de US$ 100, destinado a exigir que o cliente mude toda sua estrutura por causa de determinada peça do ambiente”. Bill Hilf crianças em idade escolar, principaldeixou claro que a Microsoft não se aproxima do código aberto por questões filosóficas, mas sim mente de países em desenvolvimento. porque faz sentido do ponto de vista de negócios. Tosatti também será responsável pelo Seguindo o velho preceito inglês: “Mantenha seus amigos perto, e seus inimigos mais perto ainda”, a kernel Linux do sistema. O desenvol- Microsoft está fazendo “a lição de casa”. Como comentamos na cobertura do FISL, na edição anterior vimento do hardware do OLPC está a da Linux Magazine [3], depois da carraspana de quase ter perdido o trem da Internet, a empresa não brinca mais em serviço, quando se trata da concorrência. É bom mesmo: segundo Maddog, a cargo da AMD. ameaça do Linux e do Software Livre e de Código Aberto à supremacia atual da Microsoft é “tão A Novell aproveitou o evento para certa como o nascer do sol”. anunciar o lançamento mundial da Novell® Open Workgroup Suite. A solução, Em seu blog, Bill Hilf relata como foi a conversa com Maddog e com outras duas personalidades bem conhecidas no cenário Open Source brasileiro: César Brod, da Solis, e Hélio Chissini de Castro, uma combinação inteligente de ferrada Mandriva Conectiva. A tônica foi de discordância pacífica em alguns pontos, mas forte concormentas colaborativas proprietárias da dância em muitos deles, especialmente no que tange à liberdade de escolha que se deve oferecer Novell com aplicativos de código aberto, ao cliente e à necessidade de fornecer interoperabilidade, sob pena de perder negócios do contrário. faz parte da estratégia Software for the “Escolha e concorrência são ótimos, para todo mundo. Nós acreditamos que todos, inclusive os desenvolvedores, têm o direito de escolher como vão licenciar seu trabalho. Liberdade começa aí: Open Enterprise, lançada pela empresa deixe-me escolher o que eu vou fazer com meu trabalho; não me obrigue a seguir seu caminho ou na edição deste ano do BrainShare® [2], sair do caminho, deixe-me escolher o meu caminho”. e oferece ao mercado corporativo uma

14

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


Evento

Notícias

Como ocorre em toda LinuxWorld Conference & Expo ao redor do mundo, o Linux Professional Institute (LPI), responsável pelo conjunto de certificações dos mais reconhecidos do mundo na área, aplicou durante o evento, nos dias 24 e 25 de maio, as provas 101 e 102 (LPIC1). Houve um recorde de participantes nas provas.

Palestras As palestras foram mais um ponto alto do evento. Apesar do número de conferentes ter ficado um pouco abaixo do que a organização esperava, os 250 inscritos tiveram acesso ao que há de mais atualizado no “front” Open Source. Os keynotes speakers eram todos de alto quilate: David McDonnel, diretor de Open Source e Linux da HP/USA, Jeff S. Smith, vice-presidente de Open Source e Linux Middleware do grupo de software da IBM, Shane D. Wall, vicepresidente e gerente geral do grupo de soluções de plataformas para canal da Intel, o onipresente Jon ‘maddog’ Hall, diretor executivo da Linux International, William Maggs, ex-CTO da Palm e atual diretor de tecnologia da Motorola, Guy Lunard, gerente de produto da Suse Linux Enterprise Desktop da Novell e William Weinberg, arquiteto especialista em Open Source dos Open Source Development Labs (OSDL). Como palestrantes convidados participaram Alex Pinchev, vice-presidente executivo global de vendas da Red Hat, Marcos Vinícius Ferreira Mazoni, secretário executivo da CELEPAR, e Bill Hilf, responsável pelo laboratório de interoperabilidade com Linux e sistemas de Código Aberto da Microsoft (mais a respeito da participação de Bill Hilf no quadro 1). Das 96 palestras restantes, divididas em 5 macro-temas (padrões abertos, integração, segurança, desktops e aplicativos e programação), vale destacar

Figura 2: Encontro inusitado? Nem tanto: muita concordância entre Maddog e Bill Hilf (Microsoft). a de Omar Kaminski, sobre a GPLv3 e sua aplicabilidade em conjunto com o sistema jurídico brasileiro, a de Paulo Fernandez, da HP, sobre migração, a de Valter Monteiro Jr., da Marinha do Brasil, sobre perícia forense com ferramentas Linux, a de Marlon Dutra, da Propus Informática, sobre terminais leves, e a de Fábio Ávila, da Itautec, que apresentou uma análise comparativa de desempenho entre o MySQL e o PostgreSQL. Houve muitas outras que poderíamos destacar aqui, mas não o fazemos por simples falta de espaço.

Cases, painéis e debates Para todos os gostos, de todos os tamanhos, em praticamente todas as áreas. Merecem destaque o caso de sucesso da Droga Raia, o de alto desempenho da Petrobrás e o que tratou da evolução dos ambientes Linux dentro das Casas Bahia. Dentre os painéis/debates, cuja audiência ficou muito abaixo do esperado, foram dignos de nota o de Linux nas Forças Armadas e o que tratava da temática da liberdade de escolha versus a adoção do Software Livre como Política Pública.

Nos vemos em 2007! Diante de tanto sucesso, não será surpresa que as cotas de patrocínio da edição do ano que vem já tenham sido reservadas por 95% dos patrocinadores. Para concluir, emprestamos as palavras de Sulamita Garcia, resumindo as impressões que colhemos durante a primeira edição brasileira do evento: “Excelência tecnológica não precisa ser associada a inabilidade de comunicação. Competência não necessita ser demonstrada com excentricidades e estrelismos. Trabalho e código não são feitos de brados, apitos e cerveja grátis. E quem paga a conta quer resultados práticos. Do ponto de vista de expositores, técnicos, palestrantes e clientes, o evento foi um sucesso estrondoso.” ■

Informações [1] LinuxWorld no Brasil – Entrevista

com David Korse, Linux Magazine Brasil, 13ª edição, página 22.

[2] Alforria para a sua empresa – Cobertura do BrainShare® 2006, Linux Magazine Brasil, 20ª edição, página 10.

[3] Atingindo a maturidade – 7º Fórum

Internacional de Software Livre, Linux Magazine Brasil, 20ª edição, página 72.

15

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Notícias

Entrevista: Intel

James Reinders, diretor de marketing e desenvolvimento de negócios da Intel

Compilação

turbinada A divisão de software da Intel quer uma fatia do bolo de

compiladores e ferramentas de desenvolvimento Linux. O evangelista-chefe desse setor detalha os planos da empresa. por Rafael Peregrino da Silva foto: cortesia Intel

A

ntes de integrar a divisão de desenvolvimento de produtos de software da Intel, James Reinders participou de outros projetos interessantes. Entre eles, o desenvolvimento do primeiro supercomputador TeraFLOP do mundo, o ASCI Red, e dos processadores Itanium e Pentium 4. Fora seu trabalho com compiladores, hoje sua especialidade. Reinders trabalha na Intel desde 1989. Atualmente, é diretor de desenvolvimento de negócios e marketing dos aplicativos voltados para programadores, além de ser evangelista-chefe e porta-voz dessa divisão da companhia. Também é o autor do livro VTune Performance Analyzer Essentials (http://www. intel.com/intelpress/sum_vtune.htm), publicado pela Intel Press. Conheça, na entrevista a seguir, as novidades que a empresa vem preparando para programadores Linux.

mundo todo. Criamos produtos de desenvolvimento, incluindo compiladores C++, bibliotecas, ferramentas de otimização de performance e soluções bastante inovadoras para desenvolvimento, depuração e otimização de programas concorrentes (para múltiplos núcleos e clusters). Nossos produtos são muito populares entre desenvolvedores de software que desejam que seus aplicativos tenham a mais alta performance possível.

nos ver fazendo mais e mais, pois nos beneficiamos da experiência que temos com a América Latina. Ajudar os desenvolvedores na América Latina é importante. Os fóruns de desenvolvedores da Intel (http://idf.intel.com) têm sido uma maneira muito bem sucedida de contato com os programadores do país. Sabemos que o melhor meio de ajudar é chegar até os desenvolvedores brasileiros através de nossos especialistas e trabalhar direta e indiretamente com as pessoas.

LM» Quais são as estratégias da divisão para a América Latina? JR» A América Latina é um lugar estimu- LM» Qual é a participação e a importânlante, com uma porção de desenvolvedores cia do Linux no negócio de ferramentas talentosos. Fiquei muito impressionado de desenvolvimento da Intel? com os programadores que encontrei em JR» O Linux é importante para a Intel porminhas visitas. Vi uma excitação, no mí- que ele é importante para nossos clientes. nimo, igual à de outras partes do mundo. Eles estão interessados em tirar o máximo Um monte de gente criativa buscando de seus programas, não importando se explorar seus computadores ao máximo. rodam em Linux, Windows ou Mac OS. Isso também os torna uma excelente opção Assim, damos suporte às três plataformas. Linux Magazine» Você poderia falar um para o que estamos pretendendo. Nosso suporte Linux é muito forte – e pouco sobre sua divisão na Intel e o que A Intel tem muitos projetos na América muitos de nossos clientes produzem verela oferece para o ambiente Linux? Latina, com enfoque no talento local. Te- sões de seus aplicativos tanto para Linux James Reinders» Nossa divisão é parte da mos alguns programas em fase inicial na quanto para Windows, usando compilaIntel Software Solutions Group (“grupo de Argentina, atividades no Brasil e projetos dores para ambos. É bom ter os dois. Os soluções de software”), que oferece pro- menores espalhados por mais alguns clusters também formam uma boa parte dutos e serviços para desenvolvedores do lugares. Acho que você pode esperar do nosso trabalho com Linux.

16

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


Entrevista: Intel

LM» E quanto à posição da Intel em relação ao GCC? Existe competição ou colaboração entre esses dois projetos? JR» A Intel tem um longo histórico de contribuição e ajuda para que o compilador GNU consiga um ótimo resultado com processadores Intel. Hoje também temos pessoas que colaboram, pois nosso único desejo é fazer com que programas rodem mais rápido em nossos processadores. O compilador GNU é escrito com ênfase na portabilidade entre processador e arquiteturas, e de maneira a obter um resultado bastante genérico. Nosso compilador, por outro lado, é escrito com um forte foco na otimização para nossa arquitetura. Definitivamente, isso significa que extraímos mais performance de nossos processadores. Ter esses dois compiladores diferentes é ótimo para nossos clientes, nossos desenvolvedores, e, ultimamente, fantástico para o Linux, porque é muito bom poder escolher. Para assegurar que os usuários tenham opção, temos trabalhado duro na compatibilidade com o GCC. Programas compilados com o nosso produto e com o GCC podem ser linkados sem problemas. Trabalhamos com a comunidade GCC para padronizar a C++ ABI, de modo que os compiladores pudessem ser compatíveis. É muito fácil experimentar um e outro, e assim os usuários podem escolher aquele que trabalha melhor para eles. Os usuários não precisam se preocupar por estarem amarrados à sua opção, eles têm escolha. O último compilador GNU (GCC 4.x) tem um otimizador global que o habilita a fazer algumas otimizações que antes não fazia tão bem. Nós temos recursos como o OpenMP, que a comunidade Open Source, acredito, acabará incluindo no GCC eventualmente. Mas, enquanto isso, desenvolvedores Linux não precisam esperar e ficar para trás. Nós estamos muito comprometidos com os padrões, para que o GCC possa oferecer o mesmo

recurso mais tarde. Se há competição, ela é amistosa, e construída com base no respeito mútuo. LM» As suas ferramentas de software suportam processadores de outros fabricantes além da Intel? JR» Sim. Desenhamos nossos compiladores e bibliotecas para oferecer um desempenho superior na indústria, em todos os processadores Intel e compatíveis. Fizemos um ótimo trabalho conseguindo uma excelente performance independente de onde você os rode, o que facilita a decisão pelos nossos produtos. Na verdade, a AMD publica benchmarks para os seus processadores usando os nossos compiladores, porque eles são muito bons.

“Para assegurar que os usuários tenham opção, temos trabalhado duro na compatibilidade com o GCC.” LM» Com o Xen e a virtualização em geral ganhando força no mercado, como você avalia os ganhos de desempenho com o uso das ferramentas de desenvolvimento Intel para esse tipo de ambiente? JR» No final das contas, a virtualização exige mais do computador, e isso significa que quanto mais rápido um programa rodar, melhor é o desempenho do computador. Isso faz todas as nossas ferramentas importantes, mesmo nesses ambientes. LM» Como são as ofertas de ferramentas de desenvolvimento da Intel para países como o Brasil? JR» Atualmente oferecemos nossos produtos apenas em inglês. Gostaria de expandir isso um dia, mas nossos produtos ainda não estão prontos para isso. Nossa

Notícias

maior prioridade é ter profissionais locais e treinamento. LM» Há suporte para eles no país? JR» Estamos trabalhando muito próximos dos nossos revendedores no Brasil para oferecer diferentes níveis de assistência aos clientes. Eles e os clientes têm o suporte de um gerente de desenvolvimento de negócios local, em São Paulo, que, por sua vez, tem um amplo apoio de uma equipe técnica distribuída pelo mundo todo. Nossos engenheiros consultores técnicos viajam freqüentemente para o Brasil para treinar nossos clientes e demonstrar nossas ferramentas. As pessoas podem enviar mensagens para nosso email softwarechannel@intel. com, para mais informações. LM» Vocês possuem programas especiais de descontos para universidades e organizações sem fins lucrativos? JR» Sim. Para instituições educacionais, temos um programa especial de licença acadêmica que torna os nossos produtos acessíveis, com grandes descontos a qualquer um que trabalhe na universidade ou freqüente a escola. Licenças acadêmicas são muito populares. Nós também temos pacotes de desconto para uso em sala de aula. Desenvolvedores de código aberto e algumas organizações não lucrativas normalmente também têm direito à versão não comercial de nosso compilador, que é grátis. As informações sobre isso estão disponíveis em nosso site (http://www.intel. com/software/products). LM» O clustering também está roubando a cena no Brasil atualmente. Conte um pouco mais sobre as ferramentas da Intel para ambientes cluster. JR» Temos um forte suporte a clusters e o mais popular modelo de programação para clusters, que é o MPI. Nossa biblioteca de funções matemáticas vem em uma versão chamada Intel Cluster MKL, que usa MPI

17

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Notícias

para dar suporte a uma ampla gama de funções matemáticas padrão, incluindo solvers. Nossa ferramenta de análise de performance, o Intel VTune Performance Analyzer, consegue coletar e mostrar informações em clusters de até 4096 processadores. Já o Intel Trace Analyzer and Collector ajuda a visualizar o desempenho de programas em um cluster que use MPI, o que possibilita aos desenvolvedores otimizar seu código. Estamos muito empolgados com a portabilidade para aplicações cluster – que, imaginamos, vai ajudar aplicações cluster a se tornarem ainda mais populares. Por fim, acabamos de introduzir um jeito de nosso compilador também ajudar. Anunciamos há pouco a disponibilidade de um produto adicional para extensão de suporte a OpenMP em clusters. Isso permite ao OpenMP ser escalado de sistemas menores para sistemas muito maiores. LM» Aplicativos HPC e de grid estão se tornando populares não apenas na arena acadêmica, mas também dentro das empresas. Em que tipo de aplicações as ferramentas da Intel podem ser usadas nessas corporações? JR» Usuários de computação de alta performance confiam em todos os nossos produtos para produzir aplicativos do tipo. A maioria dos 500 supercomputadores mais rápidos (com processadores Intel) usa nossos softwares de desenvolvimento. Também vemos o mesmo interesse no desempenho dos aplicativos com os desenvolvedores de soluções grid. Com eles, temos o interesse de tornar a programação grid mais fácil e livre de soluções proprietárias. A Intel tem pessoas trabalhando no projeto de código aberto Grid Programming Environment, para ajudar a facilitar a criação dos aplicativos grid. Todos os nossos compiladores, bibliotecas, ferramentas de otimização de performance e ferramentas de threading podem ajudar.

18

Entrevista: Intel

LM» Processadores de núcleo múltiplo são um tema quente. Como os compiladores Intel podem ajudar? JR» Os compiladores Intel têm suporte OpenMP, o que expande as linguagens C++ e Fortran em recursos de paralelismo. O OpenMP dispõe de suporte bastante abrangente, e a Intel é líder nessa área porque estamos envolvidos no padrão desde que ele começou, há uma década. Nossos compiladores também tentam implementar paralelismos mesmo sem o OpenMP, com um recurso conhecido como auto-paralelismo. Juntas, essas funções ajudam desenvolvedores a usar o compilador para desenvolver aplicativos que executem processos em paralelo.

“A maioria dos centros nacionais de alta performance estão usando nossas ferramentas HPC.” Além disso, temos o Intel Thread Checker para localizar bugs de threading escondidos no seu código, de modo que você possa programar e eliminar erros em programas que executem processos em paralelo, muito mais rapidamente. O Intel Thread Profiler e o VTune Performance Analyzer ajudam a melhorar o desempenho por terem sido projetados para lidar muito bem com threads. Nossas bibliotecas (IPP e MKL) realizam muitas de suas funções usando a tecnologia de múltiplos núcleos automaticamente quando presente – tornando muito fácil se obter melhor desempenho. LM» Vocês planejam contribuir com código dos produtos Intel para projetos de Software Livre? Não acha que seria bom para suas ferramentas ter uma comunidade aberta sendo construída ao redor delas?

JR» Já contribuimos com muitos projetos de código aberto e vamos continuar. Em outros casos, desenvolvemos código, tais como um assembler Itanium e código específico para floating point, que abrimos imediatamente. Em geral, é muito difícil iniciar um projeto de código aberto que englobe vários desenvolvedores – então preferimos participar de projetos já existentes. Estamos muito envolvidos com o Eclipse. Em outros casos, consideramos que nossas oportunidades envolvem desenvolver soluções muito específicas para a Intel, e sentimos que elas trabalham melhor como produtos da Intel. O nosso compilador é um exemplo. Temos ajudado o compilador GNU de tempos em tempos, e achamos que o melhor é oferecer o nosso compilador apenas como um produto, e não como um projeto de código aberto. Acho que poderia ser confuso abrir o código de nosso compilador como um segundo grande compilador que competiria com o compilador GNU. Acho que isso iria fragmentar a comunidade do compilador de código aberto, e isso não seria bom para a comunidade e nem para a Intel. Podemos ajudar melhor o Linux oferecendo uma opção comercial para complementar o GCC, em vez de dividir a comunidade de código aberto com um outro grande compilador. LM» Você tem exemplos de empresas que estão usando as ferramentas da Intel para impulsionar o desempenho? Há clientes usando essas ferramentas aqui no Brasil? JR» Umas das maiores empresas brasileiras tem mais de 3.000 servidores rodando aplicativos de análise sísmica e de reservatórios, desenvolvidos com compiladores e ferramentas da Intel. A maioria dos centros nacionais de alta performance está usando nossas ferramentas HPC. Outras são o maior centro de previsão de tempo no Brasil, um grande fabricante de aeronaves, bem como muitos centros de pesquisa e universidades. ■

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


Kernel

Notícias

Notícias do kernel por Zack Brown

Greg Kroah-Hartman, em conjunto com o projeto FreedomHEC, organizou um kit completo de desenvolvimento de drivers sob a GPL: http://kernel.org/pub/ linux/kernel/people/gregkh/ddk/. Trata-se de uma imagem .iso contendo toneladas de documentação, incluindo os DocBooks do kernel e uma cópia completa da 3ª edição do Linux Device Drivers, bem como os fontes do kernel. Em versões futuras, Greg planeja criar um índice de buscas, uma interface web mais arrojada e documentação adicional coletada de vários lugares. O projeto recebeu aplausos calorosos de vários desenvolvedores proeminentes e já recebeu muitas sugestões. Como muitos esforços anteriores tinham a intenção de ajudar os desenvolvedores, essa ferramenta reúne o melhor dessas contribuições e as apresenta de modo consistente e acessível. Mas, dada à imensa quantidade de ferramentas disponíveis para o desenvolvimento de drivers em outros sistemas, o trabalho de Greg chega tarde. ■

❐ Pingüim virtual O Linux está gradativamente se tornando um sistema operacional virtual, que um dia será capaz de rodar múltiplas instâncias de espaço de usuário, independentes umas das outras. Mas, necessariamente ainda não está claro como chegaremos lá, a partir de onde estamos.

Colegas como Andrew Morton sentem nesse debate, “em relação aos conflitos, que virtualizar o SO é um objetivo que por que não cruzar a ponte quando se realmente vale a pena, envolvendo uma chega nela?” ■ extensão natural das funções que o Linux já vem cultivando. Mas ainda há um monte de código e Recentemente escrevi que a árvore 2.4 uma pilha de funcionalidades necessá- entrou em “modo de manutenção profunrias antes que o Linux possa realmente da”, sem nenhum driver sendo portado começar a mostrar uma virtualização de volta da versão 2.6; e que isso signipoderosa. Como todo o código atual e ficava que não havia mais uma árvore futuro será integrado? “estável”, dado que a 2.6 ainda estava em Obviamente, conforme Andrew apon- pleno desenvolvimento. A situação não mudou, mas Marcelo tou, é importante evitar a integração de uma infraestrutura preparatória gigan- Tosatti publicou recentemente o Linux tesca que nunca será usada. Integrações 2.4.33-pre3 após um longo silêncio, com tão grandes eram de se esperar, mas mais de uma dúzia de patches aplicados; elas normalmente são bem dolorosas. apenas uma gota no oceano comparados A possibilidade que chega mais per- às centenas que normalmente entram em to das atuais políticas de submissão cada versão 2.6. A maioria dos patches de patches é a integração de funções 2.4.33-pre3 são atualizações de seguranem pequenas porções que realmente ça, mas um patch corrigiu uma licença agregam valor do modo como estão. que faltava para o módulo quota_v2. Andrew acredita que esse é o método Essa última atualização de Marcelo mais apropriado. confirma o status da árvore 2.4 de não Entretanto, o processo mais provável aceitar mais nada a não ser as correções será apenas ir levando, lutando para mais cruciais. ■ posicionar cada novo pedaço assim A lista de discussão que ele aparece; algumas partes demolinux-kernel é o rando e inchando mais; com erupções núcleo das atividades de flame wars – cujas conseqüências de desenvolvimento do kernel. Zack Brown se arrastam por anos – sobre este ou consegue se perder aquele pequeno elemento, ou o caminesse oceano de nho que o projeto deveria seguir. Sem mensagens e extrair um plano claro dos desenvolvedores da significado! Sua newsletter Kernel Traffic virtualização, esse será o cenário mais já está completando cinco anos. provável. Conforme disse John Kelly

❐ Status do kernel 2.4

Sobre o autor

❐ Kit para drivers

19

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Notícias

Segurança

Dicas de [In]segurança ❐ PHP O PHP é um linguagem de scripts embarcada em HTML, comumente usada com o servidor web Apache. A função phpinfo() não limpa cadeias de caracteres longas adequadamente. Um invasor poderia usar isso para efetuar ataques do tipo cross-site scripting contra páginas que possuem scripts PHP públicos que chamam a função phpinfo() (CVE-2006-0996). Foi verificado também que a função html_entity_decode() não tem segurança binária. Um invasor poderia usar essa falha para revelar uma determinada parte da memória. Para que essa falha fosse explorada, o site alvo teria que ter um script que chamasse a função html_entity_decode() com entrada “não confiável” do usuário e mostrasse o resultado (CVE-2006-1490). Verificou-se que o erro na manipulação de saídas não escapa à saída HTML em certos casos. Um invasor poderia tirar proveito dessa falha para efetuar ataques cross-site scripting contra sites em que as funções display_erros e html_errors estão habilitadas (CVE-2006-0208). Um erro de validação de entrada foi encontrado na função mb_send_mail(). Um invasor poderia usar essa falha para injetar cabeçalhos arbitrários em uma mensagem enviada por um script que chama a função mb_send_mail(), na qual o parâmetro To pode ser controlado pelo agressor (CVE-2005-3883). Um estouro de memória foi descoberto no servidor uw-imap (University

20

of Washington's IMAP Server). O phpimap é compilado junto às bibliotecas estáticas c-client do imap, por isso precisou ser recompilado junto à versão corrigida. ■ Referência no Gentoo: GLSA 200605-08 Referência no Mandriva: MDKSa-2006:074 Referência no Red Hat: RHSA-2006:0276-9 Referência no Suse: SUSE-SA:2006:024

❐ X.org-X11 O Xorg é uma implementação de código aberto do sistema X Window. Ele fornece a funcionalidade básica de baixo nível sobre a qual interfaces gráficas completas como Gnome e KDE são desenhadas. Um estouro de memória na extensão Render do Xorg foi descoberta. Um cliente malicioso autorizado poderia explorar essa falha para causar uma negação de serviço (crash) ou potencialmente executar código arbitrário com privilégios de root no servidor Xorg (CVE-2006-1526). ■

parser de cabeçalhos de binários Windows (Portable Executable) do ClamAV (CVE-2006-1614); e David Luyer descobriu que o aplicativo pode ser induzido a realizar um acesso de memória inválido (CVE-2006-1630). Enviando um anexo malicioso para um servidor de email rodando ClamAV, um agressor remoto poderia causar uma negação de serviço ou a execução de código arbitrário. Mas o estouro no parser só pode ser explorado quando a opção ArchiveMaxFileSize está desabilitada. Ulf Härnhammar e um pesquisador alemão anônimo descobriram uma vulnerabilidade no protocolo do freshclam, um utilitário de linha de comando responsável por baixar e instalar atualizações de assinaturas de vírus para o ClamAV. Isso poderia levar a uma negação de serviço ou potencialmente à execução de código arbitrário. ■ Referência no Debian: DSA-1050-1 Referência no Gentoo: GLSA 200604-06, GLSA 200605-03

Referência no Gentoo: GLSA 200605-02

Referência no Mandriva: MDKSA-2006:080

Referência no Mandriva: MDKSA-2006:081, MDKSA-2006:081-1

Referência no Suse: SUSE-SA:2006:020

Referência no Red Hat: RHSA-2006:0451-9 Referência no Slackware: SSA:2006-123-01 Referência no Suse: SUSE-SA:2006:023

❐ ClamAV O ClamAV é um anti-vírus GPL. Foi descoberto que ele contém vulnerabilidades de formatação na cadeia de caracteres do código de registro (logging code) (CVE-2006-1615). Além disso, Damian Put descobriu um estouro de inteiros no

❐ Mozilla, Firefox e Thunderbird O Mozilla é um navegador de Internet, cliente de email, newsgroup, chat IRC e editor HTML. O Firefox é um navegador de Internet. O Thunderbird é um cliente de email e newsgroup. Especialistas descobriram uma série de problemas de segurança relacionados ao navegador Mozilla, que também se

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


Segurança

aplicam ao navegador Firefox e ao cliente de email Thunderbird, ambos baseados no Mozilla. Diversos bugs foram encontrados no modo como o Mozilla processa javascript malformado. Um agressor poderia construir uma página de Internet para atacar e modificar o conteúdo de uma outra página, provavelmente roubando informações confidenciais ou conduzindo um ataque do tipo cross-site scripting (CVE-2006-1731, CVE-2006-1732, CVE-2006-1741). Vários bugs também foram encontrados no modo como o Mozilla processa determinadas ações javascript. Uma página de Internet especialmente desenhada poderia executar instruções javascript arbitrárias com as mesmas permissões do componente chrome, permitindo que a página roubasse informações confidenciais ou instalasse

programas maliciosos (CVE-2006-1727, CVE2006-1728, CVE-2006-1733, CVE-2006-1734, CVE2006-1735, CVE-2006-1742). Alguns bugs foram ainda encontrados no modo como o Mozilla processa páginas de Internet malformadas. Uma página cuidadosamente formulada poderia causar a execução de código arbitrário com as permissões do usuário rodando o Mozilla (CVE-2006-0748, CVE-2006-0749, CVE-2006-1730, CVE-2006-1737, CVE-2006-1738, CVE-2006-1739, CVE-2006-1790). Um bug foi descoberto também no modo como o Mozilla mostra o ícone de site seguro. Se um navegador estiver configurado para mostrar o diálogo nãopadrão de alerta sobre sites seguros, é possível induzir um usuário a acreditar que ele está vendo um site seguro em qualquer página (CVE-2006-1740). Outro erro foi encontrado no modo como o Mozilla permite eventos de

Notícias

mutação javascript em elementos de entrada em formulários. Uma página falsa poderia ser criada de tal forma que quando o usuário enviasse um formulário, um arquivo arbitrário poderia ser transferido para o invasor (CVE-2006-1729). Foi localizado um bug no modo como o Mozilla executa encaminhamentos inline de emails. Se um agressor conseguir levar o usuário a encaminhar um email maliciosamente criado como conteúdo inline, é possível que a mensagem execute javascript com permissões do componente chrome (CVE-2006-0884). ■ Referência no Debian: DSA-1046-1 Referência no Gentoo: GLSA 200605-09 Referência no Mandriva: MDKSA-2006:075, MDKSA-2006:078 Referência no Red Hat: RHSA-2006:0328-15, RHSA-2006:0329-13, RHSA-2006:0330-15 Referência no Slackware: SSA:2006-120-01, SSA:2006-120-01 Referência no Suse: SUSE-SA:2006:021, SUSE-SA:2006:022

Postura das principais distribuições Linux quanto à segurança Distribuição Referência de Segurança Conectiva Info: distro2.conectiva.com.br/ Lista: seguranca-admin@distro.conectiva.com.br e distro2.conectiva.com.br/lista Referência: CLSA-... 1 Debian Gentoo

Mandriva

Info: www.debian.org/security Lista: lists.debian.org/debian-security-announce Referência: DSA-… 1 Info: www.gentoo.org/security/en/gsla/index.html Fórum: forums.gentoo.org Lista: www.gentoo.org/main/en/lists.xml Referência: GLSA: … 1 Info: www.mandriva.com/security Lista: www1.mandrdrivalinux.com/en/flists.php3#2security Referência: MDKSA-… 1 Info: www.redhat.com/errata Lista: www.redhat.com/mailing-lists Referência: RHSA-… 1 Info: www.slackware.com/security Lista: www.slackware.com/lists (slackware-security) Referência: [slackware-security] … 1 Info: www.novell.com/linux/security Lista: www.novell.com/linux/download/updates Referência: suse-security-announce Referência: SUSE-SA … 1

Comentários Possui uma página específica; não há link para ela na página principal. Os alertas são sobre segurança, mas distribuídos através de emails assinados com a chave PGP da empresa para assegurar sua autenticidade. Contém também links para os pacotes atualizados e para fontes de referência sobre o problema sendo corrigido. Alertas de segurança recentes são colocados na homepage e distribuídos como arquivos HTML com links para os patches. O anúncio também contém uma referência à lista de discussão. Os alertas de segurança são listados no site de segurança da distribuição, com link na homepage. São distribuídos como páginas HTML e mostram os comandos necessários para baixar versões corrigidas dos softwares afetados.

A Mandriva tem seu próprio site sobre segurança. Entre outras coisas, inclui alertas e referência a listas de discussão. Os alertas são arquivos HTML, mas não há links para os patches. Red Hat A Red Hat classifica os alertas de segurança como “Erratas”. Problemas com cada versão do Red Hat Linux são agrupados. Os alertas são distribuídos na forma de páginas HTML com links para os patches. Slackware A página principal contém links para os arquivos da lista de discussão sobre segurança. Nenhuma informação adicional sobre segurança no Slackware está disponível. SUSE Após mudanças no site, não há mais um link para a página sobre segurança, que contém informações sobre a lista de discussão e os alertas. Patches de segurança para cada versão do SUSE LINUX são mostrados em vermelho na página de atualizações. Uma curta descrição da vulnerabilidade corrigida pelo patch é fornecida. 1 Todas as distribuições indicam, no assunto da mensagem, que o tema é segurança.

21

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Capa Muito além da decoração

24

Horizonte de luz

28

X Novo

32

Construção visual

36

Tráfego inteligente

40

XGL: o desktop 3D da Novell. Os efeitos na área de trabalho do AIGLX. O que muda no X11R7? Como criar temas do SuperKaramba. D-bus: interconexão de aplicativos.

O

sistema gráfico X Window está no coração dos ambientes gráficos Unix desde 1984. O projeto foi se expandindo lentamente. Nos primeiros anos, ninguém nem sabia que poderia precisar de um subsistema gráfico. Se alguém se aventurasse a tentar o X com um dos poucos aplicativos compatíveis, precisaria estar pronto para intermináveis noites de ajustes e configurações. Mas o X continuou melhorando e seu protocolo, com todas as tecnologias ao redor, teve papel chave na evolução do Linux. Quando veio a moda dos sistemas operacionais gráficos – com a aparição do MacOS e seu clone, o Windows® – o Linux também pôde se adaptar, sobre as fundações do X. Os ambientes gráficos do Linux hoje são tão poderosos – e muito mais flexíveis – que os equivalentes da Apple ou Microsoft. Mas o fato é que desenvolvedores e fabricantes de hardware – de todas as plataformas – perderam um pouco o sono com o simples e usual X. Uma das razões para essa inquietação é que o X foi desenhado a princípio para 2D. Mas o mundo real é 3D. Obviamente que, quando o X apareceu pela primeira vez, os gráficos 2D eram muito mais empolgantes e maravilhosos do que hoje, já que tudo que se via era o prompt do terminal. Mas usuários de hoje querem mais recursos, e o hardware disponível já é 100% capaz de oferecê-los. Devido à ênfase em rapidez e realismo, os fabricantes querem extrair a melhor performance possível do hardware. Mas o desenho antiquado de um sistema X puro não é propriamente

22

Intro

Vida em 3D OpenGL e o desktop Linux

Novas tecnologias prometem mudar o modo como vemos os objetos na área de trabalho. por Joe Casad

flexível o suficiente para suportar esse tipo de performance. No mundo Linux, aonde quer que apareça uma questão intrigante, pode apostar que há alguém trabalhando na resposta. Uma solução para as preocupações dos incansáveis desenvolvedores gráficos está convergindo agora em dois projetos muito importantes: P 1. Extensões do X que ofereçam maior flexibilidade e atalhos para alguns dos caminhos vagarosos do sistema. P 2. O crescimento e a larga aceitação da interface de programação gráfica OpenGL. A integração do OpenGL à área de trabalho já está encaminhada nos mundos Windows e Mac. E dois sistemas, conhecidos como Xgl e AIGLX, oferecem agora alternativas de como integrar o OpenGL ao desktop Linux.

OpenGL O OpenGL é uma especificação de biblioteca gráfica criada, originalmente, pela Silicon Graphics. A especificação oferece um padrão para funções gráficas que fabricantes podem usar em suas placas de vídeo. A proposta do OpenGL é oferecer uma única interface que dá a programas gráficos uma forma padronizada de comunicação com o hardware. Uma das razões para a necessidade do OpenGL é que os fabricantes de hardware gráfico estão ocupados com suas próprias experiências para entregarem gráficos mais ricos e melhor desempenho aos seus clientes, do que ficar se preocupando com padrões de comunicação.

Uma das técnicas mais usadas pelos fabricantes é a aceleração 3D. Ela permite que o hardware gráfico assuma uma porção maior de responsabilidade pela geração de imagens 3D. O OpenGL permite a programadores criar código que prevê e capitaliza com os benefícios da aceleração 3D no hardware.

OpenGL no X Uma implementação livre (mas não oficial) do OpenGL para plataformas baseadas em X é o projeto Mesa [3]. Na teoria, o Mesa e outras APIs (Application Programming Interface) OpenGL alternativas permitem aos programas acessar funções OpenGL. De qualquer forma, o sistema X não foi projetado para técnicas avançandas como o OpenGL. Nas tentativas mais recentes de integrar o OpenGL ao X, dados 3D tiveram simplesmente que ser traduzidos em chamadas convencionais do X. Isso criou uma etapa adicional de “tradução”, o que diminuiu a performance. Desde essas primeiras tentativas, programadores têm procurado outros modos de trabalhar com o X, conseguindo contornar algumas limitações. Uma técnica popular para integrar gráficos acelerados 3D com o X é o uso da extensão X Composite. Basicamente, a extensão Composite desenha janelas na memória antes de mostrá-las na tela. Isso reduz algumas “traduções” e mostra o potencial do OpenGL de forma mais completa e eficiente. Ela também possibilita o uso otimizado de efeitos especiais, tais como ampliação, transparência e outras manipulações “artísticas”.

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


Intro

Agora o desktop

Capa

Estratégias

seu código e existem paralelamente, com Programadores de jogos e outros especiaA aparição do Xgl e do AIGLX seguiram muito interesse da comunidade. Em poucos anos, o Xgl e o AIGLX irão listas gráficos foram os precursores na o padrão básico de evolução do Software introdução de técnicas impressionantes Livre: controvérsia, seguida de dúvidas, redefinir o modo como usamos a área de para estender e expandir o X para aco- mas concluídas com um bom nível de co- trabalho Linux. Funções como janelas modar o OpenGL. Eventualmente, desen- operação. A Novell anunciou que estava “vivas” e o famoso cubo de áreas de trabavolvedores começaram a se perguntar se trabalhando em uma tecnologia chamada lho podem parecer sem sentido à primeira o próprio desktop não poderia também Xgl, que traria truques impressionantes de vista. Mas elas aproximam o usuário do assumir as competências do OpenGL. OpenGL a um servidor X funcional, mas espaço virtual em uso, fazendo com que No Linux e em outros sistemas baseados todo o projeto permaneceu em silêncio por os objetos se pareçam mais “reais”. Os no X, a tarefa de gerar e organizar janelas vários meses, enquanto a Novell trabalhava desenvolvedores estão apenas começando é feita por um gerenciador de janelas. A de portas fechadas. a explorar os benefícios de funções como Esse nível de discrição foi irritante para janelas transparentes e muitos outros necessidade de integrar o OpenGL com o desktop começou a se cristalizar em tor- alguns membros da comunidade. Então, a efeitos, que só agora começam a ser perno da tarefa de se criar um gerenciador Red Hat entrou em cena para dizer que es- cebidos pelo público. Para um olhar mais aprofundado sobre de composição de janelas (compositing tava desenvolvendo a sua própria tecnologia window manager ou composite manager): de desktop OpenGL, batizada de AIGLX. A essas tecnologias, convidamos Mathias um gerenciador de janelas que faz uso da Red Hat obviamente tinha suas próprias Hopf, da Novell, e Kevin E. Martin, da Red extensão X Composite. ressalvas em aceitar uma especificação Hat, para falarem sobre Xgl e AIGLX, resO Xgl e o AIGLX trazem as glórias do sem sua participação. Mas eles também pectivamente. Leia e descubra mais sobre OpenGL à área de trabalho com a integração se mostraram preocupados com algumas essas tecnologias inovadoras. de um gerenciador de composição. Como partes do Xgl e argumentaram que uma Sobre o futuro das interfaces gráficas, veremos nos próximos artigos, o Compiz é aproximação traria benefícios técnicos. preparamos também um artigo sobre a um gerenciador de composição projetado Desde então, a comunidade debateu vi- última versão do X11, que trouxe as prinpara o Xgl. Os desenvolvedores do AIGLX gorosamente os benefícios técnicos dessas cipais mudanças no X em mais de 10 anos fizeram experimentos com o gerenciador soluções e também discutiu qual deles era de história do sistema: um design modular de composição Luminocity, e a Red Hat está o mais fiel ao espírito do Software Livre. e muitas outras importantes melhorias. atualmente trabalhando na implementação Atualmente, tanto o Xgl quanto o AIGLX Ainda no tema “área de trabalho”, de funções de composição no gerenciador estão disponíveis para desenvolvedores. Os não perca os artigos sobre o SuperKade janelas Metacity, do Gnome. dois projetos compartilham uma parte do ramba e o DBus/Hal. ■

Informações [1] X.org: http://www.x.org/ [2] Introdução ao sistema X Window: http://pt.wikipedia.org/wiki/X_Window_System [3] Projeto Mesa: http://www.mesa3d.org/

Figura 1: Projetar um filme no canto de um cubo não é algo lá muito útil, mas dá uma amostra do poder que o OpenGL traz ao desktop Linux.

23

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Capa Um dos integrantes da equipe de desenvolvedores do Suse, responsável pelo X11, explica o projeto Xgl. por Matthias Hopf

Fleur Suijten – www.sxc.hu

OpenGL, Xgl e Compiz

Muito além da decoração

F

O autor

ãs da Apple ficaram pasmos com o lançamento da interface gráfica Quartz Extreme [1], do OS X, que usa o processador gráfico para acelerar efeitos especiais na área de trabalho. Com o Windows Vista® e sua tecnologia Aero, a Microsoft vai solucionar essa deficiência em relação ao Mac. No Linux, o Xgl [2] agora oferece uma tecnologia até mais avançada, com efeitos semelhantes. O Xgl é um servidor X criado por David Revemann, que usa tecnologia OpenGL para a geração de interfaces gráficas. Quando um programa diz ao Xgl para desenhar uma linha, o Xgl passa os vértices para o subsistema OpenGL, que depois envia os comandos correspondentes à placa de vídeo. Apesar dessa ênfase no

24

Matthias Hopf estudou Ciência da Computação na Universidade de Erlangen, Alemanha, e completou seu doutorado no Visualization Group da Universidade de Stuttgart. Atualmente, é membro da equipe do X11 do Suse (na Novell) e criou parte do código que integra o Xgl com o Xvideo.

OpenGL, o Xgl retém o protocolo que os aplicativos usam para falar com o servidor X, excluindo a necessidade de reescrever todos os programas.

Transparente Seguindo um longo período de estagnação no desenvolvimento do servidor X, programadores integraram diversas novas funções nos últimos anos, que serviram de base para a tecnologia Xgl. Modernas bibliotecas tais como Qt e GTK já usam muitas dessas funções sem que os usuários percebam. Duas grandes extensões do protocolo X, Render e Composite, desempenham um papel importante para o Xgl e o gerenciador de composição Compiz. A extensão Render adiciona novas funcionalidades básicas para a apresentação de imagens e polígonos, bem como um novo sistema para exibição otimizada de fontes. Isso reflete particularmente o fato de que os antigos comandos gráficos (os core requests) não atendem mais às de-

mandas das bibliotecas modernas como Qt e GTK. Todas as antigas funcionalidades agora podem ser interligadas aos dados do framebuffer usando operadores Porter-Duff, suportando assim a renderização de superfícies semitransparentes (alpha blending) e fontes suavizadas (anti-aliasing). Muitas aplicações modernas fazem uso extensivo de fontes suavizadas. Até agora, o sistema de janelas do X sempre lidou com janelas sobrepostas, mas não conseguia mostrar o conteúdo de áreas encobertas. Para conseguir isso, todas as janelas têm que primeiro ser desenhadas em uma área invisível do framebuffer antes que todas as janelas sejam compostas no framebuffer visível. Isso é exatamente o que a extensão Composite do servidor X faz. Um processo externo conduz a tarefa de unir todas as janelas para oferecer uma visão total de forma parecida ao bem conhecido gerenciador de janelas. Ele pode usar a extensão Render para

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


Capa

Xgl

desenhar múltiplas janelas semitransparentes sobrepostas. Como os gerenciamentos de composição e de janelas devem trabalhar de mãos dadas, podemos esperar que no futuro existam mais gerenciadores de composição de janelas com habilidade para integrar ambos os processos. Outro importante componente do servidor X que precisa ser trabalhado é a arquitetura de aceleração de hardware, responsável pela eficiente execução de comandos gráficos. A arquitetura anterior, XAA já não apresenta condições de uso e precisa ser substituída. As alternativas mais promissoras são o EXA e o OpenGL. O EXA é prático e fácil de ser implementado, mas o OpenGL tem a vantagem de ser uma interface de programação largamente difundida, suportada por muitos drivers em uso. Não há necessidade de o servidor X controlar a interface de hardware. No futuro, haverá apenas uma interface gráfica de hardware, ao invés das duas interfaces separadas para XAA/EXA e OpenGL.

Mito Em oposição ao que se acredita popularmente, o Xgl não acelera a execução de aplicações OpenGL. Pelo contrário, apenas a renderização indireta era possível, por questões técnicas, até a redação deste artigo. Em outras palavras, os comandos do OpenGL são passados ao Xgl pelo protocolo GLX, antes de ser passado ao hardware gráfico. A renderização indireta é muito mais lenta que a direta para programas que precisam gerar um grande número de polígonos (jogos) e texturas (vídeos). Até o momento, o Xgl não pode acessar nativamente o hardware. Ele depende de um sistema que inicializa o framebuffer e fornece uma interface OpenGL. Por hora, esse sistema é o popular Xorg.

Programas

Composite Manager

Protocolo X11

EXT_texture_from_pixmap

Protocolo GLX

Servidor X DDX

Mesa / GLX ID do Pixmap Buffer

Geometria do desktop 3D

Glitz ID da textura

OpenGL Comandos do XGL

Binding de textura

pBuffer / FBO

Comandos do Composite Manager

Hardware GFX

pBuffer / FBO pBuffer / FBO

Framebuffer

Figura 1: Fluxograma de um gerenciador de composição com Xgl. Em outras palavras, o Xgl abre uma janela abrangendo toda a tela do Xorg. Depois disso, as aplicações do X podem se conectar ao Xgl enquanto o servidor X padrão tem que lidar apenas com o cliente Xgl, por toda a sessão. Os comandos X11 que o servidor tem que manipular são um tanto complexos. Por isso, uma camada de abstração é usada para encapsular as declarações OpenGL. Essa camada, na forma da biblioteca Glitz, é basicamente o back-end com aceleração OpenGL da biblioteca Cairo, um sistema de operações gráficas que trabalha independente da resolução. Quando um gerente de composição entra em campo, o fluxograma gráfico fica ainda mais complexo. Como mostra a figura 1, primeiro o servidor X redireciona toda a produção de janelas para áreas não visíveis do framebuffer. Uma área de memória desse tipo é criada por um pBuffer – também chamado de objeto de

frame buffer (FBO - Frame Buffer Object). Todos os comandos X11 emitidos por um aplicativo são redirecionados para esse espaço da memória e renderizados pelo OpenGL. Esse processo ocorre separadamente para cada programa. Então o gerenciador de composição desenha o conteúdo das janelas como texturas nos objetos OpenGL. Os objetos são normalmente retangulares, mas eles podem ser objetos tridimensionais mais complexos. Portanto o Xgl não é propriamente o responsável pelos efeitos de tirar o fôlego de que tanto ouvimos falar, no entanto, permite que programadores possam criar um gerenciador de composição que use comandos do OpenGL para apresentar janelas. Essa opção não está aberta para o servidor X normal porque o OpenGL não está coligado ao sistema de janelas subjacente. Isso quer dizer que ele não consegue acessar o conteúdo de janelas que foi desenhado usando-se comandos X11. ➟

25

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Capa

Xgl

Figura 2: O Compiz mudando para outra área de trabalho. Como o Xgl usa o OpenGL interna- invisível do framebufer, a qual deve mente, ele pode tornar o conteúdo da também estar no âmbito do servidor X janela acessível a um gerenciador de (leia mais em [3]). composição externo usando a extensão GLX_EXT_texture_from_pixmap. Essa extensão não é fornecida pelo driver Estamos acostumados com cenários em OpenGL, mas pelo Xgl. O Xorg incluiu três dimensões. Sendo assim, faz senessa extensão desde que o AIGLX foi tido projetar uma área de trabalho 3D, implementado, mas ainda falta suporte assumindo que interações com objetos para algumas funções. que ultrapassam duas dimensões sejam Conforme mencionado anteriormente, mínimas. A interação 3D verdadeira o gerenciador de composição usa rende- ainda apresenta muitos desafios técrização indireta para desenhar a área nicos, sendo tipicamente não intuitiva, de trabalho. Isso significa que todos os dentro das possibilidades atuais. comandos OpenGL são enviados para o Projetar dados de pixels bidimenXgl usando-se o protocolo GLX, antes de sionais em objetos tridimensionais é serem passados para o hardware. Essa uma função padrão do OpenGL. Ao é a única maneira de outro processo mesmo tempo, obtemos efeitos como usar texturas no âmbito do endereça- semitransparência mais ou menos “de mento Xgl. Esse envio também afeta graça”, já que eles são parte do patodas as aplicações do OpenGL, já que cote de truques padrão do OpenGL. elas têm que desenhar em uma área Até agora, a única razão para não

Mundo 3D

26

produzir um gerenciador de composição desse tipo era que precisava-se de algo como o Xgl para abrir a interface OpenGL para gerenciadores de composição. O Compiz é um gerenciador de composição especialmente projetado para o ambiente Xgl. Em uma sessão do Compiz, podemos nem notar que o OpenGL é usado para saída. Sombras e algumas decorações de janela semitransparentes são os únicos indicadores que temos sobre o que está acontecendo. Mas, ao mudarmos para outra área de trabalho, a natureza tridimensional do desktop fica explícita (figura 2). O Compiz usa uma arquitetura de plugins altamente flexível – mas não completamente estável – para todos os seus efeitos. Um programa externo renderiza as decorações de janela e as cede para o Compiz. Isso facilita a integração

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


Xgl

de temas ou diferentes conjuntos de widgets. No momento, há um programa de decorar janelas para o Gnome que também funciona no KDE. Os plugins do Compiz estão disponíveis para funcionalidades básicas do gerenciador de janelas (decoration, move, place, resize), para funções extendidas, (cube, scale, switcher) e efeitos (fade, minimize, rotate, wobbly, zoom ). Como os plugins com funções equivalentes podem ser trocados entre si, usuários podem modificar facilmente o Compiz de acordo com seus gostos. Consulte em [5] uma lista mais detalhada de plugins, juntamente com descrições de funções e instruções de como usá-las. Os programas baseados em OpenGL costumam ser criticados por serem simples enfeites para os olhos e mais nada. Entretanto, essa tecnologia realmente serve de suporte a evoluções importantes, como ferramentas de acessibilidade para usuários com perda sensorial (um plugin de zoom, por exemplo) e instrumentos de seleção como o Exposé (para miniaturas organizadas de janelas), que se provou muito útil no mundo Apple. Miniaturas de aplicações para o alternador de aplicativos (figura 3) também são muito úteis, especialmente quando mostram o que está sendo produzido pelo programa em tempo real, como no exemplo. Mesmo estando no início do seu ciclo de vida, o Compiz já é bastante utilizável. Funções comuns aos gerenciadores de janelas de hoje podem estar faltando, e alguns manipuladores de exceções para tipos especiais de programas não estão totalmente implementados, tais como janelas em miniaturas para painéis. Ainda falta também algum trabalho antes que a integração completa no KDE esteja terminada.

Capa

Figura 3: O plugin Switcher alterna entre aplicativos exibindo miniaturas em tempo real..

Futuro do X Será o Xgl o futuro do sistema X Window? As opiniões estavam divididas na última conferência dos desenvolvedores do Xorg [6] na Califórnia. Enquanto alguns se queixavam do estado dos drivers de código aberto e a incompatibilidade dos drivers proprietários com a GPL, outros consideram o OpenGL uma interface gráfica apropriada para integração no X. Um servidor X trabalhando com OpenGL poderia mais facilmente suportar um futuro protocolo que substituísse os recursos primitivos e melhorasse a comunicação cliente-servidor. Uma das maiores deficiências do Xgl é a falta de suporte nativo de hardware. Por hora, ele é forçado a confiar no servidor Xorg como um intermediário. Uma ramificação experimental, apelidada de Xegl, é capaz de falar diretamente com o hardware, embora esteja restrita às placas Radeon R100 e R200 e o status de seu desenvolvimento seja meio obscuro. Todos os envolvidos parecem estar de acordo que o futuro pertence aos gerenciadores baseados em OpenGL. O Compiz, em particular, pode ser o gerenciador de janelas do futuro graças à sua arquitetura de plugins flexível.

Até a conclusão deste artigo, tanto o Xgl quanto o Compiz se mantinham bastante estáveis, mas ainda estão no estágio inicial de desenvolvimento. Pacotes binários estão disponíveis [5] para dar aos usuários a oportunidade de testar a nova tecnologia sem muita dor de cabeça. A última versão do Ubuntu (Dapper Drake) permite aos usuários instalarem o Xgl e o Compiz. O sistema é tão estável com alguns drivers que pode ser usado tranqüilamente em ambientes de produção. De qualquer forma, como o Xgl não se ajusta com todas as extensões OpenGL aos clientes, muitas aplicações e jogos OpenGL ainda mostram erros durante a execução. ■

Informações [1] Quartz Extreme, da Apple: http://www.apple.com/macosx/ features/quartzextreme [2] Wiki do Xgl no freedesktop.org: http://www. freedesktop.org/wiki/software/Xgl [3] Evoluções no sistema X Window, OpenBSDCon 2005: http://www.openbsd.org/papers/ eurobsd2005/herrb-hopf.pdf [4] Wiki do Xgl no Suse: http://www.opensuse.org/Xgl [5] Wiki do Compiz: http://www.opensuse.org/compiz [6] Conferência dos desenvolvedores do Xorg: http://wiki.x.org/wiki/XDevConf

27

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Capa

Horizonte de luz A área de trabalho acelerada da Red Hat

O desenvolvedor “cabeça” do X na Red Hat detalha o projeto de efeitos na área de trabalho, AIGLX. por Kevin E. Martin

D

esenvolvedores da Red Hat trabalha- gem para oferecer melhor desempenho ram bastante em uma alternativa ao e imagens mais vivas. Mas como tudo Xgl, chamada de AIGLX e disponível aconteceu e o que isso significa para o para o Fedora Core 5. Seus objetivos: criar usuário? Este artigo descreve o contexto efeitos com aceleração de hardware e, ao da evolução do AIGLX e a nova geração mesmo tempo, facilitar a integração com das tecnologias gráficas. a infraestrutura do Xorg. O Fedora Rendering Project, um conjunto de soluções para a área de trabalho, O desenho atual do desktop está comedescreve o AIGLX como “um projeto que çando a mostrar sua idade avançada em almeja habilitar efeitos acelerados por diversas áreas. Primeiro, a área de trabaGL na área de trabalho”. Eles acrescen- lho atual foi desenhada em torno de um tam: “temos um servidor X levemente esquema 2D, enquanto que o hardware modificado (que inclui algumas exten- gráfico mudou dramaticamente para ensões), um pacote Mesa atualizado (que fatizar o 3D. Integrar o 3D ao desktop tem integra alguns novos protocolos), e uma sido o objetivo por muito tempo, mas até versão do Metacity com um gerenciador pouco tempo isso não foi possível. Outros de composição. O resultado final é que sistemas operacionais também reconhepodemos usar efeitos GL no desktop com ceram essa mudança de paradigma: a poucas mudanças, sendo possível ligá-los Apple está usando o OpenGL através da e desligá-los quando quisermos, sem a arquitetura de composição Quartz [1] e necessidade de substituir o servidor X”. a Sun tem um projeto chamado Looking O AIGLX é parte de um ecossistema Glass [2] para experiências usando Java3D de componentes gráficos que intera- em uma área de trabalho Linux. Uma segunda área problemática é que Kevin E. Martin trabalha há 17 anos no sistema todo o desenho do desktop é renderizado X Window. Ele é o principal criador do sistema diretamente no buffer frontal. Isso significa DRI (Direct Rendering Infrastructure) e do que os usuários podem ver elementos de sistema DMX (Distributed Multihead X). Desenrenderização enquanto o cenário está sendo volveu diversos drivers 2D e 3D e também foi construído. Tradicionalmente, programas gerente de lançamentos das mais novas versões tiveram que contornar esse problema dedo X11. Atualmente ele é o principal desenvolvedor do X e do OpenGL na Red Hat, participa do senhando mapas de pixels diretamente na conselho diretor da fundação X.org e coordena memória do computador e depois copiando o Modularization Working Group do Xorg. a imagem acabada para a tela.

Sobre o autor

No início...

28

O terceiro problema é a natureza estática do sistema de janelas e o fato de a transição entre estados ser instantânea ou usar animações muito primitivas. Por exemplo, minimizar e maximizar janelas ou representá-las como ícones de contornos muito simples, desenhados em seqüência no painel do Gnome para mostrar a transição.

Passado presente A versão atual para o desktop de composição baseado em OpenGL está construída sobre diversas tecnologias-chave, desenvolvidas ao longo de muitos anos. Na maior parte dos anos 90, a única implementação de código aberto do OpenGL era o projeto Mesa [3], um programa que implementava a interface OpenGL no lado cliente. Então, no final de 1998, a Precision Insight começou a desenvolver o sistema DRI (Direct Rendering Infrastructure ou “infraestrutura de renderização direta”) [4]. Esse projeto trouxe a aceleração 3D de hardware ao Linux, mas, como o próprio nome diz, apenas para programas de renderização direta. Já a renderização indireta foi implementada usando código do projeto Mesa. O DRI permitia que aplicações conseguissem fazer uso do hardware 3D através da biblioteca OpenGL (libGL). Tradicionalmente, somente programas

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


AIGLX

especializados em 3D usavam diretamente OpenGL ou uma de suas bibliotecas. Esses programas não possuíam nenhum (ou muito pouco) conhecimento direto do hardware 3D subordinado à libGL, pois o próprio DRI é uma infraestrutura genérica que carrega um driver de placa específico para desempenhar todas as funções de aceleração do OpenGL. Os drivers de placa específicos têm um conjunto bem definido de pontos de entrada para dar conta da inicialização e se acoplam diretamente à biblioteca libGL. Com o desenvolvimento relativamente recente da extensão Composite [5], agora temos a capacidade de redirecionar os dados de pixels 2D para a memória do computador ou para mapas de pixels fora da tela. Esse mapa de pixels (pixmap) pode depois ser copiado por um programa para o buffer de tela, atualizando o que os usuários vêem na área de trabalho. Isso efetivamente nos possibilita duplicar a memória buffer de dados 2D, uma habilidade que foi usada por muito tempo pelos programas OpenGL para eliminar objetos visuais sendo construídos. Essa habilidade não é nova. A extensão de buffer duplo (DBE - Double Buffer Extension) permite que programas individuais dupliquem o buffer de saída. O que faz o Composite único é o fato de que um programa individual não precisa ter conhecimento direto do DBE. Ao invés disso, um programa externo, conhecido como gerenciador de composição, controla quando as janelas serão redirecionadas e como os dados de pixels são copiados para o buffer de tela.

Luminocity No final de 2004, começamos os experimentos com o OpenGL para renderizar janelas redirecionadas em nosso projeto Luminocity [6]. Os gerenciadores de janela de testes desenvolvidos anteriormente usavam a extensão Render para copiar

Capa

os dados da janela para a tela (por exemplo: xcompmgr). Conforme dito anteriormente, a Apple estava usando o OpenGL para alcançar efeitos semelhantes, e a Sun esteve fazendo experiências usando Java3D no seu projeto Looking Glass. A idéia básica por trás do Luminocity era criar texturas OpenGL usando os dados de pixels de cada janela redirecionada e depois desenhar retângulos texturizados para o buffer frontal usando cada uma dessas texturas. Como a única aceleração de hardware OpenGL de código aberto disponível naquela época era o DRI, o Luminocity foi desenvolvido para usar renderização direta. O problema com essa técnica era que os dados de pixels tinham que ser copiados do servidor X para o cliente antes que pudessem ser usados como textura. Esse passo adicional de cópia prejudicava o desempenho. Outra diferença era que os gerenciadores de composição anteriores foram separados do gerenciador de janelas, enquanto o Luminocity era um gerenciador combinado de janelas e composição. Combinando as duas, o Luminocity podia não apenas copiar dados de janela para a tela e renderizar efeitos estáticos como sombras de janelas, mas também animar várias transições de estado. Por exemplo, criamos o efeito de janelas que balançam (wobbly windows), no qual as janelas são modeladas com um simples sistema de molas, que faz com que elas, ao serem arrastadas, sejam distorcidas como se uma mola tivesse sido solta.

Novo desktop Um dos problemas básicos de performance do Luminocity era o número de cópias de dados necessário para transformar os dados de pixels da janela redirecionada em uma textura que pudesse ser usada pelo hardware. Finalmente, queríamos chegar ao ponto em que não fosse preciso copiar dados de pixels de janelas redirecionadas,

29

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Capa

AIGLX

isto é, uma janela redirecionada poderia chegássemos ao desktop de composição Desenvolvemos uma nova camada de ser desenhada em um mapa de pixels fora baseado em GL. abstração [8] que é fortemente baseada da tela, no formato correto para ser usado O driver Mesa, usado no trabalho inicial na interface DRI, para oferecer a lógica diretamente pelo mecanismo 3D do hard- com o DRI, era baseado na versão do lado de ligação entre o código de extensão ware. Para concluir, implementamos duas cliente do Mesa, que traduzia as requisi- GLX do lado servidor e o driver específinovas tecnologias de nível de infraestru- ções OpenGL em comandos de desenho co de placa. A nova interface fornece três tura: AIGLX (Accelerated Indirect GLX) e a X11. Modificamos esse código, previamen- objetos: __GLXscreen, __GLXcontext e extensão GLX_EXT_texture_from_pixmap te chamado libX11, para chamar as funções __GLXdrawable. Métodos de alocar obje(ou extensão TFP). No topo dessa nova equivalentes do servidor X interno. Demos tos DRI específicos e a chamada do driinfraestrutura construímos uma nova bi- a essa versão o nome GLcore. ver de placa em particular estão contidos blioteca de composição baseada em cenas A interface usada para inicializar e inteiramente na camada de abstração, gráficas, que é usada pelo gerenciador de chamar o Glcore eram as estruturas que chamamos de provedor DRI. janelas Metacity para implementar os efei- __Glinterface e __GldrawablePrivate, Como nem todas as placas de vídeo têm tos de animação OpenGL. que são parte da implementação teste Open- drivers 3D específicos de placa, e vários GL (SI - sample implementation) [7]. outros servidores (Xnest, por exemplo) que Entretanto, o projeto DRI usava o Mesa fornecem suporte GLX não podem usar ao invés do SI, de modo que a interface drivers de hardware, o módulo GLcore Como já foi dito, a renderização indi- para os drivers específicos de placa era deve permanecer disponível. Então reesreta era completamente desacelerada baseada no Mesa, um tanto diferentes crevemos o nível mais alto do GLcore para no projeto DRI inicial. O plano sempre da interface Glcore. Esse desencontro usar a nova interface. Isso permite que ela foi implementar a renderização indi- foi uma das razões para que se levasse (chamada de provedor GLcore) seja usada reta acelerada usando o mesmo driver tanto tempo para implementar o AIGLX. no lugar dos drivers específicos de placa específico de placa que é introduzido Então, para tirar proveito dos drivers quando necessário ou desejado. no lado do cliente pela libGL. Contu- específicos de placa DRI/Mesa junto com Para inicializar o módulo GL para cada do, essa não era uma tarefa fácil: fazer o servidor X para AIGLX, tivemos que tela, a pilha de provedores GL é chamada isso acontecer não foi possível até que reconciliar as duas interfaces. e o primeiro provedor que responde com um valor não-nulo tem sua tela requerida pelo __GLXscreen. Esse mecanismo permite que futuros módulos GL implementem seus próprios __GLX-provider e se acoplem na pilha provedora.

Renderização indireta acelerada

Renderização direta

Figura 1: O Luminocity com suas janelas transparentes.

30

Com OpenGL indireto acelerado, podemos agora renderizar diretamente no interior do processo do servidor X. De qualquer forma, ainda devemos ser capazes de usar a janela dos dados de pixels que foi redirecionada para um mapa de pixels (com a extensão Composite) como textura. É isso o que a textura do mapa de pixels da extensão GLX fornece. O método simples seria copiar os dados tanto pelo protocolo via XGetImage ou através de um mapa de pixels de memória compartilhada no espaço de endereçamento do cliente, e depois o ge-

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


AIGLX

renciador de composição (com renderiza- várias tecnologias e fazer experiências ção direta) poderia usar os dados como usando OpenGL em um desktop de comfonte para uma chamada glTexImage2D posição. Poderíamos ter expandido o ou glDrawPixels. Isso não funciona na Luminocity para um gerenciador de prática devido ao elevado desperdício de janelas completamente funcional, mas recursos de se copiar dados de pixels da isso teria envolvido a recriação de anos (e para a) memória de vídeo. de trabalho gastos em nosso gerenciador Um procedimento melhor é manter os de janela de desktop padrão, o Metacity. dados do mapa de pixels no espaço de Ao invés disso, pegamos o que aprenendereços do servidor X (onde ele foi demos do Luminocity e reimplantamos renderizado) e usá-lo diretamente como no Metacity. fonte para operar a textura. Nossa intenção era criar uma nova O GLX_EXT_texture_from_pixmap for- biblioteca de composição OpenGL basenece a interface para que isso aconteça. ada em cenas gráficas, chamada libcm, Conforme dito acima, a solução ideal é que iria encapsular os métodos usados deixar que a placa de vídeo renderize o pelos demais gerenciadores de janela conteúdo da janela em um buffer fora da para desenhar o desktop. O Metacity tela, que depois seria usado diretamente poderia então acoplar várias animações (isto é, sem cópia ou conversão) como de transição de estado em cenas gráficas, entrada para o mecanismo de textura conforme a necessidade. do hardware. Para implementar essa soAo disponibilizar por completo a interlução, iremos precisar de um trabalho face OpenGL, podemos criar animações adicional na infraestrutura (por exemplo, complexas arbitrariamente, limitadas gerenciamento de memória), assim como apenas pela nossa criatividade e pelo trabalho adicional com drivers especí- hardware. Alguns efeitos comuns que já ficos de placa. Ambas as tarefas estão concluímos ou estão em processo de imatualmente em desenvolvimento. plementação incluem minimização, maA solução intermediária TFP redire- ximização, menu fade in/out, sombras, ciona dados de janelas para mapas de transparência de janelas e alternância pixels da memória do PC e chama as ope- de área de trabalho. Muitas outras serão rações de textura diretamente através da desenvolvidas conforme a necessidade. nova interface da camada de abstração Devemos notar que enquanto o AIGLX AIGLX para o driver de placa específico e o TFP são críticos para o nosso desktop Mesa/DRI. Ao fazermos a renderização de composição baseado em GL, eles fodiretamente para os mapas de pixels da ram desenvolvidos para serem usados memória do computador, eliminamos a de maneira independente pelos desenoperação de leitura do “framebuffer”, que volvedores de aplicativos. Por exemplo, pode ser bastante demorada - especial- o Compiz [9] é um outro gerenciador de mente em hardware AGP. Essa solução in- janela/composição que usa um método termediária é o que implementamos. Ela diferente, mas trabalha bem usando as provê desempenho razoável para nossa tecnologias que desenvolvemos [10]. demonstração de tecnologia inicial.

Metacity O Luminocity era um gerenciador de composição e de janelas “de brinquedo”, que nos permitia rapidamente construir

Falta muito

Atualmente, temos a prévia de uma tecnologia capaz de redirecionar janelas para mapas de pixels na memória do computador no servidor X e depois

Capa

usar a textura da extensão do mapa de pixels como fonte de textura. Isso elimina tudo, a não ser a última cópia de dados, e oferece uma performance razoável. Mais informações, demonstrações e o status do projeto estão disponíveis em [11]. Ainda há muito a ser feito. Nós e outros membros da comunidade estamos no processo de incluir uma série de novas tecnologias. Dentre elas: transformação de entrada, gerenciamento avançado de memória, extensões de redirecionamento (por exemplo, Xv, GL, DRI), objetos frame buffer, Fbconfigs e suporte completo à GLX 1.3). Enquanto essas e outras tecnologias são desenvolvidas, continuaremos a atualizar nossa solução de desktop de composição baseada em GL para tirar proveito das novas funções. ■

Informações [1] Arquitetura do Quartz: http://www.apple.com/macosx/ features/quartzextreme [2] Desktop Looking Glass: http://www.sun.com/ software/looking_glass [3] Mesa: http://www.mesa3d.org [4] DRI: http://dri.freedesktop.org/wiki [5] Extensão Composite: http://cvs.freedesktop.org/xlibs/ CompositeExt/protocol?view=markup [6] Luminocity: http://live.gnome.org/Luminocity [7] Implementação teste OpenGL: http://oss.sgi.com/projects/ogl-sample [8] Camada de abstração GLX: http://lists.freedesktop.org/archives/ xorg/2006-February/013326.html [9] Compiz: http://en.opensuse.org/Compiz [10] Compiz com AIGLX: http://lists.freedesktop.org/archives/ xorg/2006-March/013577.html [11] Fedora Rendering Project: http://fedoraproject.org/wiki/ RenderingProject/aiglx

31

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Capa

x11r7

X Novo X.Org 6.9/7.0 - A nova geração do X11

No primeiro grande lançamento do X Windows em mais de

10 anos, o X11R7, finalmente chegou a um design modular. Já o X11R6.9 implementa os mesmos novos recursos, mas ainda com árvore monolítica (pela última vez). por René Rebe

M

esmo após o surgimento do AIGLX e do Xgl, o venerável sistema X Window estréia uma nova versão que promete trazer uma grande mudança depois de mais de dez anos. O X Window fornece o framework básico para interfaces gráficas no Linux. Ambientes como KDE e Gnome operam através do X, ou mais especificamente, X11, a principal versão do protocolo X, que está por aí desde 1987. A fundação X.Org [1], uma organização sem fins lucrativos que lidera o desenvolvimento do X11 desde 2004, anunciou recentemente o lançamento simultâneo das versões 6.9 e 7.0 do X11. Ambas têm funções similares. A principal diferença é que o X11R7 vem com um design modular, inédito no projeto. Isso vai facilitar aos desenvolvedores e fabricantes de hardware a adaptação de componentes específicos do X11, com efeitos mínimos no resto da infraestrutura. De acordo com a fundação Xorg, “o Xorg 7.0 representa uma grande mudança no processo de desenvolvimento do X. Desenvolvedores podem trabalhar em componentes individuais com menos interferência de mudanças não correlacionadas, e os usuários podem adquirir novas funções e soluções para bugs, independentemente do lançamento da ver-

32

são principal. Com isso ficou ainda mais fácil para desenvolvedores e usuários participarem do crescimento e sucesso do sistema X Window”. Este artigo vai descrever algumas das novas funções do X11R7 e lhe ajudar a fazer seu próprio test drive da última versão do X11.

O que tem dentro? O quadro 1 fornece uma visão geral dos destaques do X11R7. A coleção é composta de mais de 200 pacotes individuais. Os pacotes podem ser construídos usando-se as ferramentas padrão de autoconfiguração, apesar de a ordem ser importante. Os pacotes individuais incluem protocolos (cabeçalhos), bibliotecas, o servidor X e drivers para placas específicas. A nova arquitetura significa

Novas Funções P

P P

P

Drivers 2D aperfeiçoados: Savage, OpenBSD e suporte a NetBSD (novo), NV (NVidia), Via, i810 (suporte para i915GM/E7721/i945G), sunffb, sisusb (novo), r128, Mach64, sis (XGI Chips). Aceleração EXA para i128, radeon e sis. Drivers 3D aperfeiçoados: Radeon R300/ R400 (Radeon 9500 e posteriores; novo). Suporte XvMC aperfeiçoado (descompressão de vídeo).

que os numerosos utilitários e programas demonstrativos que o X reuniu ao longo dos anos (tais como xterm, xclock, twm, xdm, xedit ou cliente de email xmh) agora estão disponíveis separadamente. A nova estrutura dá às distribuições mais controle sobre o modo como os pacotes Xorg são disponibilizados. Ao mesmo tempo, possibilita aos usuários atualizar drivers individuais a partir do código-fonte. Por outro lado, mais chamadas ao configure afetam o tempo de compilação. A versão 6.9 ainda usa o sistema de construção imake e é projetada para atualizar instalações existentes.

Transparências Como os drivers da versão anterior não suportavam aceleração gráfica P

P

P

P

XRender: O fallback de software não está tão lento como antes. 12 bit PseudoColor e 30 bit TrueColor: formatos de pixel mais dinâmicos, por exemplo com drivers binários Matrox Parhelia para programas médicos. Multiseat: suporte para teclados múltiplos e independentes e mouses para múltiplos usuários em uma estação de trabalho. Construção de sistema modular usando GNU automake e autoconf (versão 7.0 ou posterior).

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


x11r7

para o novo ARGB Visuals, um sistema mais lento era o que a maioria dos usuários experimentava ao habilitar a transparência real. Os únicos drivers realmente capazes de acelerar as operações do Xrender eram os drivers comerciais Nvidia. A razão para isso era o legado da arquitetura de driver XAA. A XAA (XFree86 Accelerated Architecture) focou em acelerar as operações legadas do X, tais como desenhar linhas, retângulos, círculos de vários tamanhos, modelos e conteúdos. Ela não foi desenhada para lidar com gráficos ARGB atuais, e não havia nenhum jeito prático e eficiente de integrar essas funções. Foi isso o que impulsionou Keith Packard, da HP, a desenhar um servidor X de testes, conhecido como Kdrive, com uma arquitetura que não suporta operações de desenho clássicas, mas foca em funções requeridas pelas modernas áreas de trabalho. Packard concentrou-se em acelerar o XRender e o RGBA Visuals, e manter o servidor o mais rápido possível. Zack Rusinm, da Trolltech, integrou essa arquitetura, agora chamada EXA, à versão atual e escreveu um tutorial sobre como portar um driver XAA em sete passos simples [2].

Quadro 1: Habilitando Composite e EXA

Por padrão, nem a extensão de composição, nem a aceleração EXA estão habilitadas, já que são ambas um tanto novas. Para usar essas funções, é preciso fazer duas pequenas alterações no arquivo de configuração /etc/ X11/xorg.conf. Para qualquer posição para a extensão de composição dentro do arquivo, é solicitado o seguinte: Section "Extensions" Option "Composite" "Enable" Endsection

Para habilitar a aceleração EXA, imaginando que os drivers suportam essa função, modifique a seção do driver, conforme mostrado nesse exemplo para uma placa Radeon:

Capa

O EXA foca nos pontos importantes para os desktops de hoje: P Gerenciamento otimizado de memória para mapas de pixels fora da tela. P Cópia de dados entre a memória principal e a de vídeo. Figura 1: A transparência de janelas agora é muito P Aceleração XRender para mais rápida graças ao EXA. imagens transparentes, suavização (anti-aliasing) de textos e composição. seção "Device" do arquivo /etc/X11/ O EXA ignora os numerosos elemen- xorg.conf: tos dos programas legados, tais como linhas e círculos, os quais são todos Option "AccelMethod" "EXA" acelerados por XAA. A maioria dos programas não faz uso Cheque o quadro 1. Patches para os desses tipos de elementos gráficos nos drivers i810, mach64, nv, savage, tdfx e desktops, por isso os elementos da ace- via estão disponíveis em [3]. No X11R7, o driver sis é o primeiro a leração são mínimos. Mesmo com um driver que só implementa as funciona- suportar chips XGI. Devido à dispendiosa lidades básicas do EXA, não deveria ser análise do driver e do hardware, a geproblema atingir bons valores de usa- ração de chips Radeon R300/R400 (até bilidade com janelas transparentes em Radeon 9800) agora suporta aceleração com drivers livres. hardwares recentes. O XvMC, que conduz a aceleração baseada em hardware para decodificação A versão atual do Xorg suporta funções de vídeo, foi retrabalhado nessa última EXA para os drivers r128, radeon e sis. versão do X11, e a implementação de É possível desabilitar esse recurso na software XRender mostra alguns aperfeiçoamentos de performances. Section "Device" O suporte a múltiplos dispositivos siIdentifier "Card1" multâneos (multiseat) também é uma Driver "ati" Option "AccelMethod" "EXA" novidade do X11R7. Ele possibilita a alo-

Drivers

Endsection

Se você não tiver um driver para EXA no momento, mas tem uma máquina rápida, use uma camada intermediária que armazena conteúdos de tela e assim permite acesso rápido a CPUs: Option "ShadowFB" "true"

E se o seu driver também não suporta ShadowFB diretamente, talvez você precise desabilitar a aceleração completamente para usar renderização de software: Option "NoAccel" "true"

Depois de modificar o arquivo de configuração, não esqueça de reiniciar o servidor.

Figura 2: O KDE introduziu um gerenciador de composição na versão 3.4.

33

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


x11r7

Para desenvolvedores Outra mudança importante é evidenciada pelo fato de o Xorg agora funcionar sem um formato binário para os drivers de hardware. O X11R7 agora utiliza elementos padrões ELF Shared Objects (arquivos Figura 3: O Xgl e o AIGLX alavancam o OpenGL para suportar .so). O grande benefício transformações de janela arbitrárias. é o porte mais simples para novas arquiteturas cação dedicada de teclados e mouses e busca de bugs mais fácil. Antes os para cada saída de vídeo, o que significa desenvolvedores tinham que consertar que múltiplos usuários podem trabalhar o GNU Debuger para ensinar ao GDB o em uma única estação. No entanto, esse formato especial X proprietário antes de começar o trabalho sério no desenrecurso ainda é experimental. O Xorg ainda não é compatível com volvimento do driver X. a nova geração X1000 de placas ATI. Como o driver comercial ATI também não suporta essas placas, os usuários O desenvolvimento também prosseguiu são forçados a recorrer ao driver Vesa no Xgl [4], a implementação da Novell como solução. No entanto, a ATI anun- do servidor X baseada em OpenGL. O ciou que estará oferecendo drivers Linux objetivo é dispensar a aceleração 2D com aceleração de hardware para essas para placas de vídeo modernas e usar placas em um futuro próximo. o mecanismo 3D para todas as tarefas de renderização. Isso não apenas vai facilitar o deConforme este artigo, nem todas as pla- senvolvimento, mas também forçar os cas de vídeo suportam transparência fabricantes a publicar drivers OpenGL em alta velocidade – mas cada vez mais estáveis e de alta performance para sisprogramas conseguem usar gráficos temas operacionais livres. ARGB. Por exemplo, a mais nova versão A Red Hat também está demonstrando emulador de terminal rxvt-unicode do interesse nas novas funções 3D do usa transparências para definições de X através do seu trabalho com o AIGLX cor, para dar aos usuários a capacida- (Accelerated Indirect GLX) [5]. O AIGLX de de habilitar transparências para al- suporta o OpenGL para composição. Congumas áreas da tela – normalmente o tribuições para o Xgl ou AIGLX em prol plano de fundo. do X.Org ou da biblioteca livre OpenGL A ferramenta MacOSD, que manipula Mesa3D geralmente beneficiam ambos telas OSD em máquinas PowerPC, agora os projetos e têm ajudado no rápido prousa janelas transparentes ao invés de gresso do desenvolvimento. screenshots coloridas (figura 1). O KDE O Xgl e o AIGLX usam um efeito de 3.4 também integra um gerenciador de inércia ao mover janelas, permitindo composição com o gerenciador de jane- que elas balancem, como mostrado na figura 3. O escalonamento arbitrário de las kwin (figura 2).

Febre OpenGL

Teoria e prática

34

janelas também é suportado. Para mais informações, leia os artigos sobre Xgl (pág. 24) e AIGLX (pág. 28).

Conclusões A sétima e mais importante versão do X11 deu destaque ao suporte de hardware. O suporte 3D para as séries ATI R300 e R400 finalmente oferece um driver open source para uma geração de chips de largo alcance. A nova arquitetura EXA e as extensões de composição introduzidas com a última versão ajudaram o X11R7 a se manter frente aos sistemas comerciais. De fato, o X11R7 tem uma leve liderança sobre o Windows. Agora é o momento de fabricantes começarem a oferecer drivers de alta performance, ou melhor ainda, abrir suas especificações de placa permitindo aos desenvolvedores de código aberto um trabalho eficiente que acelere o processo de remoção de bugs. O X11R7 também é uma boa notícia para quem acaba de chegar ao mundo do desenvolvimento do X. O excelente tutorial do EXA e os pacotes de drivers individuais facilitam a iniciação. ■

Informações [1] X.Org: htp://www.x.org/ [2] EXA em sete passos: http://lists.freedesktop.org/archives/ xorg/2005-June/008356.html [3] Status do EXA: http://wiki.x.org/ wiki/ExaStatus [4] Xgl: http://en.opensuse.org/Xgl [5] AIGLX: http://fedoraproject.org/ wiki/RenderingProject/aiglx

O autor

Capa

René Rebe, que estuda Ciência da Computação na Universidade Técnica de Berlim, Alemanha, só descobriu o Linux em 1997. Ele contribui com vários projetos de código aberto, tais como T2 e Sane. É possível contatá-lo através do email rene@exactcode.de.

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


http://supertuxbr.blogspot.com


Capa

SuperKaramba

Construção visual Crie temas do SuperKaramba

Se não encontra o tema do

SuperKaramba que precisa, faça você mesmo o seu. por Hagen Höpfner

P

apéis de parede sensacionais são úteis até certo ponto. Quem prefere enfeites que realmente trabalhem a seu favor (por exemplo, indicadores de clima ou monitoramento do sistema) vai precisar de uma ferramenta como o SuperKaramba [1]. Trata-se de uma ferramenta para KDE que permite o uso e criação de mini-aplicativos para a área de trabalho, chamados de widgets. O site do SuperKaramba se refere a esses widgets como “custom eye candy” (algo como “enfeites customizados”), mas os mini-aplicativos do SuperKaramba são mais comumente chamados de “temas”. São encontrados na Internet muitos temas prontos, mas também é possível criar os seus próprios. Um tema SuperKaramba pode tomar a forma de um jogo, um monitor de processos, uma lista de músicas ou até mesmo uma ferramenta de customização. O SuperKaramba em si já foi abordado na Linux Magazine número 1. Já este artigo é um breve tutorial de como criar seu próprio tema SuperKaramba.

36

Instalação A versão atual do SuperKaramba é a de número 0.39. Quem não é adepto da compilação manual pode encontrar pacotes .rpm e .deb em [2] e [3]. Ao iniciar o SuperKaramba, surge a janela Temas (figura 1), e um ícone de controle é jogado na barra do KDE. Para dar mais vida à área de trabalho, o SuperKaramba precisa de temas. Há projetos disponíveis para muitas aplicações típicas. Pressione o botão Obter Novos Temas para abrir uma caixa de seleção, que oferece alguns dos temas listados em [4]. Ao selecionarmos uma entrada, são mostradas informações sobre a funcionalidade e uma miniatura, para dar uma idéia sobre o tema. O SuperKaramba baixa os arquivos solicitados e os instala no diretório ~/.kde/ share/apps/superkaramba/themes. Ao fechar essa janela, os temas instalados aparecem na janela do SuperKaramba, onde é possível executá-los. É possível rodar múltiplos temas paralelos em uma única área de trabalho,

iniciando e removendo os temas individualmente, conforme o solicitado. O menu do clique direito também permite especificar se desejamos manter a capacidade de mover um tema. Alguns temas têm suas próprias janelas de configuração. Por exemplo, é possível ajustar o seu informativo de clima de acordo com sua localização atual.

Seu tema Para criar seu próprio tema, é preciso criar um arquivo .theme (por exemplo: meu_tema.theme), que pode ser aberto no SuperKaramba como um arquivo local. Como gráficos e scripts Python podem ser adicionados ao layout, provavelmente você vai querer arquivar todos esses componentes em um único diretório. O arquivo .theme compreende três componentes: comandos gerais especificam a geometria do tema e definem áreas interativas; sensores ajudam a ler os parâmetros do sistema, tais como a atual carga da CPU; e medidores mos-

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


SuperKaramba

tram os valores medidos. A listagem 1 e azul, com um valor máximo de 255. ilustra o processo de criação de um ar- O exemplo usa 255, 255 e 255, que é o quivo .theme. conjunto que representa a cor branca. A primeira linha da listagem 1 posiciona o tema no canto inferior esquerdo do desktop, define uma largura de 200 pixels As linhas 5 e 6 na listagem 1 criam dois e altura de 400 pixels, especifica que o medidores em texto, que têm seus contema pode ser movido e determina um teúdos derivados do sensor de tempo tempo de atualização de 1000 milissegun- (sensor=time). A linha 5 gera o tempo dos. Seria possível determinar a posição do e se sobrepõe ao tamanho de fonte tema especificando posições x e y a partir automático, que foi definido previado canto superior esquerdo do desktop. mente. Uma boa idéia é usar tags do O parâmetro BOTTOM=TRUE sobrepõe a tipo <GROUPS> para agrupar elementos posição horizontal padrão. De maneira semelhantes. Isso melhora a legibilisemelhante, a opção RIGHT=true posicio- dade do código e permite especificar na o tema na margem direita. ONTOP=true posições para os grupos. evita que outras janelas ocultem o tema. O primeiro grupo em nosso tema de TOPBAR=true e BOTTOMBAR=true encai- exemplo está localizado em x=10 e y=10; xam o tema no topo ou na parte de baixo além do medidor de tempo e data, ele conda tela, assim como a barra do KDE, não tém uma definição para a área interativa. permitindo que janelas maximizadas o A linha 7 diz ao SuperKaramba para chaescondam. mar a configuração de hora do KDE quanA segunda linha da listagem 1 insere o do a área de 120 por 34 pixel recebe um tipo, tamanho e cor que estão faltando duplo clique. O parâmetro preview=true para todos os elementos de texto asso- poderia ser usado para desenhar uma ciados ao tema. O código de cor é a com- moldura ao redor do tema para indicar binação de valores para vermelho, verde que ele ainda está em testes.

Sensores e medidores

Capa

O parâmetro format define o conteúdo de saída e formato de um campo, dependendo do sensor consultado. O parâmetro "hh:mm:ss" pega o resultado no formato hora:minuto:segundo, enquanto format="ddd dd.MM.yyy" fornece o dia da semana, dia do mês, mês e ano. Além do sensor de tempo, o SuperKaramba possui os seguintes sensores: P cpu: Carga o sistema P disk: Uso do disco para sistemas de arquivos montados P memory: Memória principal livre e utilizada P network: Tráfego de entrada e saída de rede P noatun: Informação de um processo noatun em curso P program: Saída padrão de qualquer programa P sensor: Processa a saída do sensor LM [8] P textfile: Lê um arquivo de texto continuamente P uptime: Uptime do sistema P xmms: Informação sobre um processo XMMS ➟

Listagem 1: meu_tema.theme 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16

KARAMBA x=0 BOTTOM=true w=200 h=400 LOCKED=false INTERVAL=1000 DEFAULT font=”Sans” fontsize=10 shadow=2 color=255,255,255 <GROUP> x=10 TEXT x=12 TEXT x=12 CLICKAREA </GROUP>

y=10 y=0 sensor=time fontsize=12 format=”hh:mm:ss” y=15 sensor=time format=”ddd dd.MM.yyyy” x=0 y=0 w=120 h=34 onclick=”kdesu kcmshell clock”

<GROUP> x=10 y=50 TEXT x=12 y=0 value=”MEM” TEXT x=45 y=0 sensor=memory format=”%fmb MB” TEXT x=12 y=15 value=”CPU” BAR x=45 y=15 sensor=cpu path=”bar.png” TEXT x=12 y=30 value=”IN” GRAPH x=45 y=30 h=12 w=70 color=255,255,255 points=100 sensor=network U device=”eth0” format=”%in” 17 IMAGE x=0 y=50 path=”background.png” 18 </GROUP>

Figura 1: Use a janela de temas do SuperKaramba para instalar novos temas.

37

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Capa

SuperKaramba

Figura 2: Antes de começar a construir seu próprio tema, dê uma olhada nos temas disponíveis gratuitamente na Internet.

O segundo grupo da listagem 1 ilustra o uso de alguns desses sensores em combinação com vários esquemas de saída. A linha 12 dá a leitura da memória livre em MegaBytes, sem buffer e memória cache. A linha 14 usa a imagem bar.png para criar um diagrama em barras que indicam a carga atual da CPU. É utilizado um gráfico para avaliar o tráfego que chega à rede, na linha 16. O gráfico tem 12x70 pixels e é branco. A última linha desse grupo usa o dispositivo de saída IMAGE para mostrar uma imagem. A opção PATH aceita uma URL, que nos permite embarcar uma imagem da Internet. A documentação sobre a formatação de opções para vários esquemas de saída está em [9].

Tabela 1: Funções callback do SuperKaramba Função

Trigger

initWidget(widget)

Cria o widget do SuperKaramba

Parâmetros passados

widgetUpdate(widget)

Atualiza o tema

Atualiza o intervalo do arquivo .theme.

widgetClicked(widget, x, y, button)

Clique do mouse no tema

x e y: coordenadas por click relativas ao tema; botão; botão do mouse usado.

widgetMouseMoved(widget, x, y, button)

Movimento do mouse dentro do tema

x e y: coordenadas por click relativas ao tema; botão; botão do mouse usado.

menuItemClicked(widget, menu, id)

Clique no item do menu

menu: manipular item do menu; valor: novo valor para itens do menu.

menuOptionChanged(widget, key, value) (true or false) Item de configuração do menu chamado no tema key: manipular item do menu; valor: novo valor para itens do menu. meterClicked(widget, meter, button)

Clique no esquema do medidor

meter: manipular item do menu; botão; botão do mouse usado.

commandOutput(widget, pid, output)

Via de chamada ao programa

executeInteractive(), se a saída vai para o stdout pid: processa ID para o programa; output: texto de saída.

itemDropped(widget, drop Text)

Objetos colocados no tema nas operações arrastar e soltar

dropText: texto para objeto (URL, por exemplo).

startupAdded(widget, startup)

O KDE inicia um aplicativo

Depois que a inicialização está completa, seguem os sinais startupRemoved() e taskAdded().

startupRemoved(widget, startup)

Ver startupAdded()

taskAdded(widget, task)

Ver startupAdded()

taskRemoved(widget, task)

Fim do programa aplicativo

activeTaskChanged(widget, task)

Move um aplicativo para o plano de frente

38

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


SuperKaramba

Capa

Listagem 2: meu_tema.py

Python

A interface do Python [10] ajuda 01 import karamba # Imports the Karamba API a deixar um tema mais flexível. 02 import string # String manipulation functions Funções callback acrescentam a 03 image=0 04 capacidade de reagir a eventos dis05 def initWidget(widget): parados no desktop KDE (tabela 1). 06 global image Para permitir que um tema acesse 07 karamba.acceptDrops(widget) um script Python, o arquivo deve 08 image=karamba.createImage(widget, 12, 102, “bar”) residir no mesmo diretório do ar09 karamba.hideImage(widget,image) quivo .theme e deve usar o mesmo 10 karamba.redrawWidget(widget) nome básico do tema, mas com a 11 extensão .py. O modelo em [11] é 12 def itemDropped(widget, dropText): 13 global image um ponto de início muito útil para 14 image_link=string.split(dropText, “file:” ,1)[1] o seu desenvolvimento próprio, já 15 karamba.deleteImage(widget,image) que ele integra um bom número de 16 image=karamba.createImage(widget, 12, 102, image_link) funções callback. 17 karamba.resizeImage(widget, image, 176, 286) A listagem 2 mostra um script Python que permite ao usuário substituir a Informações imagem mostrada no tema arrastando e soltando. Ele começa importando módulos adicionais: import karamba carrega o módulo SuperKaramba e [1] SuperKaramba: http://netdragon.sourceforge.net/ import string adiciona funções de manipulação de cadeias de caracteres ssuperkaramba.html para variáveis de texto. [2] Repositório Guru para Suse: A função callback initWidget(widget) é chamada automaticamente http://linux01.gwdg.de/~pbleser quando a janela do tema é gerada. Ao mesmo tempo, karamba.createImage [3] Pacotes SuperKaramba do Debian: cria uma imagem que é usada como um “guardador de espaço”, que explica http://archive.linux-peter.de/ porque ela fica escondida a princípio ( karamba.hideImage(widget,imag debian/pool/main/superkaramba e)), até que karamba.redrawWidget(widget) [4] Temas SuperKaramba: restaure a tela. http://www.kde-look.org A segunda função callback na listagem 2 é [5] Tutorial para criação de um tema: http://netdragon.sourceforge.net/ itemDropped(widget, dropText). Ela é chamada screate.html quando o usuário coloca um objeto no widget. A variável dropText fornece a URL para o objeto. A próxima linha remove o prefixo file: e descobre o caminho para um arquivo local. Então a função remove a imagem original da janela do tema e mostra a nova imagem, usando a última linha para medi-la (figura 3). ■

[7] Panorama de sensores: http://netdragon.sourceforge.net/ ssensors.html [8] Sensores LM: http://secure.netroedge.com/~lm78 [9] Medidores de suporte completo: http://netdragon.sourceforge.net/ smeters.html

Sobre o autor

Figura 3: Nosso widget de exemplo. Graças à interface Python, é fácil e rápido programar temas de funcionalidade avançada.

Hagen Höpfner estudou Ciência da Computação em Magdeburg, Alemanha. Após completar seu doutorado, se tornou palestrante sobre sistemas de informação. É autor do único livro alemão sobre “bancos de dados móveis”. Em seu tempo livre, Hagen é um pai amoroso e toca guitarra.

[6] Criando temas não retangulares: http://netdragon.sourceforge.net/ smask.html

[10] API Python do SuperKaramba: http://netdragon.sourceforge.net/ api.html [11] Modelo do SuperKaramba em Python: http://netdragon.sourceforge.net/ template.py

39

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Capa

D-Bus e HAL

Comunicação entre processos com D-Bus e HAL

Tráfego inteligente É o fim da linha para o CORBA! O Gnome já usa o D-

Bus e o KDE está em processo de migração. Conheça o novo sistema de comunicação entre aplicativos. por Oliver Frommel

N

inguém gosta de quem passa o dia no canto se recusando a falar com os outros. Para aplicativos, o mínimo que esperamos é que eles sejam capazes de interagir com outros aplicativos do ambiente através do arrastar e soltar de elementos. Muitos usuários ainda esperam que seus programas demonstrem mais habilidades de comunicação avançada, em todos os níveis. Eles querem montagem automática de dispositivos USB, por exemplo, independente de qual programa esteja sendo usado. E os softphones VOIP deveriam se entrosar com o novo hardware quando se muda o headset, sem exigir um reboot. Para que isso aconteça, é preciso um sistema de comunicação que deixe os aplicativos do desktop falarem uns com os outros e com os níveis inferiores através do kernel até o hardware. Se os desenvolvedores do Freedesktop.org não tiverem mais nenhuma carta na manga, o D-Bus [1], que se vale da camada de abstração HAL [2], será o sistema de comunicação da futura geração Linux.

Fale comigo O D-Bus é um sistema de comunicação entre processos, ou IPC (Inter Process

40

Communication). Ele fornece a infra- preferindo, em vez disso, a Libdbus-Glib, estrutura que permite aos aplicativos baseada na Glib-API, que fornece uma falarem uns com os outros e partes do API em C orientada a objetos. sistema operacional. Apesar de os meÉ nesse nível que as habilidades do Dcanismos IPC terem sido introduzidos bus avançam para fornecer um sistema no Unix anos atrás, eles são restritos a bus genuíno, que condiz com o seu nome. sinais, pipes e coisas do gênero. O processo-servidor, dbus-daemon, roda Desde o começo, houve diversas nos fundos e “escuta” solicitações de possíveis soluções nessa área, como o conexão dos aplicativos para vários tipos CORBA, o DCOM da Microsoft e cente- de eventos, tais como plugar e desplugar nas de outros projetos. O KDE e Gnome periféricos. Quando ocorre o evento, o à princípio fizeram experimentos com daemon D-Bus envia uma mensagem e suas próprias implementações CORBA. os aplicativos respondem de acordo. O KDE introduziu seu próprio sistema, o DCOP, e o legado do CORBA no Gnome fica evidente no sistema de componen- Em sistemas que usam o D-Bus, cada tes Bonobo. A despeito de suas opiniões processo-servidor implementa dois “capessoais sobre o CORBA, a maioria dos nais” (ou bus): o bus do sistema e o bus desenvolvedores, que quer apenas criar da sessão. O bus do sistema é iniciado seu aplicativo desktop, acaba se intimi- no momento de boot e continua rodando dando com o sistema. Isso possivelmente mesmo que não haja usuários logados. explica porque o Bonobo tem “vegetado” Quando um usuário roda o gerenciador por tanto tempo atrás do Gnome. gráfico de logins para iniciar uma sessão O D-Bus foi projetado como um siste- do desktop, um processo-servidor para ma simples e leve. A biblioteca básica o bus da sessão também é iniciado. O Libdbus simplesmente oferece funções binário dbus-daemon possui parâmetros que permitem a dois aplicativos se co- de linha de comando para ambos os momunicarem. Desenvolvedores de aplicati- dos: --system ou --session. O pacote vos normalmente não usam a biblioteca, D-Bus inclui o dbus-launch para iniciar

Sistema global

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


D-Bus e Hal

o daemon e posicionar as variáveis de ambiente solicitadas. A maioria das distribuições iniciam o daemon do modo de sessão D-bus junto com a sessão X. A figura 1 mostra o papel que os dois canais (bus) têm em comunicações entre os componentes do sistema operacional. O bus de sessão permite que aplicativos pertencentes a uma sessão do desktop falem uns com os outros. Logicamente, esses aplicativos podem ser serviços fornecidos pelo ambiente desktop. Ao contrário disso, o bus de sistema basicamente assegura que programas do desktop possam interagir com camadas inferiores. Por exemplo, um aplicativo pode usar o bus do sistema para acessar uma classe de hardware específica, tal como câmeras digitais.

Capa

Aplicativo

Bus do sistema

Aplicativo

D-Bus HAL

Bus da sessão Udev

Kernel

Hardware Figura 1: D-Bus e HAL no contexto geral dos componentes de um sistema Linux. Os aplicativos usam o D-Bus para consultar o HAL sobre o hardware.

fia no sistema HAL (Hardware Abstraction arquivos, incluindo partições criptografaLayer, ou camada de abstração de hard- das em LUKS [4]. No Gnome, o HAL agora ware). Embora o HAL seja independente conduz a maior parte do gerenciamento O D-Bus não oferece gerenciamento de do D-Bus, os dois componentes trabalham de hardware, em particular os dispositivos hardware próprio. Em vez disso, ele con- de mãos dadas: o HAL usa o D-Bus para hot-plugged. O processo gnome-volume-mafornecer serviços, e o D-Bus foi basica- nager, que transcorre no plano de fundo, Listagem 1: 10-camera-ptp.fdi mente programado para o HAL. possibilita isso. Para configurar o processo, Além do kernel, distribuições moderos usuários do Gnome rodam o front-end 01 <deviceinfo version="0.2"> nas usam o subsistema Udev para gerengnome-volume-properties (figura 2). Usuários 02 <device> ciar o espaço de usuário do hardware. do Fedora encontram o hal-device-manager 03 <match key="info.bus" U string="usb"> Desde a versão 0.59, o Udev substitui o escondido no pacote hal-gnome. 04 <match key="usb.interface.U sistema hotplug, que só recentemente Ele também é um front-end para o class" int="0x06"> se estabeleceu como mecanismo para HAL, que gera uma visão em árvore dos 05 <match key="usb.interface.U suportar hardwares plugáveis. dispositivos conectados (figura 3). subclass" int="0x01"> Além da informação do kernel e do Udev, 06 <match key="usb.U o HAL agora tem detalhes adicionais ou interface.protocol" int="0x01"> dispositivos armazenados como arquivos A especificação de protocolo D-Bus está 07 <merge key="info.U FDI (Device Information Files) em XML. disponível em [1]. O protocolo define category" type="string">camera</U merge> A listagem 1 mostra a seção de um arquivo quatro tipos de mensagens que usuários 08 <appendkey="info.U FDI referente a uma câmera digital. podem enviar para o bus. Por exemplo, capabilities" U O Gnome NetworkManager [3] é um bom um aplicativo pode chamar os métodos type="strlist">camera</append> exemplo de como os componentes coope- fornecidos por outros programas. Para 09 <merge key="camera.U ram uns com os outros. Ele usa o daemon refletir isso, o segundo tipo representa access_method" type="string">ptpU HAL para monitorar o subsistema da rede. uma resposta a uma solicitação de cha</merge> Quando mudanças ocorrem, tais como a co- mada. O terceiro tipo de mensagem é 10 </match> nexão ou desconexão de um ponto Wireless usado para manipulação de erros pelo 11 </match> 12 </match> USB, o daemon usa o D-Bus para notificar aplicativo servidor. O quarto tipo de 13 </match> o NetworkManager. Além de periféricos, o mensagem fornece sinais – transmiti14 </device> HAL também lida com sistemas de arquivos. dos por aplicativos para o bus – que não 15 </deviceinfo> Ele pode identificar tipos de sistemas de pedem uma resposta. Programadores

HAL

Usando D-Bus

41

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Capa

podem chamar métodos D-Bus de forma sincronizada ou não-sincronizada. O D-Bus usa um esquema de nomeação de vários níveis para identificar fontes e alvos de mensagens. Cada aplicativo contém um ou mais objetos, que podem ser endereçados via caminhos criados a partir de domínios invertidos, com o próprio nome do objeto anexado, por exemplo, /org/freedesktop/DBus. Objetos fornecem serviços que parecem semelhantes, mas que são separados por ponto: org.freedesktop.DBus. A interface agrupa os métodos e sinais para um objeto: novamente é usado um ponto de maneira parecida à interface Java.

Segurança

D-Bus e HAL

Listagem 2: cups.conf

Listagem 3: hal.py

01 <busconfig> 02 <!-- Somente root pode enviar U essa mensagem --> 03 <policy user="root"> 04 <allow send_interface="com.U redhat.PrinterSpooler"/> 05 </policy> 06 07 <!-- Permite que qualquer U conexao receba a mensagem --> 08 <policy context="default"> 09 <allow receive_interface="com.U redhat.PrinterSpooler"/> 10 </policy>

01 import dbus 02 03 bus = dbus.SystemBus() 04 proxy_obj = bus.get_object ('org.U freedesktop.Hal', 05 '/org/U

Aplicativos úteis

Outros aplicativos além do Gnome comeNão seria uma boa idéia deixar usuá- çaram a usar o D-Bus. Uma lista razoavelrios sem privilégios acessar o D-Bus. mente atualizada está disponível em [5]. De acordo com os desenvolvedores, a Apesar de os usuários serem advertidos segurança tem sido um grande motivo a não alterar sistemas em uso, é possível de preocupação desde o início. Em um utilizar o D-Bus para controlar os reprocaso simples, o UID seria avaliado para dutores de áudio BMPx e Banshee. Algo controlar o acesso. Se o daemon bus e os útil para programas que usam rede é a clientes pertencerem ao mesmo usuário, atual versão do pacote Avahi Zero-Conf não é aplicada nenhuma restrição. O que suporta o D-Bus. Isso significa que D-Bus também implementa políticas de aplicativos podem ser informados quando segurança que definem os privilégios de determinado servidor está na rede. um usuário, para permitir um controle mais granular (listagem 2). O D-Bus também pode ser usado com Há boas e más notícias para os prograo SE Linux (Security Enhanced Linux), madores do D-Bus. A boa é que estão provavelmente devido à Red Hat ser sua disponíveis bindings para uma série de principal desenvolvedora. linguagens de programação [6], desde GlibC API, passando por Python, até Ruby, C# e Java. A má notícia é que a API mudou com tanta freqüência no passado que muitos programas de amostra da Internet não irão rodar nas versões atuais do D-Bus. Há uma falta de documentação generalizada sobre a interação com o D-Bus. O melhor é investigar o código-fonte de um programa em funcionamento, tais como o Gnome Figura 2: Trabalhando com o D-Bus e HAL: NetworkManager, escrito em Python. o gerenciador de volume do Gnome Volume O método básico é o mesmo para todas Manager (no Fedora) que é configurado para o usuário via gnome-volume-properties as linguagens de programação suportadas: (mostrado acima). conectar ao bus, pegar uma referência

Programação

42

freedesktop/Hal/Manager') 06 hal_manager = dbus.InterfaceU (proxy_obj, 'org.freedesktop.Hal.U Manager') 07 08 dev_list = hal_manager.U GetAllDevices() 09 10 for dev in dev_list: 11 print dev,"\n"16 17 mainloop = gobject.MainLoop()

para o objeto remoto e a interface e lançar requisições, ou registrar manipuladores de sinal. Quando um programa registra um manipulador de sinais, ele requer um loop principal que checa regularmente os sinais que chegam. É aconselhável usar o objeto mainloop do Glib para programas D-Bus, não importando se a linguagem usada é C ou de scripting. A pequena listagem de código de amostra em Python adiante mostra como usar o D-Bus em seus programas. Usando construções orientadas a objeto, tais como objetos e interfaces, é muito mais fácil no Python do que em programas baseados em Glib-C. Veja como é fácil importar o módulo D-Bus na linha 1 da listagem 3. Ocorreram algumas mudanças no D-Bus na versão 0.41 ou mais novas: se você quiser usar o mainloop Glib, note que os métodos e objetos Glib agora residem no módulo dbus.glib. O acesso baseado na interface é uma outra função que foi desenvolvida ao longo do tempo. Muitos programas de exemplo na Internet demonstram o uso dos métodos get_service, já obsoletos. Hoje é necessário um objeto proxy que usa uma interface para colocar um wrapper em volta do acesso. O método bus

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


D-Bus e Hal

lidade, fornecendo os argumentos org. freedesktop.Hal e /org/freedesktop/ Hal/Manager (listagem 3, linha 4). Assim como no exemplo do cliente, o programa-teste começa conectando-se ao D-Bus. O construtor do objeto HelloWorldObject é então chamado para rodar o método __init__. O decorador @dbus. service.method especifica os métodos da interface.

Inicialização automática Até aqui, assumimos que um aplicativo se conecta ao D-Bus voluntariamente e depois roda como cliente. Um programa que fornece serviços D-Bus precisa ou ser iniciado no momento de boot, ou o servidor D-Bus tem que iniciá-lo. Para permitir que isso aconteça, o servidor precisa saber o nome do serviço do binário a executar; o servidor analisa um arquivo de configuração .service para descobrir o nome. A listagem 5 mostra um exemplo de um ar-

Listagem 4: server.py 01 02 03 04 05 06 07 08 09

import import import import

gobject dbus dbus.glib dbus.service

class HelloWorldObject(dbus.U service.Object): def __init__(self, bus_name,U object_path): dbus.service.Object.__init__U (self, bus_name, object_path) @dbus.service.method('org.U firstfloor.HelloWorldIFace') def hello(self): return "blabla"

10 11 12 13 session_bus = dbus.SessionBus() 14 bus_name = dbus.service.U BusName('org.firstfloor.U HelloWorld', bus=session_bus) 15 object = HelloWorldObject(bus_name, U '/org/firstfloor/HelloWorldObject') 16 17 mainloop = gobject.MainLoop() 18 mainloop.run()

quivo de configuração para o reprodutor de áudio BMPx. De acordo com o que vimos nesses exemplos, não é tão difícil usar o D-Bus para deixar seus próprios aplicativos falar com o “mundo exterior”, embora possa ser penoso achar a função Figura 3: O HAL Device Manager (chamado no Fedora de Gerenciador correta na floresta da de Dispositivos) mostrando uma visão em árvore do hardware. sua API. O D-Bus está se espalhando como um incêndio florestal câmeras, discos rígidos ou scanners, no mundo Linux, apesar de ainda estar por exemplo. Já os desenvolvedores do em desenvolvimento e das mudanças KDE estão lentamente migrando seus de interface de uma versão para outra. aplicativos para o D-Bus, de modo que Se você estiver interessado em experi- os desenvolvedores de aplicativos talvez mentar o D-Bus nesse estágio, esteja devessem reservar algum tempo para ciente de que a maioria das alterações trabalhar com o D-Bus também. ■ na API do D-Bus podem ocorrer sem Informações prévio aviso.

De volta para o futuro Em uma etapa que dá um certo toque de ironia à história do desenvolvimento do D-Bus, seus criadores agora acham importante ter um sistema que trabalhe em toda a rede. Levando isso em consideração, provavelmente é só uma questão de tempo para que o sistema comece sua mutação e se transforme no mesmo monstro que o CORBA se tornou. Se isso acontecer, esperamos que um grupo de desenvolvedores da Novell ou Red Hat, por exemplo, comece tudo de novo, do zero. Até a conclusão deste artigo, o Gnome se valia pesadamente do D-Bus para gerenciar dispositivos hotplug, tais como

Listagem 5: BMPx.service 01 [D-BUS Service] 02 Name=org.beepmediaplayer.bmp 03 Exec=/usr/libexec/beep-media-U player-2-bin

[1] D-Bus: http://www.freedesktop.org/ wiki/Software/dbus [2] HAL: http://www.freedesktop.org/ wiki/Software/hal [3] Gnome NetworkManager: http://www.gnome.org/ projects/NetworkManager [4] LUKS para HAL: http://www.redhat.com/ magazine/012oct05/features/hal [5] Software D-Bus: http://www.freedesktop.org/ wiki/Software_2fDbusProjects [6] Bindings de linguagens para D-Bus: http://www.freedesktop.org/wiki/ Software_2fDBusBindings

Sobre o autor

get_object do objeto lhe dá essa habi-

Capa

Oliver foi por muito tempo operador de sistemas e programador na Ars Electronica Center, em Linz, Áustria. Depois de terminar seus estudos em Filosofia, Lingüística e Ciência da Computação, se tornou editor da Bavarian Broadcasting Corporation. Hoje ele comanda o Centro Editorial de Competência em Software e Programação da Linux New Media AG.

43

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Análise

Enlightenment

Faça-se a luz! Explorando o ambiente gráfico E-17

O Enlightenment possui uma larga base de fãs, todos aguardando pacientemente pela nova versão. Mas a versão de desenvolvimento 17 já é razoavelmente estável, trazendo primor estético ao mundo dos gerenciadores de janelas e muita flexibilidade. por Karsten Jäger

Christopher Potter – www.sxc.hu

O

Instalação

Enlightenment surgiu em 1997 como uma versão “mexida” do gerenciador de janelas Fvwm. Quase dez anos depois, A maneira mais fácil de experimentar o E17 é iniciar o comseus desenvolvedores estão trabalhando na versão 0.17, putador pelo live CD Elive [2]. Especialistas podem baixar um ambiente gráfico rico em recursos, principalmente visuais, o código mais atual direto do repositório CVS (Concurrent além de dar aos usuários muitas opções de configuração. Versions System). Há alguns scripts auxiliares para isso em Embora a versão anterior, Enlightenment 16, tenha vários [3] e [4]. Um outro script, em [5], compila os pacotes Debian anos (e uma grande comunidade de usuários fiéis), a história da necessários direto do CVS. Usar pacotes prontos é a maneira versão atual de desenvolvimento, a DR 17 (development release mais fácil de instalar. Eles estão disponíveis para as mais 17), vem sendo bastante complicada. Os programadores tiveram variadas distribuições. Após a configuração do E17, o gerenciador de janelas sobe que reescrever muitas ferramentas e bibliotecas, eliminando blocos inteiros de código obsoleto. Outro fato que afetou bastante com um visual limpo e bem arrumado (figura 1). Por padrão, o processo: muitos desenvolvedores do Enlightenment também são responsáveis por outros projetos importantes no mundo GNU/Linux - como a biblioteca gráfica imlib2, do Gnome. Mesmo que o E17 ainda esteja em um estágio pré-alfa, muitos usuários já atualizaram seus desktops para a E17. Isso está abastecendo o projeto com relatórios de erros e, conseqüentemente, destravando o desenvolvimento. O E17 já é razoavelmente estável e, realmente, vale a pena conferir. No entanto, quem se decidir pelo passo à frente deve considerar um fato incômodo: o E17 ainda está sujeito a mudanças estruturais. Por exemplo, a sintaxe dos arquivos de configuração vive mudando. Uma atualização pode simplesmente apagar a configuração atual e substituí-la por um ambiente padrão. Nem é preciso dizer que todas as preciosas personaliFigura 1: A bem arrumada área de trabalho padrão do Enlightenment. zações vão para o espaço.

44

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


Enlightenment

seu sistema modular carrega apenas alguns poucos módulos. Esse é o modo como o E17 economiza recursos. Por isso, o sistema tem desempenho bom em hardware antigo – mesmo levando em conta que a configuração padrão usa efeitos visuais como barras de janelas animadas e com sombreamento prateado. O lançador de aplicativos IBar desenha um tipo de brilho em torno do ícone selecionado, que também pisca.

Análise

Configuração Diferentemente de outros gerenciadores de janelas, o Enlightenment 17 usa arquivos de configuração binários. Isso pode implicar em uma mudança radical de hábitos de configuração, para muitos usuários. Além da ferramenta de linha de comando enlightenment_remote, o E17 agora tem um painel de configuração gráfico (figura 2). Foi um passo enorme para deixar o sistema mais amigável,

Quadro 1: Pacotes do E17 A equipe do Enlightenment disponibiliza pacotes de instalação (e outros mais experimentais) para algumas distribuições. Mas para quem usa o Suse, por exemplo, a maneira mais fácil de instalar é através do repositório Packman. Configure o servidor http://packman.iu-bremen.de e o diretório suse/<versao> como uma fonte de instalação do YaST, substituindo “<versao>” pela versão do Suse em uso. Adeptos do Fedora Core 4, podem usar o aplicativo de Didier Casse em [6] para configurar o gerenciador de pacotes Yum a usar o repositório correto. Usuários das versões 2 e 3 do Fedora precisam acrescentar o repositório manualmente, editando o arquivo /etc/yum.conf para que ele fique assim: [Didier] name=Didier's yum repository for e17 apps/lib baseurl=http://sps.nus.edu.sg /~didierbe/fedora/X/en/i386 http://dentrassi.de/e17/fedora /X/en/i386/RPMS.e17/ http://fedora.oceighty.net/e17 /fedora/X/en/i386/RPMS.e17/ http://dr17.saaf.co.uk/fedora /X/en/i386/RPMS.e17/

O “X” deve ser substituído pela versão do Fedora em uso. Os comandos yum check-update e

yum install enlightenment vão instalar o E17.

O desenvolvedor Shadoi tem pacotes para o Debian Sid e o Ubuntu Breezy. Apenas acrescente as entradas abaixo ao arquivo /etc/apt/sources.list e rode os comandos apt-get update e apt-get install enlightenment para instalar.

Figura 2: A nova ferramente gráfica de configuração. mas a opção no terminal ainda tem muito mais opções. Por exemplo, só nela é possível carregar módulos e mudar atalhos de teclado. O comando enlightenment_remote -h fornece uma explicação de cada parâmetro (em inglês). O painel de configuração é dividido em Focus Settings (figura 3), Desktop Settings, Windows Manipulation e Window Display. Usuários podem realizar diversas configurações, tanto simples quanto avançadas, para alterar o comportamento do ambiente. Arquivos binários .eap também são responsáveis pela inicialização de programas. Esses arquivos incluem não

# E17 para o Debian Sid deb http://www.soulmachine.net/debian unstable/ # E17 para o Ubuntu Breezy deb http://www.soulmachine.net/breezy unstable/

Como a versão antiga do Enlightenment, a 16, também está disponível nos repositórios, talvez seja preciso forçar a instalação da 17 (0.16.999.xxx). Para instalar no Gentoo, será preciso algumas entradas novas no arquivo /etc/portage/package.keywords (leia o quadro 2: “Keywords do Portage”). E um simples emerge e não vai fun-

cionar. Será necessário instalar programas e bibliotecas na ordem certa para resolver as dependências e garantir que tudo rode suavemente. Uma boa forma de começar é tentar o seguinte “comando”: emerge -av dev-db/edb eet imlib2 imlib2_loaders evas ecore epeg epsilon embryo edje esmart emotion etox ewl engrave e entice elicit examine engage e_utils entrance xine-lib emotion envision elation evidence eterm enotes equate

Em todas as distribuições, será preciso uma entrada para o E17 no gerenciador de display. E para rodar o startx, será preciso uma entrada no arquivo ~/.xinitrc.

Figura 3: A janela Focus Settings, para configuração das opções de foco.

45

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Análise

Quadro 2: Keywords do Portage #e17 cvs stuff app-misc/evidence -* app-misc/examine -* app-misc/enotes -* dev-db/edb -* dev-libs/eet -* dev-libs/embryo -* dev-libs/engrave -* dev-util/e_utils -* mail-client/embrace -* media-gfx/eclips -* media-gfx/elicit -* media-gfx/entice -* media-gfx/imlib_tools ~x86 media-libs/edje -* media-libs/emotion -* media-libs/epeg -* media-libs/epsilon -* media-libs/etox -* media-libs/imlib2 -* media-libs/imlib2_loaders -* media-libs/xine-lib -* media-video/eclair -* media-video/envision -* media-video/elation -* net-news/erss -* sci-calculators/equate -* sys-fs/evfs -* x11-libs/ecore -* x11-libs/esmart -* x11-libs/evas -*

apenas o coman- Novamente, a configuração está resdo e seus parâme- trita à ferramenta do terminal enlitros para iniciar ghtenment_remote. Por exemplo: seus aplicativos, mas também os enlightenment_remote -desktop-bg-add 0 U 0 0 0 /caminho/para/fundo.edj ícones. Para criar um novo .eap, é enlightenment_remote -desktop-bg-add 0 U preciso primeiro 0 1 0 /caminho/para/fundo.edj iniciar o menu flutuante e clicar enlightenment_remote -desktop-bg-add 0 U em Create Icon 0 2 0 /caminho/para/fundo.edj (figura 4). Isso vai abrir o Eap Editor Figura 4: O (figura 5). O cam- enlightenment_remote -desktop-bg-add 0 U botão Create Icon po App name re- 0 3 0 /caminho/para/fundo.edj permite a criação cebe o nome do de novos ícones, com programas aplicativo; já no Arquivos binários para papéis de associados. Executable deve parede são criados com o programa ser digitado o edje_cc, que constrói um arquivo comando para abrir o programa, in- .edj com um diretório de imagens cluindo quaisquer parâmetros. Clicar e o arquivo background.edc. O no grande botão abaixo de Icon abre o manual do Enlightenment tem um gerenciador de arquivos Efm, para se exemplo funcional em [8]. Arquiescolher o ícone. vos úteis para planos de fundos Apesar de toda essa feitiçaria binária, estão disponíveis no site Get-e.org ainda há alguns arquivos de configu- [9]. Basta copiá-los no diretório ração baseados em texto, por exemplo ~.e/e/backgrounds/. o ~/.e/e/applicatins/bar/.order. Para um efeito de transparência Esses arquivos e os outros .order verdadeira, o E17 precisa de módulos são usados para mudar a ordem das extras. Mas os desenvolvedores não entradas da barra IBar, favoritos e ou- pretendem integrar esse recurso no tros módulos. Os arquivos têm uma futuro. No entanto, a transparência estrutura bem simples, com apenas “falsa” do Eterm pode ser usada no E17. um arquivo .eap por linha: No entanto, cabe um alerta: estranhos e irreproduzíveis erros podem – e proeterm.eap vavelmente vão – ocorrer. firefox.eap

x11-libs/ewl -*

gimp.eap

x11-misc/e17genmenu -*

bmp.eap

x11-misc/engage -*

Decoração e módulos

x11-misc/entrance -*

Papéis de parede também são armazenados de forma binária, como arquivos .edj, podendo ser tanto estáticos quanto animados. Por padrão, o E17 tem quatro áreas de trabalho virtuais, com planos de fundo independentes.

x11-misc/iconbar -* x11-plugins/e_modules -* x11-terms/eterm -* x11-terms/enterminus -* x11-wm/e -*

46

Enlightenment

Figura 5: O editor Eap associa um ícone com um programa ou comando.

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


Enlightenment

Análise

fórum bastante útil em [11], além de um movimentado canal IRC (#e) no freenode.org.

Conclusão Para quem procura um gerenciador de janelas bem organizado, de visual impecável, o E17 Development Release vale realmente uma olhada mais de perto. Essa versão é estável em sua maior parte (embora perder suas configurações após uma atualização possa ser bem traumático). Os desenvolvedores ainda têm uma lista de tarefas enorme, mas o progresso no projeto é bem rápido e animador. ■

Informações [1] Enlightenment: http://www.enlightenment.org

Figura 6: O tema Winter, do Enlightenment DR 17.

enlightenment_remote -module-load U 'nomedomodulo' enlightenment_remote -module-enable U 'nomedomodulo'

O Engage (mostrado na figura 6) é um dos módulos extras mais populares. Ele lembra bastante o dock do Mac OS X (sistema operacional da Apple), com um lançador de aplicativos, a bandeja do sistema e um visual moderno. Ao passar o mouse por cima do ícone de um programa, o Engage amplia o ícone. Programas ativos ganham um segundo ícone menor em cima do ícone normal.

Como os planos de fundo, temas também usam formato binário, em arquivos .edj. Há uma grande coleção de temas em http://get-e.org, que hospeda o repositório central da comunidade E17 [9]. Esses arquivos fornecem tudo que um tema precisa: imagens, funções de animação e planos de fundo. Em outros ambientes gráficos, seriam necessárias árvores de diretórios para se conseguir a mesma coisa. Apenas baixe algum arquivo .edj e coloque-o na pasta ~/.e/e/themes. Então é possível selecionar o tema no menu principal, abaixo de Themes. A figura 6 mostra o tema Winter. A comunidade do Enlightenment oferece diversas opções de suporte (todas em inglês). Por exemplo, a lista de emails e-users, que não é restrita a usuários. Há muitos desenvolvedores dando uma ajuda ali [10]. Uma das vantagens de se participar de uma lista de emails é ter acesso rápido aos bugs e como contorná-los. Também há um

[3] CVS script 1: http://www.rasterman. com/files/get_e.sh [4] CVS script 2 :http://omicron.homeip.net/ projects/easy_e17/easy_e17.sh [5] CVS script 3: http://nooms.de/misc/e17install.sh [6] Modificando o yum: http://sps.nus.edu.sg/~didierbe/share/ dc-fc4-yum-repo-1.3-1.fc4.noarch.rpm [7] Instalação no Fedora: http://sps.nus.edu.sg/~didierbe/ [8] Manual do edje_cc: http://get-e.org/ E17_User_Guide/English/_pages/3.8.html [9] E17 Ð notícias, módulos, temas, guia do usuário: http://get-e.org [10] Lista de emails E17: https://lists.sourceforge.net/lists/ listinfo/enlightenment-users [11] Fórum E17 :http://edevelop.org/forum

O autor

Uma das grandes vantagens do E17 é seu design modular. Diferentemente dos principais ambientes gráficos, ele carregas apenas alguns poucos módulos essenciais, como é possível ver no menu da figura 1. Contudo, vale a pena carregar e ativar alguns módulos adicionais, com o comando enlightenment_remote:

[2] Elive CD :http://www.elivecd.org/

Karsten Jäger é professor de uma escola de Xanten, na Alemanha, durante o dia. Para ajudar outras pessoas na migração, também ensina sobre Linux em um centro educacional adulto. É fundador do grupo de usuários de Linux de Xanten, no site http://lugx.de.

47

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Tutorial

Audacity

Estúdio caseiro Grave podcasts com o Audacity

Crie seus próprios podcasts com o descomplicado editor de som Audacity. Acompanhe o

tutorial de um experiente “podcaster”. por Jon Watson

Alle

nP

op

w e–

. s xc ww

. hu

A

través de podcasts, entrevistadores, comentaristas e aspirantes a radialistas – sem acesso à estrutura de uma rádio convencional – podem distribuir seus programas. Neste artigo, vamos mostrar como criar o arquivo de som de seu podcast com o editor de som Audacity. Podcast é a popular técnica de distribuição de arquivos sonoros, geralmente no formato de programas de rádio, através da Internet. Além de serem fáceis de produzir, receber os arquivos é bastante conveniente, já que esse é um processo automático. Os podcasts são enviados através de um feed RSS (Really Simple Syndication). Basta “assinar” esse feed em seu cliente de podcasts, como o reprodutor de áudio Amarok, e pronto. Sempre que houver

48

um novo arquivo, ele será baixado automaticamente. Diversas empresas de hospedagem brasileiras e internacionais oferecem planos (pagos) de hospedagem de podcasts, cobrindo toda a parte técnica envolvida. O autor apenas precisa fazer o upload do arquivo, e o ouvinte, cadastrar a URL do podcast em seu programa cliente. Assim, podemos nos concentrar exclusivamente na parte criativa: a criação do arquivo de áudio. Logicamente, existe a possibilidade de configurar um servidor RSS próprio para o envio dos podcasts aos ouvintes. No entanto, neste artigo vamos nos concentrar na produção do áudio. Vamos mostrar como gravar, editar e etiquetar (preencher as tags de informação) um podcast.

Primeiros-passos O Audacity é um editor de áudio que atingiu a maturidade, livre (em todos os sentidos) e disponível para GNU/ Linux, Windows®, Mac, além de qualquer outro sistem operacional em que seja possível compilá-lo. Um dos incovenientes é que, dependendo da distribuição, a tradução pode estar incompleta, além de aparecerem erros com caracteres acentuados na interface. Apesar de o aplicativo não ser especificamente uma ferramenta para edição de podcasts, ele possui um formidável conjunto de ferramentas, tanto para iniciantes como experientes “podcasters”. É bem provável que o aplicativo esteja no repositório oficial de sua distribuição. Caso contrário, ou se quiser a última versão,

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


Audacity

Figura 1: É possível reconhecer uma gravação estéreo (parte inferior) pela faixa de áudio dupla, embaixo da faixa mono. acesse o site oficial [1]. A estável é a 1.2.4b, além da versão beta 1.3.0b. Esta última vem com alguns avisos sobre possível perda de dados e quedas súbitas (crash). Mas pudemos utilizá-la sem problemas neste artigo. No entanto, o uso de uma versão beta não é recomendado, mesmo não havendo nenhum incidente com seu uso. O Audacity é um “aplicativo-monstro”, com recursos suficientes para um projeto de áudio de qualquer tamanho. Já criar um podcast é relativamente simples. Portanto só iremos abordar um subconjunto das ferramentas disponíveis. Como requisitos, em linhas gerais, quem produz um podcast deve estar apto a gravar áudio com um microfone, importar áudio de outras fontes, editar as faixas, criar o arquivo final e etiquetá-lo com as tags de informação. Vamos partir do princípio que não houve problemas com a instalação. Para quem passou apuros, a seção de ajuda do site [2] é um bom começo (inclusive com boa parte traduzida para o português). Um recurso importante do Audacity é que ele usa arquivos de projetos. Ao salvar uma gravação pela primeira vez, o padrão é o formato *.aup, baseado em XML (Extended Markup Language). Enquanto estivermos trabalhando no projeto, é altamente recomendável o uso desse formato, ao invés de exportar para MP3 ou OGG em cada etapa.

O formato *.aup é bem mais fácil de ser editado do que um em MP3 ou OGG porque todos os dados da faixa e layout são salvos individualmente, sem compressão. Editar um arquivo *.aup é muito mais fácil que achar seu caminho entre as faixas MP3 ou OGG.

Gravação Na maioria dos casos, o Audacity irá reconhecer o sistema de som corretamente, bastando pressionar o grande botão vermelho e começar a falar no microfone ligado

Tutorial

ao PC. De qualquer modo, é bom checar algumas configurações antes de soltar seu primeiro podcast, para se certificar de que os principais clientes de podcast e seus ouvintes vão poder ler o arquivo. Primeiro, é melhor gravar em estéreo ao invés de mono. Por padrão, o Audacity faz gravações em mono. Se você já estiver familiarizado com editores de áudio, logo reconhecerá esses modos, já que a representação da gravação será mostrada como uma faixa individual (mono) ou dupla (estéreo) (figura 1). Para mudar de mono para estéreo, selecione Arquivo | Preferências. Clique na aba Dispositivos e na segunda opção da lista em Canais. Podemos gravar até 16 canais, mas, devido à simplicidade de um projeto do tipo podcast, nem chega-se perto desse limite. Se houver mais de um dispositivo de som em seu sistema, o Audacity provavelmente vai selecionar o errado. Para dizer ao Audacity qual dispositivo usar, devemos selecioná-lo na lista, na seção Gravando da aba Dispositivos, em Preferências (figura 2). ➟

Figura 2: Configure a reprodução, gravação e playthrough (tocar a nova faixa enquanto ela está sendo gravada) na janela Preferências do Audacity.

49

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Tutorial

Audacity

Figura 3: Os botões, parecidos com os de um aparelho de som, estão no topo da janela principal do Audacity e controlam suas principais funções. Isso é praticamente tudo o que precisamos para começarmos a gravar. Clique no botão OK para fechar a janela Preferências e voltar à tela principal do Audacity. Ao longo da parte superior da janela principal há uma linha com botões parecidos com os de um aparelho de som para executar, pausar, parar, ir para o início e ir para o final. Para gravar, apenas clique no grande botão vermelho e comece a falar no microfone (figura 3). Durante a gravação, a faixa de áudio vai sendo criada em tempo real, como a da figura 1. Por mais simples que essa parte possa ser, há algumas considerações importantes. O Audacity oferece várias maneiras de controlar o nível de volume de voz. Algumas das ferramentas já estão instaladas e outras fazem parte do ambiente gráfico padrão, como o KMix do KDE. Uma das ferramentas oferecidas pelo Audacity é um medidor no canto superior direito da janela principal do programa (figura 4). Enquanto se grava, o medidor se movimenta para mostrar a altura da voz. Poderíamos intuir que o correto é manter a voz na marca intermediária, mas o que se pôde comprovar é que o

50

medidor deve ficar o máximo possível na direita, caso contrário o áudio não será ouvido confortavelmente. Também é possível controlar o nível geral de entrada de voz arrastando o botão do microfone, abaixo dos controles de aparelho de som (figura 3). Por último, cada faixa contém um controle de volume (os indicadores “+” e “-”, à esquerda de cada faixa, na figura

1) que controla o volume da respectiva faixa em particular. Depois de muita experimentação com gravações-teste horríveis, chegamos a algumas dicas úteis. Considerando que os ouvintes vão ouvir a faixa em diferentes aparelhos e ambientes, e o único denominador é que a maioria usa fones de ouvido, o melhor é gravar tudo em volume médio. Usar fones de ouvido para checar a gravação também ajuda a encontrar o volume adequado. Obviamente, a partir dessa média, os ouvintes vão poder ajustar seus próprios volumes. Basicamente, para obtermos um volume audível, é necessário que o indicador vermelho marque o máximo possível para a direita, enquanto se grava no microfone. Se ele fica no meio, a gravação fica inaudível. A variação no som é provavelmente afetada pelos diferentes dispositivos de som. O medidor do microfone mostrado na figura 3 (abaixo do botão de gravar) deve ser colocado em 0.5 (no meio), bem como os medidores de cada faixa individual (figura 1).

Figura 4: O medidor vermelho, no canto superior direito, fica se mexendo para mostrar a altura da voz.

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


Audacity

Deixamos o KMix cuidar dos níveis de som. Apenas colocamos o som do microfone acima de zero (figura 5) e ligamos o Mic acionando o botão vermelho. O verde emudece o dispositivo e deve ficar apagado. O controle Capture (captura) e seu volume também devem estar ativados. Assim, o único comando que precisamos usar de tempos em tempos foi o medidor individual específico de cada faixa (figura 1). Algumas vezes, ao importarmos trechos de áudio, o som chegava muito alto ou muito baixo, o que ajustamos usando o controle de volume da faixa importada.

Importar áudio

que ao final do dia teremos produzido um arquivo MP3 ou OGG, ambos sujeitos a perdas na compactação. Vale lembrar o que ocorria no final dos anos 90, quando os então inexperientes artistas gráficos editavam uma imagem em JPEG (que é compactada) e a salvavam a cada alteração. Cada vez que o arquivo era salvo, a imagem se comprimia e ia perdendo bits, até que ao finalizar o arquivo o resultado era um tanto ruim. O mesmo vale para áudio. O ideal é que a edição (e importação) sejam feitas em áudio sem compressão. Compacte apenas o arquivo final. Estranhamente, não é possível importar um arquivo .aup nativo do Audacity para o próprio Audacity. Se quisermos importar esse formato, primeiro devemos salvar a gravação que desejamos, importar como arquivo WAV descompactado e então importar esse arquivo.

Um podcast do tipo programa de rádio deve ter um conteúdo variado para ser interessante. O Audacity pode importar, por exemplo, entrevistas feitas no Skype, clips com efeitos sonoros, voicemails, músicas. Isso tudo em vários formatos: WAV, MP3, OGG, AIFF, AU, Flac, MIDI e Poucos autores gravam um podcast de alguns outros. primeira. É necessário editar cuidadoPara importar áudio, selecione Projeto | Im- samente cada arquivo antes de colocá-lo portar Áudio. Para importar MIDI, selecione “no ar”. Sempre podem aparecer impreProjeto | Importar MIDI. Se houver um forma- vistos como latidos de cachorro ou uma to que não seja compatível com o Audacity, campainha tocando, que precisam ser tente Projeto | Importar dados Raw. retirados da gravação. Sempre que possível, o melhor é imHá quatro ferramentas que sempre portar áudio descompactado. Lembre-se são utilizadas no Audacity: os botões de parar e pausar, a ferramenta para Alternar tempo e o efeito Normalizar. Em casos mais graves, foi usado o filtro de remoção de ruídos para eliminar interferências de fundo. Os botões de início e pausa funcionam de maneira bem diferente. Se o botão Parar for pressionado durante a gravação, a faixa será finalizada. Já pressionar o Figura 5: Ative o microfone e seu volume no KMix. botão Executar na seqüên-

Edição

Tutorial

Figura 6: A função Normalizar tem apenas dois controles. cia faz com que o Audacity inicie uma nova faixa. Inversamente, ao pressionar o botão Executar, a faixa não será finalizada, e pressionar o botão Executar fará com que o Audacity retome a gravação no mesmo ponto em que parou. Em geral é mais fácil mover faixas inteiras segurando-a pelo lado esquerdo e arrastando-a para cima e para baixo para o seu novo local. No entanto, se estivermos pressionando o botão Parar seguidas vezes, ficará difícil administrar o número de faixas criadas. É melhor apertar o botão Pausar quando fazemos algo que não vai precisar ser editado depois, assim a gravação continua na mesma faixa. Já se houver alguma coisa errada na gravação (como um toque de campainha) que precise ser editado, deve-se apertar o botão Parar. É mais fácil localizar os erros ao final de cada faixa do que pegá-los no meio delas. A menos que o autor seja perito em prever o tempo da gravação, será preciso fazer mudanças e ajustes de faixas. Com a ferramenta de alterar tempo, podemos mudar as posições das faixas do projeto, simplesmente arrastando e soltando. Ela se encontra entre os botões de ferramentas, à esquerda dos botões principais. O botão de alterar tempo é o que possui um ícone de seta dupla. Pressione-o e, ao mover o cursor para cima da faixa na janela principal do Audacity, ele tomará a forma da seta dupla. Posicione o cursor sobre a faixa a ser mudada e arraste-a. O efeito Normalizar é um dos mais úteis. O Audacity tem uma lista im-

51

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Tutorial

Figura 7: A ferramenta Remover Ruídos já salvou muitos podcasts. pressionante de efeitos (cheque o menu Effect), sendo que as funções de Normalizar e Remover ruídos são geralmente mais usadas. Esses efeitos não são utilizados durante a gravação, mas em uma faixa ou parte dela, somente depois de terem sido gravadas. O efeito Normalizar se concentra na seção selecionada e a lapida de modo que os pontos altos não fiquem tão altos e os baixos não tão baixos. Há apenas duas opções na ferramenta Normalizar: Remover concentração DC (centralizar verticalmente em 0) e Normalizar amplitude máxima a-3 dB) (figura 6). Deixando as duas opções assinaladas você terá um bom efeito. Ao normalizar um projeto, geralmente deve-se normalizar todas as faixas. Como a ferramenta Normalizar afeta somente o áudio selecionado, é preciso selecionar cada faixa individualmente e aplicar a ferramenta. Diferenças de altura da voz geralmente precisam ser normalizadas. Já em músicas não é preciso se preocupar. A última ferramenta entre as mais úteis é a Remover Ruído (figura 7). Fai-

52

Audacity

xas com muitos ruídos não sofrem uma que alguém pensaria em produzir um limpeza total, mas o resultado melhora show em outro formato? Porque o MP3 é sensivelmente. um formato proprietário, pertencente ao Sua aplicação envolve duas etapas. A instituto alemão Thomson & Fraunhofer, primeira é para analisar o perfil do ru- cuja compatibilidade com programas ído a ser removido e a segunda é para envolve taxas. Muitas pessoas não sabem fazer a remoção de fato. O processo é disso, dada a sua larga utilização. O OGG o seguinte: Vorbis é a opção de formato livre para P 1. Selecione alguns segundos de áudio de gravação de podcasts. uma faixa que contenha apenas o padrão No entanto, produzir apenas em fordo ruído de fundo a ser removido. mato OGG seria ingenuidade. SimplesP 2. Selecione Effect | Noise Removal. mente não há suporte suficiente para o P 3. Clique no botão Perceber perfil de formato OGG por parte dos ouvintes e ruído. A janela irá colher uma amostra da indústria dos reprodutores de áudio do ruído e será fechada. digitais. Certamente há alguns tocadores P 4. Selecione novamente o item Effect que lidam com o OGG Vorbis, mas pou| Remover ruído do menu. cos deles conseguem lidar com a bit rate P 5. Clique no botão Preview para ouvir variável dos arquivos OGG Vorbis. Cerca de 25% dos ouvintes do nosso como ficou a faixa sem o ruído. P 6. Se o som não estiver adequado, mexa projeto baixam o podcast em OGG. O no medidor acima do botão Preview restante prefere MP3. Por isso, recomenpara remover mais ou menos ruídos. damos que você produza pelo menos Pressione novamente o botão Preview. uma opção em MP3. Repita o processo até que esteja feliz Devido à licença proprietária do MP3, com a faixa. o Audacity não pode, por padrão, deP 7. Pressione o botão OK e o ruído de codificar esse tipo de arquivo. Para fafundo será removido. zer isso, é preciso procurar o arquivo É importante notar que o sucesso dessa libmp3lame.so e dizer ao Audacity para ferramenta depende muito do tipo de ru- localizá-lo. Caso esse arquivo não esteja ído de fundo. Quanto mais previsível for instalado em sua máquina (ele costuo barulho, maiores serão as chances de ma acompanhar diversos aplicativos a ferramenta removê-lo. Já remover uma que manipulam MP3), copie o arquivo aceleração de carro repentina ou buzina- libmp3lame.so para um local conhecido das que não seguem nenhum padrão é da sua máquina. Use então o menu Arquivo | Preferênuma tarefa bem mais complicada. cias | Formatos de arquivo | aba Find Library, para indicar onde está esse arCom a experiência, vamos descobrindo quivo. Já para o formato Ogg, o Audacity quais são as expectativas sobre um pod- exporta sem nenhuma etapa adicional. cast. Quanto mais essas expectativas foAntes de codificar qualquer coisa, é rem atendidas, mais ouvintes satisfeitos. preciso se certificar de que a codificação Dois detalhes técnicos muito importantes será feita com a melhor configuração. A são o tipo de arquivo e sua qualidade. primeira configuração a ser considerada Mesmo os entusiastas do Software Li- é a freqüência (sample rate). Selecione vre reconhecem que o MP3 é o formato a aba Arquivo | Preferências | Qualidade mais usado. Ele é compatível com todos e veja as opções na lista Taxa padrão os editores e reprodutores digitais. Por de amostragem.

Produto final

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


Audacity

Tutorial

De um jeito inacreditavelmente simO podcast “JaK Attack!” (do autor desples, a freqüência (expressa em Hertz) te artigo) é uma longa fala com uma controla com que periodicidade (por única música no meio. Como a parte segundo) o Audacity codifica um bit de musical do show é de apenas 2 ou 3 áudio. Quanto mais alta a freqüência, minutos, não é vantagem codificar o maior é a qualidade do áudio. Infeliz- arquivo completo como se fosse em podmente, uma freqüência alta significa um cast de músicas. Por isso, normalmente o arquivo grande. show é codificado em 22050Hz e 48Kbps Considerando que os ouvintes irão (para MP3) ou 0Kbps (para OGG). Um baixar o arquivo pela Internet, quanto episódio típico do JaK Attack! tem cerca menor o arquivo, melhor. A configuração de 5 ou 6 MB por 15 minutos. da freqüência vai afetar tanto o arquivo São feitos ainda alguns ajustes, deMP3 quanto OGG. pendendo do conteúdo. Se houver mais A configuração da taxa de bits (bit-rate) músicas, então devemos codificá-lo com também tem grande importância para a uma taxa maior. Para menos músicas, qualidade do arquivo. Ao contrário da uma taxa menor. Experimentação é a freqüência, o Audacity tem configura- chave. Fazer algumas experiências com ções separadas para as taxas de bits de as configurações e arquivos pequenos MP3 e OGG. para se testar a qualidade servirá como Para chegar à área de configuração do referência rápida para a codificação de MP3 e do OGG Vorbis, selecione Arquivo um arquivo maior. Em qualquer caso, uma vez tendo de| Preferências e escolha a aba Formatos de arquivo. As áreas que nos interessam terminado a bit-rate e a freqüência, você são: Configurações de exportação OGG e pode codificar o arquivo selecionando Configurações de exportação em MP3. Arquivo | Exportar como MP3 ou Arquivo A exportação OGG do Audacity con- | Exportar como OGG Vorbis. siste em um único medidor de zero a dez. A configuração da taxa de bits para o formato MP3 consiste em uma lista Etiquetas (tags) de identificação são entre 16 e 320 Kbps. pequenas porções de dados embutiO princípio básico para editar um pod- das no arquivo de áudio. A maioria cast é criar o menor arquivo possível dos reprodutores digitais consegue ler com boa qualidade. Não há uma única e exibir essas informações enquanto combinação de bit-rate e freqüência que o arquivo está sendo reproduzido. O seja suficiente para todos. A configura- Audacity tem incluída uma ferramenta ção certa depende muito do conteúdo. para editar as etiquetas, que no entanUm podcast de voz, por exemplo, to não relaciona o formato podcast, e pode ser codificado adequadamente em portanto não é perfeita. uma freqüência de 22050Hz e 48Kbps de Para colocar uma tag em seu arquivo, bit-rate. Um podcast apenas de música selecione Projeto | Editar Tags ID3 (figura deve ser codificado com um nível mais 8). Note que essas tags serão aplicadas alto, em torno de 96000Hz de freqüência apenas nos arquivos MP3 e não nos e 128kbps de bit rate ou mais. Essas OGG. Será preciso uma ferramenta exconfigurações representam o máximo clusiva para esse fim, como o EasyTag e o mínimo. Encontrar os pontos inter- [3], que, inclusive, etiqueta arquivos mediários depende de você. OGG Vorbis. ➟

Tags

53

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Tutorial

Audacity

Última etapa: RSS

Não vale a pena utilizar a ferramenta de etiquetas do Audacity por dois motivos. Primeiro, ela limita a configuração dos gêneros a uma lista pré-definida, que infelizmente não contém o item “podcast”. Segundo, ela não aplica tags em arquivos OGG. O EasyTag tem um campo de gêneros em que é possível se digitar qualquer texto, além de permitir a edição de tags em arquivos MP3 e OGG. Seja qual for a ferramenta usada, o mínimo de campos que devem ser preenchidos são: P Artista: seu nome real. Assim como nos blogs, as pessoas se relacionam melhor com um nome do que com um apelido ou nome artístico. P Título: o nome do podcast. Essa etiqueta normalmente fica rolando na tela do reprodutor de som enquanto o arquivo toca. Recomenda-se colocar a data da produção logo após o título. P Gênero: escolha “podcast”, se possível. Senão, outro também deve funcionar. Há muitos outros campos de identificação, mas os acima são os três que devem ser obrigatoriamente preenchidos.

54

Sobre o autor

Figura 8: A janela de etiquetas de informação (tags) do EasyTag.

O feed RSS do seu podcast é o elemento <enclosure url=”http://www.U podcastingrocks.com/media/mypodcast_U mágico que qualifica seu arquivo de 20060224_12.mp3” length=”16257377” U áudio como um podcast. Sem um RSS type=”audio/mpeg”> feed formatado de maneira adequada para “anunciar” o arquivo, os ouvintes não conseguirão assinar o podcast. A maioria, senão todos os sites de Isso não necessariamente o deixa de hospedagem de podcast, irá gerar um fora do negócio, já que ainda é possível feed RSS formatado de modo adequado baixar o arquivo manualmente. Mas como parte do serviço. Se você mesmo uma boa parte das pessoas gostam de for hospedar seus podcasts, alguns ouvir e baixar podcasts (automatica- aplicativos de blog, ou certamente o mente) pelos seus clientes de podcast, Feedburner, podem criar elementos como o Amarok. <enclosure>. Provavelmente a melhor Um cliente de podcast (chamado às fonte de informação sobre como RSS e vezes de podcatcher) é um agregador podcasts trabalham juntos é a página RSS capaz de reconhecer o elemento do Wikipédia sobre Podcast [4] ou RSS <enclosure> do RSS 2.0. Ele informa Enclosures [5]. sobre a presença de uma URI de um Após criar, editar, codificar e etiquearquivo binário. Um programa de tar o arquivo de áudio, basta contratar podcast tem a habilidade de checar um serviço para “subir” o arquivo, que os feeds assinados por novos arqui- já vai fornecer um RSS feed formatado vos e baixá-los automaticamente. adequadamente. Feliz podcasting! ■ Os diferentes clientes de podcast têm funções além dessas básicas, mas qualInformações quer um deve ser capaz de cumprir ao menos as funções de checagem e down- [1] Audacity: http://audacity.sourceforge.net load automáticos. Alguns dos progra- [2] Página de ajuda do Audacity: mas mais populares são o Bashpodder, http://easytag.sourceforge.net/ e sua variante para o GNU/Linux, e o [3] EasyTag: http://easytag.sourceforge.net/ iTunes para Windows ou Mac. O Ama[4] Podcast no Wikipédia: rok também possui algumas funções http://pt.wikipedia.org/wiki/Podcast avançadas de podcast. [5] RSS enclosures no Wikipédia: http://en.wikipedia.org/ Para os que não dispensam detawiki/RSS_Enclosures lhes, o elemento <enclosure> é um subelemento do <item> e requer três parâmetros: o protocolo (geralmente, O canadense Jon Watson é um entusiasta HTTP) e URI para o arquivo binário, do GNU/Linux. Quando não está cuia extensão em bytes e o formato do dando de seu podcast “The JaK Attack!” arquivo. Um elemento <enclosure> (http://jon.libsyn.com), pode ser encontípico fica assim: trado escrevendo no blog “b5 Media’s New Linux User” (http://www.newlinuxuser.com), ou no seu blog pessoal, “Ta<enclosure url=”http://www.U les from the Motherboard” (http://www. podcastingrocks.com/media/mypodcast_U jonwatson.ca). Ele mora na montanhosa 20060224_12.ogg” length=”16257377” U Calgary, em Alberta, com sua noiva (a infame Kelly Penguin Girl, co-autora do type=”audio/x-ogg”> Jack Attack) e seus dois cachorros. ou

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


Coluna do Augusto

SysAdmin

Tom

Área de trabalho na web

Den ham – ww c w. sx . hu

Para onde foi meu desktop? A virtualização do desktop tem uma vantagem extra: mais aplicativos compatíveis com ambientes livres.

por Augusto Campos Mais recentemente, comecei a dar mais atenção aos serviços de defi nição de páginas de entrada personalizadas, como o Google Homepage e o Netvibes, e hoje rodo neles bastante coisa que costumava anteriormente estar no meu desktop ou no Palm – até mesmo jogos simples, como o Bejeweled. Este modelo ainda tem muito a amadurecer, e não sei se algum dia vou aceitar armazenar documentos sensíveis em serviços similares aos que já existem hoje. Mas conforme a conectividade aumenta e as licenças livres se adaptam a esse novo modelo de aplicações, vão surgindo cada vez mais aplicações nesse estilo – com a vantagem adicional de que em geral são plenamente compatíveis com ambientes livres. Você deve ter notado que neste mês não incluí uma lista de links para os aplicativos citados. A razão é simples: são todos aplicativos disponíveis diretamente na web, e basta um acesso ao seu site de buscas preferido para encontrar todas elas ;-). ■

Sobre o autor

E

m uma edição dedicada aos aplicati- eletrônico, e eu até ativei um domínio vos e configurações do desktop, achei pessoal no serviço Gmail for Domains, apropriado falar sobre um tema que e está funcionando super bem. vem atraindo minha atenção: a migração Logo em seguida, a minha dependência cada vez maior do meu desktop para den- em relação aos resumos RSS de sites de tro do ambiente do navegador web. tecnologia cresceu, e o fato de eu acessar A nova geração de aplicativos rodan- a Internet a partir de pelo menos 5 compudo em ambientes web ainda tem várias tadores diferentes ao longo da semana me limitações, mas, em compensação, tem fez buscar uma alternativa centralizada. uma série de vantagens que não são co- Experimentei o Google Reader, mas não muns a todos os aplicativos “tradicio- gostei muito da abordagem, aí logo passei nais”: rodar em múltiplas plataformas para o Bloglines, que hoje gerencia todos de forma quase transparente, facilitar a os feeds que eu leio, e é um dos principais colaboração aberta ou em equipes, for- insumos do BR-Linux. mas simplificadas de controle de versões, Dados esses 2 primeiros passos, acabei auxílio à divulgação, e poder ter acesso pegando impulso. Hoje, eventualmente a seus documentos a partir de qualquer registro listas de compromissos e pencomputador conectado à Internet. dências no Google Calendar, onde outros No meu caso particular, o processo co- colegas podem consultar e coordenar seus meçou com o correio eletrônico. Natural- agendamentos comigo, já experimentei mente eu já havia usado webmails antes, – e gostei, embora ainda não o suficiente mas apenas como complemento ao cliente para adotar em definitivo – editores de de email tradicional, ou em situações espe- texto colaborativo online, como o Writely, ciais, como em viagens. Mas foi o advento e ainda aguardo o surgimento de uma do Gmail, anunciado em um primeiro de planilha de cálculo online que me agrade abril (e que eu achei que fosse mentira), – as existentes não atendem aos meus que acabou me dando condição de fazer requisitos. Estou longe de trocar o Openo primeiro grande salto para a web. Office.org pelos seus equivalentes online, Tenho preocupações com privacidade, mas tem valido a pena acompanhar os confidencialidade, e tomo minhas pro- progressos nessa área: novos serviços vidências para dispor de alternativas e como o Gliffy, que permite desenhar backups em relação ao email do Gmail, organogramas e fluxogramas online e mas hoje ele certamente é responsável de forma colaborativa, têm entrado nos por mais de 90% do meu uso de correio meus bookmarks constantemente.

Augusto César Campos é administrador de TI e, desde 1996, mantém o site BR-linux. org, que cobre a cena do Software Livre no Brasil e no mundo.

55

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


SysAdmin

ZENworks 7

Gerente

Análise do gerenciador de sistemas ZENworks 7

novo Administração baseada em políticas de uso e

Henk L. – www.sxc.hu

instalações com imagens são as novidades do

ZENworks Linux Management 7. Conheça o que há de novo nesse consagrado conjunto de aplicativos. por Martin Kuppinger

A

ntes de adquirir o Suse, a Novell já havia ganhado atenção no verão de 2003 ao assumir as rédeas da Ximian. A empresa, então, integrou o Red Carpet (software de gerenciamento de sistemas da Ximian) à família ZENworks e criou o ZENworks Linux Management, também conhecido como ZLM. A Novell continuou a desenvolver sobre a base do Ximian, lançando as versões 6.5 e 6.6, mas a herança Red Carpet ainda era claramente visível. O ZLM mostrou poucos sinais de progresso até a recente aparição da versão 7 (figura 1). Ela revela uma crescente evidência da influência da Novell, incluindo uma nova interface de administração, mudanças de arquitetura e a inclusão de muitas outras funções. A Novell originalmente planejava introduzir uma interface comum e uma arquitetura unificada para o conjunto completo de subcomponentes do ZENworks – Server Management, Desktop Management para Windows e Asset Management – com a versão 7. Assim que ela saiu, o ZLM 7 era o único componente que havia ficado pronto no prazo. Os outros produtos ZENworks 7 trazem algumas novas funções, mas ainda usam o programa – um tanto antiquado – Java ConsoleOne para administração e não

56

usam um servidor de banco de dados externo como repositório de dados. Como o ZLM 7 é o primeiro produto ZENworks com o novo visual (que um dia vai pertencer à toda família), ele dá algumas dicas sobre a direção que essa linha de produtos está tomando.

Cobertura total O Novell ZENworks é uma solução de gerenciamento que cobre todo o ciclo de vida dos sistemas, desde a implementação inicial até a “aposentadoria”. Para conseguir cobrir o histórico completo, o produto conta não apenas com funções de distribuição de software e gerenciamento de patches, mas também vem com um conjunto de ferramentas para imple-

mentação de SOs e atualizações, assim como um método de gerenciamento de instalações pré-configuradas, inventário e controle remoto. Todas essas funções possuem gerenciamento centralizado. O design foca nas políticas de uso. Usuários de outros produtos ZENworks já devem estar familiarizados com esses métodos. Políticas são usadas para controlar configurações do sistema e restringir a visibilidade de funções e o acesso a elas. Ao mesmo tempo, o ZENworks tem um conjunto completo de ferramentas de documentação que registram eventos e geram relatórios pré-definidos ou customizados, baseados em eventos, itens de inventário e outros tipos de dados.

Figura 1: O ZLM 7 permite o gerenciamento de uma série de componentes e serviços.

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


ZENworks 7

SysAdmin

Árvore hierárquica O ZLM usa uma estrutura de árvore hierárquica para dividir a seção da rede escolhida para ser gerenciada. O nível mais alto é uma área de gerenciamento. Uma rede pode conter múltiplas zonas de gerenciamento com um único servidor, ou múltiplos servidores, responsáveis por cada zona. Isso faz sentido já que o gerenciamento de imagens, por exemplo, gera uma grande carga. O administrador precisa registrar os dispositivos em uma área de gerenciamento para criar metainformações em um banco de dados central. Em comparação a outras versões do ZENworks – que usam o eDirectory como repositório –, aqui é usado um sistema de banco de dados externo. Isso traz duas questões: uma delas é que usuários administradores precisam de tratamento especial, o que dificilmente pode ser considerado um método dos mais avançados. Alguém deve ter esperado algo mais criativo de uma empresa como a Novell, que coloca tanta ênfase na integração de credenciais. O problema mais grave é que o ZENworks nem ao menos permite criar grupos de administradores com privilégios administrativos uniformes. Outra questão é que o método do ZLM significa que ele reconhece estações de trabalho, mas não os usuários dessas estações. Isso impossibilita lidarmos com cenários onde múltiplos usuários dividem uma mesma máquina.

Figura 2: Todo o gerenciamento do ZLM 7 é baseado em políticas de usuários.

Dentro das zonas de gerenciamento, o administrador define conjuntos e políticas, que podem ser delegados a grupos; e pastas, que herdam os atributos. Como a herança é um processo hierárquico por natureza, exceções para membros de grupos individuais são permitidas nos níveis mais baixos. Esse design permite uma administração eficiente mesmo em ambientes de larga escala.

Políticas A mudança mais importante no ZLM 7 é a introdução do gerenciamento baseado em políticas. Políticas definem quais usuários têm permissão de executar quais ações. Por exemplo, há uma política geral Gno-

Gerenciamento de desktops

O ZENworks 7 Linux Desktop Management é mais um produto do conjunto ZENworks 7. O Linux Desktop Management é uma variante do ZENworks 7 Desktop Management (ZDM), ou seja, da ferramenta para clientes Windows. Diferente do ZDM, o Linux Desktop Management roda apenas em servidores Linux. Um servidor Windows ou Netware não é mais necessário. Isso o torna uma opção interessante para empresas que decidem manter o Windows no desktop, mas migrar para um ambiente Linux nos servidores. Não há diferenças funcionais entre esse produto e o clássico ZDM, mas ainda será preciso um ConsoleOne para tarefas administrativas, o que significa que um cliente Windows ainda é necessário. Isso vai mudar quando a próxima versão principal do ZENworks estiver disponível, e quando a nova interface de administração (atualmente restrita ao ZLM) estiver liberada para os outros produtos.

me, uma política Epiphany, uma política Evolution e uma política Firefox. Essas políticas são apenas o primeiro passo comparado com as políticas do ZENworks 7 Desktop Management (ZDM), o produto ZENworks para Windows. Embora as políticas ZENworks suportem modificações para o desktop e permitam que se restrinja o acesso ao sistema de arquivos local, ele ainda não atingiu um controle realmente granular e abrangente para o desktop.

Imagens A segunda grande mudança é a manipulação de imagens integrada ou, mais especificamente, o Preboot Services para a implementação de sistemas operacionais. Essa função permite aos administradores automatizar a instalação de sistemas operacionais. Imagens ou arquivos fontes fornecem o material básico. O suporte ZENworks para a instalação do Suse e Red Hat via AutoYAST ou KickStart está disponível. O ZENworks possui um método multicast para a instalação de sistemas, função útil para reinstalações regulares em computadores de uma sala de aula, por exemplo. ➟

57

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


SysAdmin

ZENworks 7

Figura 3: O ZLM 7 mantém um inventário abrangente do hardware e software no sistema. O método de instalação preferido vai depender de quanto a instalação padrão deve ser modificada para atingir as próprias necessidades. Como o ZLM 7 suporta nada menos que cinco diferentes métodos, não haverá problemas para encontrar o método mais correto para o Suse ou Red Hat.

Considerando que um conjunto de pacotes contém itens obrigatórios para instalação, os usuários podem escolher itens de catálogos pré-configurados. A propósito, a função suporta apenas pacotes RPM. A distribuição de software e o gerenciamento de patches no ZLM estão firmes como uma rocha, como sempre.

Inventários

Administração

Inventários também são uma novidade. Isso permite que administradores obtenham um conjunto completo de dados do hardware e software gerenciados e examinem os dados para gerar relatórios (figura 3). É possível que administradores descubram quais pacotes foram instalados em determinado sistema, além de descobrir quaisquer modificações de configuração em instalações-padrão pré-configuradas, para poder atualizar esses perfis. A distribuição de software continua sendo a função principal no ZLM. A versão 7 não oferece maiores alterações nessa área. A checagem automática de dependências está agora integrada. Junto com os conjuntos de pacotes mencionados anteriormente, os administradores agora podem usar catálogos.

Uma interface web está disponível para o ZLM 7, assim como ferramentas de linha de comando. A interface é bastante confiável, simples de usar e fácil de aprender. No entanto, ainda faltam algumas funcionalidades para ambientes com um grande número de sistemas. A grande coleção de aplicativos de linha de comando está começando a se tornar popular entre os administradores de grandes redes e, se você é um deles, a linha de comando é provavelmente a melhor opção de administração com o ZLM 7.

58

Deficiências Embora o ZLM 7 seja um produto convincente como um todo, ainda deixa a desejar em alguns pontos. Apesar de podermos configurar clientes para bai-

xar atualizações via YOU ou RHN, uma simples interface para possibilitar a importação automática de conjuntos de pacotes ainda não existe. Ferramentas de workflow, que permitiriam ao administrador configurar um processo para testar e liberar patches, também estão faltando. Essa é uma deficiência geral da família ZENworks, mas que começa a ficar difícil de se aceitar. Também é uma pena que o ZLM ainda esteja completamentamente isolado da sua contraparte Windows, o ZDM 7. Administradores de ambientes que utilizam Linux e Windows no desktop precisam aprender duas interfaces de gerenciamento e trabalhar com duas infraestruturas diferentes. É claro que a integração não seria algo trivial de se atingir, mas reduziria o trabalho consideravelmente em ambientes heterogêneos. O suporte a plataformas também é estranho. O ZLM 7 não roda no Novell OES para Linux (!!), sendo restrito ao SLES 9.x. Além do mais, o Konqueror, navegador padrão do Suse, não é oficialmente suportado, o que causa popups de aviso quando a ferramenta de gerenciamento é executada. Outra deficiência é a falta de integração com o eDirectory.

Conclusão O ZLM amadureceu consideravelmente na versão 7. As novas funções representam uma melhora significativa no que diz respeito ao eficiente e distribuído gerenciamento de desktops Linux. Mas, se compararmos o ZLM 7 com o ZDM 7, o produto da Novell para gerenciamento de desktops Windows, veremos que ainda há muito o que aperfeiçoar. As melhorias incluiriam configuração de desktops Linux dependente do usuário, assim como políticas mais abrangentes para os sistemas escolhidos. No entanto, no geral, a Novell está definitivamente caminhando na direção certa. ■

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


http://supertuxbr.blogspot.com


SysAdmin

Op

Root fácil Op: alternativa ao sudo

O versátil Op é uma

ferramenta poderosa que facilita o gerenciamento de privilégios de usuários. por Hans-Georg Esser

C

omo o Linux é um sistema multiusuário e os privilégios de contas root são bem protegidos, em muitos ambientes, a administração de direitos pode não ser nada trivial. Em algumas distribuições, privilégios de usuário normal são insuficientes para a montagem de CDs, chaveiros USB ou até mesmo para o acesso à Internet. O Op é uma alternativa simples e poderosa, que pode ajudar bastante nesse cenário. Se o usuário principal é também o administrador, o que é bastante comum em PCs particulares, digitamos su e entramos com a senha de root para assumir os direitos solicitados. Já sabemos o que vem a seguir: uma vez que ganhamos esses privilégios, todos os comandos subseqüentes terão poder de root, como se estivéssemos trabalhando em uma conta root: erros de digitação podem ter um efeito devastador.

60

A solução é o usuário assumir apenas um conjunto restrito de privilégios, especificados pelo administrador. Por exemplo, um usuário pode ter permissão para montar um chaveiro USB ou configurar a impressora, sem acesso a outros níveis. A antiga ferramenta sudo é a maneira tradicional de se conceder privilégios administrativos a um usuário sem lhe fornecer a senha de root. Mas, a alternativa Op facilita esse processo tanto para o administrador quanto para o usuário.

O legado sudo O comando sudo fornece um método antigo para o problema de se deixar que usuários normais operem um conjunto de comandos de nível root, especificados pelo administrador. Algumas distribuições Linux (por exemplo, Ubuntu e Knoppix) usam o sudo para fazer do usuário normal um administrador,

adicionando uma entrada na forma de usuario ALL = (root) ALL ao arquivo

de configuração /etc/sudoers. Nesse caso, qualquer usuário pode ter seus “15 minutos de root” digitando sudo na frente do comando. Por exemplo, o comando sudo killall -9 command mata todos os processos chamados command. Ao entrar com um comando desses, o sudo pede a senha de usuário antes de carregar comandos com privilégios de root. Se preferir um método mais granular para especificar quem tem permissão de executar quais comandos, o sudo também ajuda. Imagine que você deseje atribuir a um usuário chamado abc o direito de executar o comando tail -f /var/log/ messages; adicione apenas a seguinte linha ao arquivo /etc/sudoers: abc ALL=(root) /usr/bin/tail -f U /var/log/messages

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


Op

SysAdmin

Obviamente, o usuário deverá teclar o comando exatamente assim, embora o sudo não reclame se houver alguns espaços em branco a mais. Mas se fosse omitido o parâmetro -f ou a ordem fosse alterada, você veria a seguinte mensagem de erro: [abc@kira ~]$ sudo /usr/bin/tail U /var/log/messages -f Sorry, user abc is not allowed to U execute '/usr/bin/tail /var/log/U messages -f' as root on kira

Figura 1: O site do sudo traz informações detalhadas sobre a configuração. Com a sintaxe apropriada, não há reclamações: [abc@kira ~]$ sudo /usr/bin/tail -f U /var/log/messages Mar 31 14:13:39 kira -- MARK -Mar 31 14:33:39 kira -- MARK -[...]

Usuários com privilégios sudo devem se lembrar da sintaxe precisa de qualquer comando que estejam autorizados a executar – ou então eles podem digitar sudo -l para checar as opções: abc@kira ~]$ sudo -l User abc may run the

O Op é o pouco conhecido substituto do sudo, com o benefício extra de uma configuração mais simples e um método mais intuitivo de executar comandos. Uma única linha é tudo que se precisa para comandos simples. A sintaxe geral de uma entrada no arquivo de configuração Op é a seguinte: atalho_para_comando comando; opções

Por exemplo, se você quiser permitir que o usuário abc desligue a máquina executando o comando halt, o truque seria a seguinte linha:

following commands on this host:

halt /sbin/halt; users=abc

(root) /usr/bin/tail -f U /var/log/messages

Cada chamada sudo incorreta gera uma entrada de log. Em algumas máquinas, o sudo irá inclusive informar o administrador.

Listagem 2: Iniciando e interrompendo o Apache

Alternativa Op

Se preferir que o usuário digite sua própria senha para autorizar o comando (seguindo o método sudo tradicional), adicione apenas a opção password à linha: halt /sbin/halt; users=abc password

Listagem 1: Iniciando no Op 01 messages /bin/cat /var/log/messages; users=abc 02 syslog /bin/cat /var/log/syslog; users=abc

Isso permite configurar o Op para tarefas críticas em questão de minutos. Note que é preciso es-

01 log

/bin/sh -c '

02

export TERM=xterm

03

case $1 in

04

messages) less /var/log/U messages ;;

05

syslog)

less /var/log/U

syslog ;; 06

*) echo "op: You are not U allowed to read the logfile \'$1\'U " ;;

07

esac

08

';

09

users=abc

10

help="View logfiles (messages U and syslog only)"

11 12 apache /bin/sh -c ' 13

case $1 in

14

start|stop) /etc/init.d/U apache $1 ;;

15

*) echo "op: apache only U understands start and stop" ;;

16

esac

17

';

18

users=abc

19

help="Start and stop the Apache U server"

61

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


SysAdmin

Op

pecificar o caminho completo para os comandos em questão (/sbin/halt ao invés de somente halt). O usuário abc pode depois digitar op halt no shell para desligar o computador.

Suse 9.3. Em um Debian Sarge, tivemos que executar apt-get install flex antes de executar o make.

Compilação

Exemplos

Listagem 3: Op com variáveis 01 test /usr/bin/env; 02 users=abc 03 $LANG $TERM $SHELL $PATH

syslog. Scripts podem analisar e avaliar

Digite mkdir -p /etc/op.d para criar um diretório de configuração para o Op. Depois, crie um arquivo /etc/op.d/log. conf de exemplo, como o mostrado na ./configure --prefix=/usr --sysconfdirU listagem 1. Digite chmod 600 /etc/op.d/ =/etc log.conf para modificar os privilégios. make Acessos de leitura e escrita a esse arquimake install vo devem ser restritos ao usuário root. Se você esquecer de executar chmod, o Sem a opção --prefix, o programa irá programa não vai funcionar e ainda vai se instalar abaixo de /usr/local/; e se mostrar uma mensagem de erro estraa opção --sysconfdir ficar de fora, ele nha, dizendo que não pôde encontrar o irá procurar os arquivos de configuração arquivo de configuração. em $PREFIX/etc/. As duas linhas da listagem 1 criam dois Não tivemos problemas para insta- novos atalhos de comando, messages lar a atual versão do Op (1.32) em uma e syslog, permitindo ao usuário abc máquina com uma distribuição antiga: acessar os dois arquivos de log ao executar os comandos op messages e op syslog. A configuração especifica o caminho completo do cat, /bin/cat, já que o Op não vai conseguir encontrar o utilitário se você não fornecer o caminho completo.

A compilação do Op usa os procedimentos normais, mas não esqueça de ajustar essas duas opções do configure:

Figura 2: A página do Op fornece extensos exemplos de configuração.

62

argumentos. Como scripts normais, eles usam as variáveis de ambiente ($1, $2, etc) para fazer isso. A variável $TERM é definida para que o comando less funcione. O segundo atalho de comando da listagem 2, apache, permite a um usuário iniciar e interromper o serviço Apache. Armazene os arquivos de configuração em /etc/op.d/ (novamente, o acesso de leitura deve ser restrito somente para o usuário root). É possível guardar todas as definições em um único arquivo. A opção -l do Op mostra os atalhos de comando que podem ser executados pelo usuário atual. No exemplo abaixo, o script apanha erros de entrada e diz aos usuários que eles podem apenas visualizar os arquivos de log messages e syslog: abc@amd64:~> op -l apache Start and stop Apache log

View logfiles (messages U

and syslog) abc@amd64:~> op log security op: You are not allowed to view the U

Scripts Op

'security' logfile

Uma das funções mais úteis do Op é a capacidade de usar scripts shell diretamente no arquivo de configuração. A listagem 2 mostra um exemplo que cria um atalho de comando chamado log. Ele permite a usuários autorizados lerem os arquivos /var/log/ messages e /var/log/

Os scripts Op são uma vantagem que o Op tem sobre o sudo: para chegar aos mesmos resultados com a ferramenta antiga, seria preciso escrever um script, armazená-lo no sistema de arquivos (por exemplo, em /usr/local/bin) e, depois, permitir aos usuários chamar o script em /etc/sudoers. Em caso de alterações, seria preciso modificar tanto o script quanto o arquivo de configuração sudo.

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


Op

Usuários externos

Mais funções

É fácil verificar que o Op só deixa os usuários especificados em users= executarem comandos privilegiados. Faça isso tentando executar o comando como nobody:

O Op pode gerenciar várias máquinas (com referência aos nomes das máquinas), permitindo a administradores configurar o comportamento de diversos computadores em um arquivo de configuração Op central. Ele usa um método particularmente flexível de passar variáveis de ambiente a programas inseridos com privilégios de root. Se você não especificar nenhum outro parâmetro, o Op apaga todas as variáveis de ambiente antes de executar um comando. A opção environment evita que isso aconteça e passa adiante todas as variáveis. Como alternativa, é possível especificar manualmente um conjunto de variáveis que se deseja manter adicionando seus nomes de entrada na forma $Nome (com um símbolo de cifrão à frente). A listagem 3 exemplifica como usar variáveis. O comando de atalho test simplesmente chama o programa env, que gera uma lista de variáveis de ambiente.

amd64:# su - nobody nobody@amd64:~> op -l nobody@amd64:~> op log messages log: permission denied by op

A lista de comandos Op permitidos para nobody está vazia, e a ferramenta emite um aviso quando o usuário nobody tenta ver os arquivos de log, gerando uma entrada no arquivo de log /var/log/auth/.log ou /var/ log/messages:

Feb 8 14:56:52 amd64 op[4716]: U nobody log messages: Both user, group U and netgroup authentication failed

Grupos de usuários Assim como o sudo, o Op pode agrupar múltiplos usuários, e depois conceder ou revogar privilégios de grupo. Vamos imaginar que você tem uma árvore de usuários, abc, def e ghi, aos quais deseja atribuir várias tarefas de sistema. Você pode adicionar esses usuários a um grupo ADMINS com uma entrada como a seguinte:

SysAdmin

Conclusão O Op é uma ferramenta poderosa, com funções similares às do sudo, mas de configuração mais simples e comandos mais intuitivos que facilitam a vida do administrador e do usuário – mesmo no caso de eles serem a mesma pessoa. ■

Informações [1] Página do Op: http://swapoff.org/wiki/op

Para todos os comandos que esses usuários podem executar, apenas especifique users=ADMINS. Se for preciso adicionar um quarto administrador jkl ao grupo, ou definir um novo comando, mais tarde, para o grupo, basta alterar uma linha no arquivo de configuração.

[2] Página do Sudo: http://www.sudo.ws/sudo/

Sobre o autor

ADMINS=(abc|def|ghi)

Hans-Georg Esser é autor de livros para usuários de Linux iniciantes e avançados, publicados na Alemanha. Atualmente, é editor da revista EasyLinux alemã.

63

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


SysAdmin

Anubis

Proteção egípcia Criptografia de emails com Anubis

O daemon de gerenciamento de emails Anubis permite a centralização da criptografia para emails. por Daniel S. Haischt

E

specialistas reconhecem o perigo de se enviar planos, dados pessoais, acordos confidenciais em texto puro pela Internet. Já os usuários raramente prestam atenção nesses alertas. Dificilmente, alguém passa a usar ferramentas como o PGP, GnuPG [1] e S/Mime espontaneamente, por precaução. Assim, CTOs (Chief Technology Officers) têm duas opções: ou lamentam seu destino ou tomam atitudes proativas. Por exemplo, a implantação de um servidor PGP para o gerenciamento das chaves de assinatura digital dos usuários e para criptografar e descriptografar mensagens. Esses serviços acabam com a necessidade

64

MUA 1

MTA 1

(Mutt)

(Exim)

MUA 2

MTA 2

(Mozilla)

(Postfix)

Caixa de Entrada

Figura 1: Em uma infraestrutura tradicional de email, cada cliente (MUA - Mail User Agent) passa mensagens ao servidor SMTP (MTA - Mail Transfer Agent), que cuida da entrega.

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


SysAdmin

Anubis

de longas e complicadas configurações PGP nos clientes de email de cada estação. Administradores Linux têm à disposição programas de criptografia livres como o GPG-Relay [2] ou o Kuvert [3], e há diversos aplicativos comerciais (como os listados em [4] e [5]), alguns disponíveis também para Windows®. Para quem prefere evitar a dependência de aplicativos isolados, a melhor opção é o universal GNU Anubis [6]. Esse aplicativo, batizado com o nome de um deus egípcio ancestral, é um daemon para pré-processamento SMTP. Ele recebe mensagens de um Mail User Agent, ou cliente de email (representado na figura 2), como o Mutt, modifica as mensagens antes de passá-las a um Mail Transfer Agent (como o servidor Postfix, representado na figura 2). O Anubis pode processar mensagens de diversas maneiras, mas nesse caso, um dos truques mais úteis é a habilidade de criptografar as mensagens com o GnuPG.

MUA 1

GNU

MTA 1

(Mutt)

Anubis

(Postfix)

Caixa de Entrada

Figura 2: O GNU Anubis fica entre o MUA e o MTA. Do ponto de vista do cliente, o Anubis é o servidor de email. Nessa posição, o Anubis pode manipular as mensagens do tráfego.

O Anubis é uma ferramenta madura, de código aberto, que permite a administradores configurar uma infraestrutura PGP centralizada. Já a descriptografia automática de emails que chegam ou o uso de um

Tabela 1: Abreviações deste artigo GPG

GNU Privacy Guard.

Guile

GNU’s Ubiquitous Intelligent Language for Extensions (interpretador da linguagem Scheme, derivada do Lisp).

Mime

Multipurpose Internet Mail Extensions (formato padrão de emails).

MTA

Mail Transfer Agent (servidor de email).

MUA

Mail User Agent (cliente de email).

NLS

Native Language Support.

PAM

Pluggable Authentication Modules (mecanismo para integrar mecanismos de autenticação).

PGP

Pretty Good Privacy (programa para criptografia e autenticação).

SASL

Simple Authentication and Security Layer (framework de autenticação e segurança de dados).

S/ Mime

Secure Mime (padrão para assinatura digital e criptografia).

SMTP

Simple Mail Transfer Protocol.

SSL

Secure Sockets Layer (protocolo para comunicação segura).

TLS

Transport Layer Security (protocolo para comunicação segura).

padrão PGP/Mime para processar arquivos anexos requer programas externos como o GPG-Relay ou o Kuvert, mas o Anubis é a escolha perfeita para criptografar e assinar emails que saem. ➟

Quadro 1: Truques SMTP Alguns programas de email, como o Mutt, chamam diretamente o binário do sendmail para enviar mensagens. Nesse caso, é impossível mudar o host SMTP e a porta na configuração do cliente, já que o comportamente do sendmail só pode ser configurado pelo administrador. Além disso, alguns clientes de email não são compatíveis com o mecanismo SMTP-AUTH. Programas como o MSMTP [9] ou o ESMTP [10] podem ajudar, agindo como proxies de email. Usuários podem configurar essas ferramentas de linha de comando individualmente, no arquivo de configuração ~/. esmtprc, no caso do ESMTP: hostname username password starttls

= = = =

anubis.abyssworld.de:24 "haischt" "access4anubis" disabled

Nesse exemplo, o serviço envia uma mensagem ao servidor Anubis (anubis.abyssworld.de, porta 24) e autentica com as credenciais do usuário. A criptografia STARTTLS está desativada. O Mutt precisa saber se ele deve chamar o ESMTP em vez do executável do sendmail: set sendmail="/usr/local/bin/esmtp"

Essa linha no arquivo de configuração do Mutt diz ao cliente de email qual serviço usar.

65

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


SysAdmin

Anubis

Listagem 1: Modo Pixie MUA 1

GNU

MTA 1

(Mutt)

Anubis

(Postfix)

01 #> Reading system configuration file /usr/local/ etc/anubis/anubisrc... 02 #> UID:0 (root), GID:0, EUID:0, EGID:0 03 #> GNU Anubis bound to 192.168.1.6:24

?

04 #> [68239] GNU Anubis is running...

Ident-

Caixa de entrada

Daemon

05 #> [68239] Connection from 192.168.120.239:1310 06 #> [68244] IDENT: connected to 192.168.120.239:113

07 #SERVER >>> 1310, 24 : USERID : UNIX : haischt(36)

Figura 3: Em modo Pixie, o Anubis primeiro pergunta ao daemon Ident na estação de trabalho do remetente para identificar o usuário que abriu a conexão, antes de aceitar e processar a mensagem.

remote user to haischt. 09 #> [68244] UID:65534 (nobody), GID:65534, EUID:65534,

SMTP Relay Uma técnica mais comum para criptografar ou assinar mensagens é cada cliente usar um plugin PGP como o Enigmail [11]. Já uma ferramenta como o Anubis oferece um caminho alternativo: processamento centralizado, que é mais fácil de administrar no caso de uma grande base de usuários. O cliente não mais envia email diretamente para o provedor de email, mas para o Anubis, que age como um proxy, remodelando o conteúdo, assinando/criptografando a mensagem e, finalmente enviando a mensagem para o provedor. O programa pode rodar em um servidor separado ou na mesma máquina do cliente de email ou MTA. Usuários apenas precisam configurar o Anubis como o servidor de email em seus clientes (leia o quadro 1: “Truques SMTP”).

Instalação Graças ao autoconf, o Anubis é realmente fácil de configurar e instalar. Mas certifique-se antes de qual banco de dados será usado para conter os

66

08 #> [68244] IDENT: resolved

dados dos usuários. No modo Pixie, também é possível autenticar usuários através de um daemon Ident rodando na estação do cliente de email. Essa opção, não requer um banco de dados relacional. Também é possível escolher uma configuração mais tarde e já ir compilando os módulos necessários: P Regex (para expressões regulares). P GSASL (autenticação de usuário). P O módulo para autenticação via daemon Ident está sempre incluído. P Guile (para scripts) P OpenSSL ou GnuTLS (para SSL) P GPG (GNU Privacy Guard) e GPGme P MySQL (banco de dados) P PostgreSQL (banco de dados) P GDBM e text file (essas opções aos bancos de dados estão sempre incluídas) Outros componentes são mais opcionais e só fazem sentido em cenários específicos: P PAM (autenticação) P Libwrap (wrapper TCP) P SOCKS (para SOCKS) P NLS (internacionalização) P PCRE (Regex com sintaxe Perl)

EGID:65534 10 #> [68244] Getting remote host information... 11 #> [68244] Connected to 192.168.1.6:25 12 #> [68244] Transferring message(s)... 13 #SERVER >>> 220 smtp. abyssworld.de ESMTP Postfix (2.2.3)(46) 14 #CLIENT <<< 220 smtp. abyssworld.de (GNU Anubis v4.0) ESMTP Postfix (2.2.3)(64)

Infelizmente, o Anubis não é compatível com o serviço de diretório LDAP. Esse seria um recurso útil, já que tanto os dados de usuários quanto chaves PGP estão freqüentemente disponíveis através do OpenLDAP ou um servidor Active Directory. Por muito tempo, o Anubis usou apenas bancos de dados baseados em texto ou GDBM. A compatibilidade com bancos de dados relacionais é bastante nova. Então, vamos esperar que o LDAP venha logo depois. Verifique o arquivo config.log após completar o ./configure para ver se

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


SysAdmin

Anubis

Listagem 2: Configuração Dixie 01 02 03 04 05 06 07 08

#–BEGIN CONTROL– ## ... #mode auth ## ... #–END– # #–BEGIN AUTH– #smtp-greeting-message ESMTP Anubis (4.0.0) 09 #smtp-help-message help message 10 ### Simple text database: 11 ## sasl-password-db file:/usr/ local/etc/anubisdb.txt

os módulos foram configurados corretamente. Após a instalação, digite anubis-show-config-options para ver se os módulos requeridos estão realmente disponíveis. O Anubis espera encontrar seus dados de configuração em /etc/anubisrc. Esse caminho faz parte do programa, sendo indicado em src/header.h, mas é possível mudar esse local “on the fly” com a opção --altrc nomedoarquivo. O make install não vai criar um arquivo de configuração. Contudo, há um modelo em examples/2anubisrc, no pacote do código-fonte.

12 ### Relational MySQL Database

controle do arquivo de configuração global. Nessa configuração, um daemon Ident (protocolo AUTH) roda na estação do usuário. O Anubis requer que o usuário se autentique antes de gerenciar os emails (figura 3). Contudo, essa técnica apenas faz sentido em um cenário bastante específico. O servidor precisa confiar no daemon Ident, e esse tipo de verificação de segurança no cliente só funciona se a estação é usada por administradores responsáveis que conhecem seus usuários (como ter certeza que ninguém vai alterar as configurações de rede?)... O melhor é evitar esse modo de operação.

13 #sasl-password-db mysql:// mail:access4anubis@mysql. abyssworld.de/ mail;table=anubis_user 14 #sasl-allowed-mech NTLM GSSAPI DIGEST-MD5 CRAM-MD5 15 #–END– 16 # 17 #–BEGIN TRANSLATION– 18 ##translate [USER@]ADDRESS into USERNAME 19 #translate me@daniel.stefan. haischt.name into haischt 20 #–END–

para fornecer saída detalhada (-v), criar saída de depuração (-D), e rodar em primeiro plano (-f), em vez de omitir os canais de entrada e saída no modo normal do daemon.

Prático, mas inseguro Ao contrário do que o nome do protocolo AUTH sugere, o Identd não faz autenticação. É um daemon projetado para monitorar ataques: o administrador do sistema atacado pode usar o Ident para verificar a identidade dos usuários de uma máquina fonte em

Autenticação Pixie O Anubis possui diversas maneiras de autenticar usuários. O modo Pixie é um dos mais simples. Ele é ativado pela entrada mode transparent no bloco do

MUA 1

GNU

MTA 1

(Mutt)

Anubis

(Postfix)

Configuração pessoal Adicionalmente, usuários que precisam da possibilidade de enviar email através do daemon Anubis podem criar um arquivo ~/.anubisrc em seu diretório home. O arquivo examples/1anubisrc, no pacote-fonte, contém um exemplo desse arquivo. Para testes iniciais, o daemon Anubis também tem um modo de depuração: anubis --altrc /usr/local/etc/anubis/U anubisrc --mode=transparent -v -D -f

Isso diz ao Anubis para rodar em modo transparente sem autenticação,

?

RDBMS

Caixa de entrada

Figura 4: No modo Dixie, considerado a melhor maneira de se realizar esse processo, o servidor Anubis usa o método SMTP-AUTH para providenciar autenticação de usuário segura. Para que esse procedimento funcione, o servidor precisa armazenar as credenciais de todos os usuários de email em um banco de dados.

67

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


SysAdmin

uma conexão TCP. Com base nesses dados, o administrador pode, então, contatar o administrador dessa máquina fonte. Muitas implementações Ident simplesmente usam um ID padrão ([7] e [8]). A listagem 1 mostra uma sessão Anubis em modo Pixie. As linhas 6 (tentativa de autenticação Ident) e 8, em que o usuário de email é mapeado à conta Unix local do usuário haischt, é que nos interessam. Depois da fase de autenticação, o daemon GNU Anubis passa a mensagem para o servidor (linhas 11 a 14). Clientes Windows XP com freqüência têm um firewall integrado que pode causar problemas durante a fase de testes. Na configuração padrão, o firewall restringe (justificadamente) todas as requisições Ident à porta 113. Isso precisa ser alterado (desbloqueando essa porta ou desativando o firewall). Além disso, o programa de email não pode usar nomes de usuário SMTP-AUTH em modo Pixie.

Anubis

Tabela 2: Campos do banco de dados Dixie Campo

Significado

Authid

Corresponde ao nome configurado pelo usuário nas preferências do cliente de email. Requerido para autenticação SMTP.

Passwd

O usuário também configura uma senha no cliente de email, requerida para autenticação por SMTP.

Account

Corresponde à conta Unix. Esse campo mapeia os nomes dos usuários de email às contas Unix, para encontrar um arquivo de configuração do Anubis no diretório home do usuário, por exemplo.

Config

Esse campo tem o caminho (absoluto ou relativo) para o arquivo de configuração Anubis desse usuário. Caminhos relativos começam com o diretório home do usuário.

Alternativa melhor O modo Dixie (figura 4) é novo e melhor que o Pixie. Ele se baseia no padrão SMTP-AUTH. O Anubis lê o nome do usuário, senha e outras credenciais de um banco de dados (um simples arquivo de texto ou um banco de dados relacional). A opção de arquivo de texto inclui o ID de usuário (SMTP-AUTH-ID), a senha e, opcionalmente, a conta Unix e o caminho para a configuração específica do usuário (tabela 2).

O arquivo de texto tem uma linha para cada usuário; e os campos são separados por espaços. Segundo a documentação oficial, os campos deveriam ser separados por dois-pontos (“:”), mas essa sintaxe não funciona nem no Anubis 4.0. O opção de texto funciona bem para testes ou para ambientes pequenos. Já para gerenciar um número maior de usuários, é preferível um banco de dados. A figura 5a mostra um esquema apropriado de tabelas para esse banco. O campo authid é definido como chave primária e todos os campos são do tipo texto. Como mostra a figura 5b, o conteúdo da tabela reflete o arquivo de texto. O seguinte comando importa um arquivo de texto para um banco de dados MySQL: anubisadm --create 'mysql://mail:U access4anubis@mysql.abyssworld.de/U mail;table=anubis_test' < /usr/local/U etc/anubis/anubisdb.txt

Figura 5a: O PHP MyAdmin mostra uma estrutura de tabela MySQL usada como um repositório de dados Dixie para o Anubis. Todos os quatro campos são do tipo texto: user ID, password, Unix name e o caminho do arquivo de configuração.

68

O comando especifica uma tabela alvo em um parâmetro do tipo URL – a notação é confusa, já que os parâmetros não estão separados por “&”, como em um endereço HTTP, mas por ponto-e-vírgula (“;”). A URL e os parâmetros precisam estar entre aspas simples (“ ' ”) para evitar que o shell se confunda.

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


Anubis

SysAdmin

Quadro 2: Formatos de expressões regulares O Anubis entende algumas variantes de expressões regulares. A configuração usa as seguintes tags para identificar expressões regulares: P :regex ou :re - Expressão regular simples (Default Posix Extended). P :basic - Muda para Posix Basic. P :extended - Muda para Posix Extended (padrão) P :perl ou :perlre - Expressões regulares compatíveis com Perl (somente se o suporte PCRE estiver embutido no Anubis). P :exact ou :ex - Sem expressões regulares. O padrão precisa casar perfeitamente. P :scase - Sensível a maiúsculas. P :icase - Insensível a maiúsculas.

Uma declaração pode conter uma seqüência de tags. Por exemplo, :perl:scase significa “sensível a maiúsculas, com expressões PCRE”. A declaração regex :perl :scase configura isso como um padrão permanente.

Integração Para especificar que o Anubis deve usar a nova tabela, o administrador precisa mudar o modo de autenticação de mode transparent para mode auth na seção de controle da configuração global anubisrc (veja a listagem 2, da linha 1 a 5). Também é necessário acrescentar o caminho das credenciais de usuário à seção AUTH (linhas 7 a 15). A listagem 2 mostra como fazer isso com um banco de dados MySQL. Além disso, usuários precisam dizer ao programa de email para usar a autenticação SMTP-AUTH ao enviar email. A listagem 3 mostra uma sessão Dixie funcional. A partir da linha 7, um cliente de email está se comunicando com o daemon Anubis. O cliente pode usar os mecanismos SASL, DIGEST-MD5 e CRAMMD5 para autenticar. Todos os métodos transmitem uma senha em hash no lugar de texto puro. Na linha 9, é possível ver o programa de email lançando o comando STARTTLS para estabelecer uma conexão segura SSL com o daemon Anubis. Isso falha, pois o Anubis ainda não está configurado para esse tipo de conexão. Na linha 16, o programa de email e o Anubis concordam quanto ao mecanismo SASL CRAM-MD5. O daemon, então, procura

pelo banco de dados MySQL por um re- gem 2). Essa seção TRANSLATION do gistro que case com as credenciais do arquivo de configuração também pode usuário haischt, e encontra esse registro mapear todos os endereços em um do(linhas 18 a 20). mínio para um nome compartilhado A linha 20 contém um detalhe inte- (translate Domain into user). O ressante. É aqui que o Anubis associa modo Dixie é útil, já que ele agrega o usuário haischt com o endereço padrões atuais como SMTP-AUTH e me@daniel.stefan.haischt.name. A dá acesso a usuários sem uma conta seção TRANSLATION cuida de mape- Unix. Mas também é verdade que a ar endereços de email a nomes locais implementação atual do modo Dixie (veja as últimas quatro linhas da lista- tem algumas fraquezas. ➟

Figura 5b: A tabela MySQL tem as credenciais para o usuário haischt, que usa o modo Dixie de autenticação. A conta Unix desse usuário tem o mesmo nome. O arquivo de configuração está localizado em /home/haischt/.anubisrc.

69

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


SysAdmin

Senhas são armazenadas no banco de dados de maneira aberta. O campo para o arquivo de configuração de usuário aponta para um arquivo existente. Seria mais prático armazenar parâmetros em um campo BLOB (Binary Large Object) – para conjuntos de dados binários em um banco de dados – ou em uma tabela separada. Como o Anubis tem as credenciais do usuário, o processamento de determinadas mensagens agora é possível. Por exemplo, é possível configurar o Anubis para assinar ou criptografar emails. Para permitir que isso ocorra, usuários precisam adicionar entradas à seção RULE de seus arquivos ~/.anubisrc. Você verá que é bem simples acrescentar atributos ao cabeçalho do email usando a sintaxe add header [nome] value:

Anubis

Assunto

assunto após [sig] – é acrescentada. Para fazer isso, o “\1” referencia a cadeia de caracteres nos parênteses passados pela expressão regular. A linha de assunto é tão útil para o envio de comandos que o Anubis tem sua própria sintaxe para cuidar if header [Subject] "^ *\\[sig\\](.*)" disso, através de gatilhos. Usuários remove [Subject] podem disparar eventos via email add [Subject] "\1" simplesmente incluindo comandos signature-file-append yes no final do assunto, seguidos por duas arrobas (“@@”). Por exemplo, Essa instrução if verifica se o as- “assunto@@assinar”. O seguinte gasunto começa com [sig] (sintaxe tilho cuida de todo o resto: estendida Posix, especificada sem precisão). A linha do assunto é então trigger "assinar" gpg-sign me@daniel.stefan.haischt.name removida completamente e uma nova done linha – que reflete a parte original do

Alguns clientes de email tornam difícil o acréscimo de cabeçalhos pelos usuários. O Anubis simplifica esse processo, através da análise (parsing) da linha de assunto:

Listagem 3: Sessão Dixie 01 #> Reading system configuration file /usr/local/ etc/anubis/anubisrc...

add header[X-Processed-By] "GNU Anubis"

02 #> UID:0 (root), GID:0, EUID:0, EGID:0

O Anubis também entende execução condicional. Se um email tem um cabeçalho with-signature que contém um valor arbitrário (veja o quadro 2: “Formatos de expressões regulares”), as seguintes linhas são tudo o que é necessário para remover o cabeçalho e acrescentar uma assinatura de texto no final da mensagem:

03 #> GNU Anubis bound to 192.168.1.6:24 04 #> [68643] GNU Anubis is running... 05 #> [68643] Connection from 192.168.120.10:40501 06 #CLIENT <<< 220 abyssone. abyssworld.de GNU Anubis ESMTP; Identify yourself(64) 07 #CLIENT >>> EHLO [192.168.121.2](22)

if header [with-signature] :re ".*" remove [with-signature]

pleased to meet you.(36) 09 #CLIENT <<< 250-STARTTLS(14)

signature-file-append yes

10 #CLIENT <<< 250-AUTH

A expressão signature-file-append yes acrescenta um separador “--”, seguido do conteúdo do arquivo ~/.signature. Já body-append acrescentaria o conteúdo de um arquivo qualquer no final da mensagem, enquanto bodyclear-append removeria a mensagem original, antes de fazer isso.

70

08 #CLIENT <<< 250-Anubis is

DIGEST-MD5 CRAM-MD5 (31) 11 #CLIENT <<< 250 HELP(10) 12 #CLIENT >>> STARTTLS(10) 13 #[68647] anubis.pem: No such file or directory 14 #CLIENT <<< 454 TLS not available due to temporary reason(47) 15 #CLIENT >>> AUTH CRAM-MD5(15)

16 #SASL mech=CRAM-MD5, inp=NULL 17 #CLIENT <<< 334 PDE0MTU0NTMyOT UzMDA2MzI0MTIzLjBAbG9jYWxob3N0 Pg==(54) 18 #CLIENT >>> aGFpc2NodCA5ZmQ1MD hkYTYzYzQ3ODRiOGUwMzMzZTNhMmUy M2VjZQ==(58) 19 #> [68647] Found record for `haischt’. 20 #> [68647] Authentication passed. User name haischt, Local user haischt. Welcome! 21 #CLIENT <<< 235 Authentication successful.(32) 22 #> [68647] UID:1001 (haischt), GID:20, EUID:1001, EGID:20 23 #> [68647] Reading user configuration file /home/ haischt/.anubisrc... 24 #> [68647] Getting remote host information... 25 #> [68647] Connected to 192.168.1.6:25 26 #> [68647] Starting SMTP session... 27 #SERVER >>> 220 smtp. abyssworld.de ESMTP Postfix (2.2.3)(46)

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


Anubis

O comando gpg-sign assina o corpo do email com a chave ID especificada. Para permitir que isso aconteça, a keyring GPG precisa estar disponível no diretório ~/.gnupg, e o arquivo de configuração de usuário ~/.anubisrc precisa conter a senha GPG (gpg-passphrase “minhasenha”). O GPG precisa da chave do usuário para criptografia. Um gatilho extendido que analise dados adicionais na linha do assunto também pode cuidar disso:

nica Ident, e o modo Dixie guarda senhas em texto puro no banco de dados). Keyrings PGP e configurações específicas de usuários são armazenadas no sistema de arquivos em vez do banco de dados. Fora isso, não há conectividade LDAP e PGP/Mime, junto com o fato de o Anubis sozinho ser incapaz de descriptografar mensagens que chegam. Esperamos que o futuro desenvolvimento continue a melhorar esse verdadeiro deus da manipulação de emails. ■

trigger :extended "^encrypt:(.*)"

Informações

gpg-encrypt "\1" add [X-GPG-Comment] "Encrypted for \1" done

[1] GNU Privacy Guard: www.gnupg.org [2] GPG Relay: sites.inka.de/tesla/gpgrelay.html

A linha de assunto deve conter o gatilho encrypt, seguida pela chave ID do destinatário: Olá João!@@encrypt: Receiver-Key.

[3] Kuvert: www.snafu.priv.at/mystuff/kuvert/

Conclusões

[5] GPG Shell (Windows): www.jumaros.de/rsoft/

[4] PGP Universal: www.pgp.com/products/universal/

[6] GNU Anubis: www.gnu.org/software/anubis/ [7] Python Ident Daemon: www.alcyone.com/software/fauxident/ [8] Windows Identd: identd.dyndns.org/identd/ [9] MSMTP: msmtp.sourceforge.net [10] ESMTP: esmtp.sourceforge.net [11] Plugin Enigmail: enigmail.mozdev.org

Sobre o autor

Tarefas mais complexas precisam de uma linguagem de programação mais poderosa. O Anubis fornece isso na forma da linguagem de script Guile (um dialeto do Scheme). Também é possível usar programas externos para a manipulação de emails. Em combinação com comandos integrados, o GNU Anubis ainda possibilita técnicas extremamente flexíveis para o processamento de cabeçalhos e conteúdos de emails. A verdadeira força desse aplicativo é a habilidade de fazer qualquer tipo de manipulação de email que se possa imaginar. Ao mesmo tempo, o suporte PGP/GnuPG economiza bastante tempo que seria gasto com configurações. A autenticação de usuários ainda tem muito o que melhorar (o modo Pixie aplica a insegura téc-

SysAdmin

Daniel S. Haischt já cursou um MBIS

(Master Business Information Systems) e

agora enfrenta um MBIM (Master Busi-

ness Information Management) em Reutlingen, na Alemanha. Nas horas vagas,

contribui em uma série de projetos de

código aberto, se divertindo muito com configurações complexas de servidores.

71

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Programação

Python

Bibliotecas C no Python

Reutilização de código

Python, PHP, Ruby... O problema é que, mais cedo ou mais tarde, teremos que voltar ao mundo real e usar uma biblioteca C. Acompanhe neste artigo como usar uma biblioteca OpenGL no Python. por José María Ruiz Beverley Bridge – www.sxc.hu

N

os anos 70 o pessoal da engenharia de software começou a imaginar um futuro perfeito. Não seria preciso escrever programas para problemas já resolvidos – o famoso “não reinvente a roda”. Começou-se a falar de objetos e componentes. Infelizmente, essa utopia não era muito diferente da previsão de que todos iriam de foguete para o trabalho e comeriam em lanchonetes espaciais. Mas a realidade é quase tão estranha: quem imaginaria ter em casa um computador, conectado a uma rede mundial? Hoje em dia, o tipo de código mais utilizado é o que vem na forma de bibliotecas. No mundo Linux em particular, elas geralmente foram programadas em C ou C++. Devido a inúmeros fatores, essas linguagens foram as mais populares para o desenvolvimento de bibliotecas e sistemas e continuam sendo insubstituíveis em muitos âmbitos. A linguagem C sempre se destacou por sua portabilidade (é muito simples encontrar ou criar um compilador C para uma nova arquitetura de hardware), enquanto o C++ se sobressai pelo equilíbrio entre portabilidade e capacidade para grandes projetos.

72

OpenGL A biblioteca que vamos usar em nosso exemplo fornece uma série de funções que nos permite manipular objetos 3D através do OpenGL [1]. Espantado? Na verdade, não é tão difícil. Não iremos entrar em detalhes sobre o OpenGL, só o básico. O OpenGL é um padrão mundial criado pelo SGI (Silicon Graphics Interactive) para o desenvolvimento de aplicações 3D interativas. Traduzido para a linguagem doméstica, isso quer dizer... Games! Todos os jogos multiplataforma que utilizam 3D foram programados com OpenGL (DirectX, a alternativa Microsoft, funciona apenas em sistemas Intel com Windows®). O OpenGL tem um design simples. Os objetos são compostos por vértices (um triângulo tem 3 vértices) os quais definem áreas que podem ter uma série de propriedades como cor e brilho. Uma vez definidos os objetos, passamos a criar uma série de funções que serão chamadas quando forem produzidos os eventos. O OpenGL utiliza um loop infinito que, basicamente, se dedica a colher um evento. Por exemplo, o pressionar de uma tecla chama a função destinada a administrá-lo. Simples assim. Evidentemente programar um jogo 3D é muito complicado, mas a base é essa: fazer as imagens da tela reagirem a eventos que

possam ser disparados a qualquer momento, e que a reação seja em tempo real, ou seja, sem atraso perceptível. Quem nunca sonhou com um upgrade de placa de vídeo, em busca de mais frames por segundo, para uma experiência 3D mais realista? Na listagem1.c (disponível para download em [2]) podemos ver um programa OpenGL muito simples, que será, no entanto, a base para nossa biblioteca. Para compilá-lo, devemos executar make listagem1 no diretório em que o conteúdo do arquivo lm21_python.tar.gz (disponível no link [2]) for descompactado. Para que serve nosso programa? Ele gera um cubo 3D com texturas e o gira sem parar até que pressionemos a tecla [2]. Então ele pára, até que comece a girar novamente quando pressionamos a tecla [1]. Com os três botões do mouse, podemos definir o ângulo em que o cubo gira. Se compilarmos o programa dessa forma, iremos obter um executável que poderemos usar. A velocidade com que o cubo gira depende do hardware. Para fazer essa compilação, precisaremos de algo especial: o SWIG [3].

SWIG O SWIG é uma aplicativo desenvolvido em 1995, no departamento de física teórica do Laboratório Nacional Los Álamos

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


Python

[4]. Lá foi desenvolvida a primeira bomba atômica e, desde então, o lugar se tornou um centro de pesquisa de ponta mundial. O objetivo ao se criar o SWIG era reduzir a complexidade de muitas aplicações científicas que exigem o uso de bibliotecas em linguagens de “baixo nível” como C ou Fortran. Infelizmente, trabalhar com essas linguagens é complicado. Por exemplo, desenvolver uma interface gráfica, imprescindível nos dias de hoje, é um tormento. Também são linguagens complicadas, que devem ser usadas apenas por experts – e a maior parte dos cientistas de Los Álamos não são especialistas em programação. Por isso temos bibliotecas em C e Fortran potentíssimas, mas cujo público-alvo não possui capacidade técnica para usá-las. O que fizeram os engenheiros de Los Álamos para simplificar o uso dessas potentes ferramentas? Se dedicaram a criar bibliotecas que pudessem ser manipuladas a partir de linguagens mais claras, como Perl ou Python. Esse processo, além de trabalhoso, é altamente repetitivo, de maneira que decidiram não ter mais que passar por ele. Então, desenvolveram o SWIG que, de forma quase automática, gera o código necessário para se utilizar bibliotecas C em linguagens de “alto nível” (desde Python até OCaml, passando por Java ou C#). O “de forma quase automática” é essencial. Teremos apenas que gerar um arquivo de interface (terminado com .i) e o SWIG gerará um arquivo <nome>_wrap.c, que será compilado junto ao original para criar a biblioteca. Dessa forma obteremos uma biblioteca dinâmica (um arquivo .so, que vemos aos milhares em /usr/lib), assim como uma biblioteca na linguagem de destino. No nosso caso, essa linguagem será Python.

Exemplo A listagem1.c é um programa de exemplo em OpenGL. É basicamente um cubo, que gira e responde a eventos. Ele possui uma série de propriedades que não podem ser alteradas, como a velocidade de giro e a cor. Na listagem3.c (download em [2]) temos a biblioteca equivalente necessária para nossos propósitos. Vamos examiná-la. Para começar, por se tratar de uma biblioteca, ela não pode ter a função main, por isso a renomeamos para arranque(). Foram incorporadas novas funções com o objetivo de podermos modificar algumas características do objeto (cor, velocidade, título da janela...). O OpenGL é composto pelas bibliotecas GL, GLU e GLUT. Essa última é muito importante, mas, infelizmente, a biblioteca GLUT padrão tem um defeito (ou, um problema, dependendo de como olharmos). A função glutMainLoop() é o loop infinito de gestão de eventos. Podemos entrar nela, mas jamais sair. Quando se dispara o evento que provoca a saída do loop, o

Programação

programa termina. Qualquer coisa que seja colocada depois da chamada ao glutMainLoop() não será mais executada. Isso não parece muito lógico, não é mesmo? E se quisermos iniciar o gerenciador de eventos, pará-lo e iniciá-lo novamente? Como não somos os únicos com esse “problema”, alguns valentes, na melhor tradição do Software Livre, criaram o FreeGLUT [5]. Basicamente, ele é um GLUT que permite sair do loop interno do glutMainLoop() sem que o programa seja finalizado, entre outros recursos. E por que queremos que isso ocorra? Como precisamos de uma biblioteca, queremos que a função arranque() volte ao programa principal (o intérprete de Python) assim que finalize a execução, ao invés de finalizar todo o programa. Esse é um problema típico que podemos encontrar ao criarmos bibliotecas para o Python usando bibliotecas C. Às vezes, o que queremos usar são as funções de um programa já existente (por exemplo, imagine ter acesso às funções do Mozilla ou Firefox para RSS ou análise de HTML), de modo que os passos serão: eliminar os pontos de saída do programa (geralmente os exit()) e eliminar o main. Assim já temos nossa biblioteca, pronta para executar o SWIG sobre ela.

Arquivo de interface O SWIG necessita de um arquivo que diga quais funções e definições de dados devem ser exportadas para o Python. Esse arquivo se parece muito com os arquivos de cabeçalho (headers) em C. Dê uma olhada em /usr/include para ver alguns deles. O arquivo começa com a sentença %module listagem3

Figura 1: O cubo inicial, da maneira como é visto na janela do programa de exemplo.

73

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Programação

Python

Palavras mágicas A “poção” está quase pronta. Agora só temos que usar as palavras mágicas do arquivo Makefile [2] que foi usado na compilação da listagem1.c. Agora é preciso executar o comando make. Isso vai executar os seguintes comandos: swig -python listagem3.i gcc -c -fPIC listagem3.c $(INCS) gcc -c -fPIC listagem3_wrap.c$(PYINCS) $(INCS) gcc -shared listagem3.clistagem3_wrap.c -o _listagem3.so U $(INCS) $(PYINCS) $(LIBS) $(PYLIBS)

Figura 2: Com o teclado podemos mudar a posição e a direção do giro do cubo.

que declara o nome do módulo e deve ser igual ao nome de nossa biblioteca C. Esse nome será exportado para cada linguagem, de maneira que se corresponda com sua estrutura de organização. No caso do Python, o nome do módulo se corresponderá com um pacote. O resultado final da execução do SWIG será um arquivo chamado listagem3_wrap.c. É um arquivo em C, que define uma série de funções que permitirão o acesso à biblioteca listagem3.c, definidas no arquivo listagem3.i. Algumas das definições que serão colocadas no arquivo listagem3.i devolvem dados de tipos definidos em OpenGL, motivo pelo qual temos que dizer ao SWIG que o arquivo listagem3_wrap.c deve incorporar o cabeçalho: #include <GL/glut.h>

Isso se faz mediante a declaração:

O primeiro comando gera o arquivo listagem3_wrap.c, bem como o listagem3.py. Há uma opção, -python, que poderia ser trocada por -perl ou -java. Essa opção determina a linguagem que será utilizada para gerar a biblioteca. Obviamente, esses arquivos não são nada mais que código a ser compilado. Disso se encarregam os três comandos seguintes. O primeiro compila nossa biblioteca, o segundo os arquivos gerados pelo SWIG e o terceiro une tudo para gerar a biblioteca dinâmica. Esses $(INC) ou $(PYLIBS) são opções de compilação guardadas em variáveis de controle no Makefile. Variam de sistema para sistema, mas as que aparecem em Makefile são as mais comuns.

Nova biblioteca Por incrível que pareça, terminamos. Já temos nossa biblioteca. Se dermos uma olhada no diretório em que realizamos todas as ações, veremos um arquivo chamado _listagem3. so. É uma biblioteca dinâmica que pode ser carregada a qualquer momento. O que estamos esperando? Vamos iniciar o intérprete Python:

%{ #include <GL/glut.h>

> python

%}

Python 2.4 (#2, Apr 3 2006.22:24:02) [GCC 3.4.2 {FreeBSD] 20040728] on freebsd5

Entre os símbolos %{ e %} pode ser introduzida qualquer decla- Type “help”, “copyright”.” credits” or “license” for more U ração extra ou incluído código que não exista no arquivo lista- information. >>> import listagem3 gem3.c. Digamos que essa é uma maneira de isolar um código >>> específico para SWIG, relacionado às bibliotecas originais. Bem, está quase terminado. Falta apenas declarar os tipos de dados e cabeçalhos necessários. Podemos ver as definições Com o comando import, acabamos de carregar a biblioteca no arquivo listagem3.i (download em [2]). Basicamente são e a temos pronta para uso. Vamos começar pela ação mais os cabeçalhos das funções que queremos usar no Python com simples: iniciar o programa com as opções padrão: a palavra extern na frente. Essa palavra diz ao SWIG que são funções que existem em um diretório externo. >>>listagem3.arranque()

74

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


Python

Programação

Ao teclarmos [Enter], aparecerá uma janela na tela com O Python permanece dizendo que a instrução não pode um objeto que se move numa grande velocidade. É o nosso ser realizada. Uma falha desse tipo em um programa C teria cubo, se movendo rapidamente. Se pressionarmos a tecla levado a uma falha irreversível que abortaria o programa. [2] o cubo pára. Para colocá-lo em movimento novamente, No Python não. Simplesmente voltamos ao intérprete. Essa é devemos pressionar [1]. uma das razões pelas quais é interessante usar bibliotecas C Se usarmos os botões do mouse enquanto o cubo gira, vere- no Python. Eliminamos muitos erros fatais porque o Python mos que cada botão muda a direção de giro para um sentido se encarrega de verificar por nós os tipos de dados e é capaz diferente. Se estivermos cansados do cubo ou com enjôos de recuperar-se dos erros. Vamos brincar com as cores do cubo. O cubo tem 6 lados. O porque o computador é muito rápido, é só pressionar [Q]: a janela desaparecerá. Voltamos a ver o prompt >>> do Python. normal seria atribuir uma cor para cada um. Mas o OpenGL dá Isso já é um sucesso: conseguimos executar uma função C cores aos vértices. Como o cubo tem 8 vértices, teremos que que interage com o OpenGL a partir do Python. Mas, mesmo assinalar 8 cores. Que cor terá cada face do cubo se cada vértice assim, não fizemos nada – poderíamos ter feito o mesmo com tem uma cor? Pois, seguindo o jargão do OpenGL, terá uma cor “interpolada” – uma mescla das quatro cores dos vértices. um shell script! Vamos interagir mais com a biblioteca. Se olharmos o arUma das nossas funções permite definir a cor dos vértiquivo de interface listagem3.i, veremos as funções que ces (setColor()), de modo que deixaremos as faces cinzas. estão disponíveis para uso a partir do Python. Vamos mudar Daremos a um vértice a cor preta e ao seguinte, branca. No a velocidade de giro para podermos ver o cubo. exemplo.py podemos ver um programa que atribui as cores branca e preta alternadamente aos vértices. Mas o resultado não é de todo cinza, por quê? >>> listagem3.setTiempoEspera(10000000) >>> listagem3.arranque() Porque depende da maneira que os vértices foram definidos. Os vértices 0 e 1 não têm porquê estar no sentido correto. Pode-se brinPara não complicar o código, foi introduzido um loop car com o código do exemplo.py para tentar obter outras cores. que faz determinado número de iterações na função display() do listagem3.c. Essa função é invocada pelo OpenGL para desenhar os objetos na tela. Se nela Não é tão complicado acessar milhares de bibliotecas C a for introduzido um atraso, irá demorar mais para reali- partir do Python. Na própria documentação do SWIG, apazar o seu trabalho. Isso se traduz em uma visualização rece um exemplo de como gerar uma biblioteca Python de mais clara do cubo girando, se conseguirmos realizar o maneira quase automática para a famosa biblioteca GD de atraso adequado. desenho 2D. Com certeza, na próxima vez que virmos uma nova biblioNo nosso sistema, um valor de 10.000.000 de iterações faz com que o cubo gire de maneira suave. Eviden- teca para Python, iremos nos perguntar se os autores usaram temente, por ser um loop, depende da velocidade do SWIG – pode ser inclusive que tenha sido feita por nós. ■ sistema. Não é a maneira mais elegante de introduzir Informações um atraso, mas é a mais simples e curta (nosso espaço aqui é limitado...). [1] OpenGL: http://www.opengl.org A variável espera no arquivo listagem3.c é do tipo INT. [2] Download de códigos deste artigo: Isso significa que seu valor máximo será um pouco mais de http://www.linuxmagazine.com.br/issue/21/lm21_python.tar.gz[2] 4.000.000.000. O que ocorrerá se introduzirmos um atraso [3] Projeto SWIG: http://www.swig.org[1] de 5.000.000.000? [4] Laboratório Nacional Los Álamos: http://www.lanl.gov

Conclusão

>>> listagem3.setTiempoEspera(5000000000)

[5] Projeto FreeGLUT: http://freeglut.sourceforge.net

OverflowError: argument number 1: long int too large to U convert to int >>>

Autor

Traceback (most recent call last): file “<stdin>”, U line 1, in ?

José María Ruíz está finalizando seu projeto de conclusão de curso de

Engenharia Técnica em Informática de Sistemas e está há mais de sete

anos usando e desenvolvendo Software Livre, há dois anos no FreeBSD.

Atualmente, trabalha na Animatika, empresa de software livre.

75

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Serviços

CD do Assinante

Ubuntu 6.06 LTS

Dapper Late A espera valeu a pena. A nova versão do Ubuntu é uma das melhores distribuições para desktop de todos os tempos. O líder da comunidade Ubuntu Brasil explica o que mudou. por Mário Meyer

�� �� �� �

��

U

buntu” é uma palavra africana e customizar seu software de qualquer que significa “humanidade para maneira que lhes seja adequada. todos” ou “eu sou quem sou por Por isso, toda essa comunidade vem causa do que todos somos”. No mundo trabalhando arduamente para facilitar da informática e dos sistemas GNU/ cada vez mais a utilização do sistema por Linux, o significado não é diferente. O usuários de todos os tipos, desde os mais Ubuntu Linux tenta aplicar essas idéias leigos até os mais experientes. Muitas na criação de um sistema operacional aplicações estão sendo desenvolvidas completo, baseado em Linux, que seja para que esses usuários não precisem utilizável por todos. utilizar linhas de comando, a temida A comunidade do Ubuntu foi criada “telinha preta”. sobre as idéias da filosofia Ubuntu: de Muitos aplicativos estão sendo moque software deve ser gratuito, de que dificados para facilitar cada vez mais a ferramentas de software devem ser utili- interação das pessoas com os mesmos. zadas pelas pessoas em sua língua local Tem sido realizado um trabalho muito e apesar de qualquer deficiência, e de grande para que o usuário tenha acesso a que as pessoas devem poder modificar sua língua local desde a primeira tela de boot, antes mesmo do início da instalação. Além desses, não se poderia deixar de citar todo o trabalho realizado para que o sistema “simplesmente funcione”, durante o qual dezenas de pessoas trabalharam para realizar a melhor detecção de hardware possível, para que seja Figura 1: O novo applet de notificação de atualizações exigido o mínimo de intedisponíveis avisa sobre a eventual necessidade de se reiniciar o ração do usuário durante o computador ou algum aplicativo. processo de instalação.

76

Evolução Seguindo essa filosofia, já se passaram quase 2 anos ou 4 lançamentos (releases). Como sistema de versões, escolhemos o padrão Ano.Mês do lançamento e começamos com o Warty Warthog (4.10), um sistema novo baseado em Debian e pouco conhecido na época. Em seguida, realizamos melhorias em diversas partes do sistema e foi lançado o Hoary Hedgehog (5.04), que já começou a fazer parte do cenário nacional e internacional do GNU/Linux. Muito se falou do mesmo, e como a melhor propaganda é o boca-a-boca, criou-se uma tremenda expectativa pela próxima versão. Depois de outro grande ciclo de desenvolvimento e aperfeiçoamento, foi lançado o Breezy Badger (5.10), que foi o sistema realmente adotado pela comunidade já existente e pelos novos usuários que começaram a migrar para um sistema GNU/Linux que os atendia. Finalmente, em junho de 2006, depois do nosso maior ciclo de desenvolvimento e depois de centenas de bugs corrigidos, foi lançado o Dapper Drake (6.06), que é considerada a mais estável das versões já criadas do Ubuntu.

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


CD do Assinante

Serviços

No auge O Dapper, como é conhecido pela comunidade, foi uma versão que criou uma enorme expectativa, já que essa seria a primeira versão com tempo de suporte estendido (LTS). Isso quer dizer que serão dis- Figura 2: O Dapper tem um tema agradável. A instalação/atualização de programas também melhorou. ponibilizados pacotes de atualizações de segurança dos softwares por 5 anos laboradores. Precisamos fazer quase o Ubuntu agora inclui no seu sistema de help para servidores e 3 anos para desktops. impossível para traduzir o máximo pos- dicas que antes só podiam ser encontradas Com isso, já é possível se criar parques sível do sistema naquela época. Já para o na Internet, nos guias não-oficiais. computacionais em empresas ou insti- Dapper, houve um aumento significativo Desejamos, portanto, poder levar o tuições de ensino sem o problema de de novos colaboradores auxiliando nas GNU/Linux aonde ele jamais havia cheprecisar atualizar as versões de todo o traduções. Sendo assim, conseguimos gado, permitindo que cada vez mais usuparque a cada 18 meses. ser um dos países que mais traduziram ários percebam que esse é, de fato, um Além do fator tempo de suporte, o o Dapper, junto com a Alemanha, França, Linux para seres humanos, e fazendo Dapper é a versão que recebeu maior Itália e Espanha. com que cada vez mais pessoas se sinquantidade de trabalho e carinho da tam confortáveis em utilizar esse sistema sem a necessidade de conhecê-lo a comunidade Ubuntu. Não só por causa do tempo de suporte estendido, mas Dentre as principais novidades dessa fundo. Por todas essas vantagens, estaporque, durante esses quase 2 anos, versão estão o OpenOffice 2, o Firefox mos certos de que o Ubuntu continuará aconteceu no nosso sistema o milagre 1.5, um novo sistema para facilitar a ins- crescendo, e na mesma rapidez com que da comunidade. É incrível a quantidade talação de novos aplicativos e diversas tem crescido até hoje. ■ de pessoas que se juntam à comunidade melhorias no sistema de atualizações Mário Meyer, 24 Ubuntu todos os dias. A cada dia que automáticas, que agora avisa o usuário anos, é Bacharel em passa, a comunidade cresce e, com isso, de que é necessário realizar um reboot Informática, foras colaborações abrangem cada vez mais para que todas as atualizações sejam mado pela PUC-Rio. Usa sistemas Linux aplicativos, hardwares e bugs. efetivadas, ou até mesmo que o usuário e BSD há mais de Podemos ver esse mesmo fenômeno precisa reiniciar (fechar e abrir) o Firefox 10 anos. Já trabaaqui no Brasil. Quem participa da comu- para utilizar a nova versão do mesmo. lhou com desenvolnidade brasileira do Ubuntu (http://www. Outra grande novidade é a existência vimento e em diversas implementações de ubuntu-br.org) pôde perceber o enorme de pacotes para realizar uma instalação UNIX, desde servidores e ISPs até desktops e terminais leves. Atualmente, é líder da crescimento da mesma nos últimos 6 Java sem mistérios, o que foi possível após comunidade Ubuntu Brasil e membro meses. No lançamento do Breezy, éra- as modificações no licenciamento do Java oficial do projeto Ubuntu internacional. mos alguns poucos, mas constantes, co- pela Sun Microsystems. Além disso, o

Sobre o autor

O que muda?

77

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Serviços

Linux.local

Linux.local

O maior diretório de empresas que oferecem produtos, soluções e serviços em Linux e Software Livre, organizado por estado. Sentiu falta do nome de sua empresa aqui? Entre em contato com a gente: 11 2161-5400 ou anuncios@linuxmagazine.com.br

Empresa

Cidade

Endereço

Fornecedor de Hardware = 1 Redes e Telefonia / PBX = 2 Integrador de Soluções = 3 Literatura / Editora = 4 Fornecedor de Software = 5 Consultoria / Treinamento = 6 Telefone

Web

1 2 3 4 5 6

27 3082-0932

www.linuxshopp.com.br

✔✔

27 3315-2370

www.megawork.com.br

✔✔

27 3227-5543

www.spiritlinux.com.br

✔✔

Espírito Santo Linux Shopp Megawork Consultoria e Sistemas Spirit Linux

Vila Velha Vitória

Rua São Simão (Correspondência), 18 – CEP: 29113-120 Rua Chapot Presvot, 389 – Praia do Canto – CEP: 29055410 sl 201, 202 Rua Marins Alvarino, 150 – CEP: 29047-660

Instituto Online

Belo Horizonte

Av. Bias Fortes, 932, Sala 204 – CEP: 30170-011

31 3224-7920

www.institutoonline.com.br

Linux Place

Belo Horizonte

Rua do Ouro, 136, Sala 301 – Serra – CEP: 30220-000

31 3284-0575

corporate.linuxplace.com.br

Belo Horizonte

Rua Paraíba, 966, Sala 303 – Savassi – CEP: 30130-141

0800 702-9004

www.turbosite.com.br

✔✔

Microhard

Belo Horizonte

Rua República da Argentina, 520 – Sion – CEP: 30315-490

31 3281-5522

www.microhard.com.br

✔✔✔

✔✔

41 252-2977

www.isolve.com.br

✔✔

Vitória

✔✔

Minas Gerais

TurboSite

✔ ✔✔

✔ ✔✔

Paraná iSolve

Curitiba

Av. Cândido de Abreu, 526, Cj. 1206B – CEP: 80530-000

Curitiba

Av. Senador Souza Naves, 1240 Cristo Rei – CEP 80050-040 41 3360-2600

www.mandriva.com.br

NSI Training

Rio de Janeiro

21 2220-7055

www.nsi.com.br

Open IT Unipi Cooperativa de Informática Ltda

Rio de Janeiro Campos dos Goytacazes

Rio de Janeiro Rua Araújo Porto Alegre, 71, 4ºandar Centro – CEP: 20030-012 Rua do Mercado, 34, Sl, 402 – Centro – CEP: 20010-120

21 2508-9103

www.openit.com.br

Mandriva Conectiva

Solis

Lajeado

DualCon

Novo Hamburgo

Datarecover

Porto Alegre

LM2 Consulting

Porto Alegre

Lnx-IT Informação e Tecnologia Porto Alegre

Av. Alberto Torres, 303, 1ºandar - Centro – CEP 28035-581 22 2725-1041 Rio Grande do Sul Rua Comandante Wagner, 12 – São Cristóvão – CEP: 95900-000 Rua Joaquim Pedro Soares, 1099, Sl. 305 – Centro Av. Carlos Gomes, 403, Sala 908, Centro Comercial Atrium Center – Bela Vista – CEP: 90480-003 Rua Germano Petersen Junior, 101-Sl 202 – Higienópolis – CEP: 90540-140 Av. Venâncio Aires, 1137 – Rio Branco – CEP: 90.040.193 Av. Júlio de Castilhos, 132, 11º andar Centro – CEP: 90030-130 Rua dos Andradas, 1234/610 – Centro – CEP: 90020-008

✔✔✔✔

www.unipi.com.br

✔✔✔✔

51 3714-6653

www.solis.coop.br

✔✔

✔✔

51 3593-5437

www.dualcon.com.br

✔✔

51 3018-1200

www.datarecover.com.br

51 3018-1007

www.lm2.com.br

✔✔

51 3331-1446

www.lnx-it.inf.br

✔✔

4003-1001

www.plugin.com.br

51 3286-3799

www.tehospedo.com.br

✔✔

Plugin

Porto Alegre

TeHospedo

Porto Alegre

Ws Host

Arthur Nogueira

Rua Jerere, 36 – Vista Alegre – CEP: 13280-000

19 3846-1137

www.wshost.com.br

DigiVoice

Barueri

11 4195-2557

www.digivoice.com.br

✔✔✔

✔✔

Dextra Sistemas

Campinas

Al. Juruá, 159, Térreo – Alphaville – CEP: 06455-010 Rua Antônio Paioli, 320 – Pq. das Universidades – CEP: 13086-045 Av. Andrades Neves, 1579 – Castelo – CEP: 13070-001

19 3256-6722

www.dextra.com.br

✔✔

19 3213-2100

www.insignesoftware.com

Campinas

Av. Thomaz Alves, 20 – Centro – CEP: 13010-160

19 3236-1915

www.microcamp.com.br

Diadema

Av. Senador Vitorino Freire, 465 – CEP: 09910-550

11 5034-4199

www.savant.com.br

14 3413-1137

www.epopeia.com.br

11 2106-9392

www.redentor.ind.br

11 2173-4211

www.go-global.com.br

11 4990-0065

www.aw2net.com.br

São Paulo

Insigne Free Software do Brasil Campinas

Microcamp

Savant Tecnologia

Epopéia Informática

Redentor Go-Global AW2NET

Async Open Source Delix Internet

4Linux

A Casa do Linux

78

Marília

Rua Goiás, 392 – Bairro Cascata – CEP 17509-140 Rua Costante Piovan, 150 – Jd. Três Montanhas – CEP: Osasco 06263-270 Yojiro Takaoca, 4384, Ed. Shopping Service, Cj. 1013 Santana de Parnaíba –Av. CEP: 06541-038 Santo André Rua Edson Soares, 59 – CEP: 09760-350 São Carlos

✔✔ ✔

✔✔✔

✔ ✔

Rua Orlando Damiano, 2212 – CEP 13560-450 Rua Voluntário de São Paulo, 3066 9º – Centro – CEP: São José do Rio Preto 15015-909 São Paulo Rua Teixeira da Silva, 660, 6º andar – CEP: 04002-031

16 3376-0125

www.async.com.br

11 4062-9889

www.delixhosting.com.br

11 2125-4747

www.4linux.com.br

São Paulo

11 3549-5151

www.acasadolinux.com.br

Al. Jaú, 490 – Jd. Paulista – CEP 01420-000

✔✔ ✔✔ ✔✔

✔ ✔✔

✔✔

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


Linux.local

Empresa

Cidade

Accenture do Brasil Ltda.

São Paulo

ACR Informática

São Paulo

Agit Informática

São Paulo

Altbit - Informática Comércio e São Paulo Serviços LTDA. AS2M -WPC Consultoria

São Paulo

Big Host

São Paulo

Blanes

São Paulo

Commlogik do Brasil Ltda.

São Paulo

Computer Consulting Projeto e São Paulo Consultoria Ltda. Consist Consultoria, Sistemas e São Paulo Representações Ltda.

Endereço São Paulo (continuação) Rua Alexandre Dumas, 2051 – Chácara Santo Antônio – CEP: 04717-004 Rua Lincoln de Albuquerque, 65 –Perdizes – CEP: 05004010 Rua Major Quedinho, 111, 5º andar, Cj. 508 – Centro – CEP: 01050-030 Av. Francisco Matarazzo, 229, Cj. 57 – Água Branca – CEP 05001-000 Av. Tiradentes, 615, Ed. Santiago, 2º andar Bom Retiro – CEP: 01101-010 Rua Dr. Miguel Couto, 58 – Centro – CEP: 01008-010 Rua André Ampére, 153 – 9º andar – Conj. 91 CEP: 04562907 (próx. Av. L. C. Berrini) Av. das Nações Unidas, 13.797, Bloco II, 6º andar – Morumbi – CEP: 04794-000 Rua Vergueiro, 6455, Cj. 06 – Alto do Ipiranga – CEP: 04273-100

Serviços

Telefone

Web

1 2 3 4 5 6

11 5188-3000

www.accenture.com.br

11 3873-1515

www.acrinformatica.com.br

11 3255-4945

www.agit.com.br

✔✔

11 3879-9390

www.altbit.com.br

✔✔

✔ ✔ ✔

✔✔

11 3228-3709

www.wpc.com.br

11 3033-4000

www.bighost.com.br

✔✔

11 5506-9677

www.blanes.com.br

✔✔✔

✔✔

11 5503-1011

www.commlogik.com.br

✔✔✔

✔✔

11 5062-3927

www.computerconsulting.com.br

✔✔

Av. das Nações Unidas, 20.727 – CEP: 04795-100

11 5693-7210

www.consist.com.br

11 5017-0040

www.dominiotecnologia.com.br

3707-4100

www.eds.com

✔✔

✔✔✔✔

Domínio Tecnologia

São Paulo

EDS do Brasil

São Paulo

Rua das Carnaubeiras, 98 – Metrô Conceição – CEP: 04343-080 Av. Pres. Juscelino Kubistcheck, 1830 Torre 4 - 5º andar

Ética Tecnologia Getronics ICT Solutions and Services

São Paulo

Rua Nova York, 945 – Brooklin – CEP:04560-002

11 5093-3025

www.etica.net

São Paulo

Rua Verbo Divino, 1207 – CEP: 04719-002

11 5187-2700

www.getronics.com/br

Hewlett-Packard Brasil Ltda.

São Paulo

11 5502-5000

www.hp.com.br

IBM Brasil Ltda.

São Paulo

Av. das Nações Unidas, 12.901, 25º andar – CEP: 04578000 Rua Tutóia, 1157 – CEP: 04007-900

0800-7074 837

www.br.ibm.com

Rua N. Sra. do Outeiro, 480, Sala 19 – CEP: 04807-010 Rua Dr. Gentil Leite Martins, 295, 2º andar Jd. Prudência – CEP: 04648-001 Rua Santa Catarina, 1 – Tatuapé – CEP: 03086-025

11 5667-9308

www.ifractal.com.br

11 5545-2600

www.integral.com.br

11 6097-3000

www.itautec.com.br

✔✔✔

✔✔

11 5034-4191

www.komputer.com.br

✔✔

iFractal

São Paulo

Integral

São Paulo

Itautec S.A.

São Paulo

Linux Komputer Informática

Linux Mall

São Paulo

Av. Dr. Lino de Moraes Leme, 185 – CEP: 04360-001

✔ ✔✔

✔✔

✔✔

✔✔✔✔ ✔

✔✔

✔✔ ✔

São Paulo

Rua Machado Bittencourt, 190, Cj. 2087 – CEP: 04044-001 11 5087-9441

www.linuxmall.com.br

Livraria Tempo Real

São Paulo

www.temporeal.com.br

Locasite Internet Service

São Paulo

www.locasite.com.br

Microsiga

São Paulo

Al. Santos, 1202 – Cerqueira César – CEP: 01418-100 11 3266-2988 Av. Brigadeiro Luiz Antonio, 2482, 3º andar – Centro – CEP: 11 2121-4555 01402-000 Av. Braz Leme, 1631 – CEP: 02511-000 11 3981-7200

São Paulo

R. Luis Antonio dos Santos, 110 – Santana – 02460-000

11 6979-0071

www.novateceditora.com.br

Rua Funchal, 418 – Vila Olímpia Av. Alfredo Egídio de Souza Aranha, 100 – Bloco B – 5º andar – CEP: 04726-170 Av. Rouxinol, 1.041, Cj. 204, 2º andar Moema – CEP: 04516-001 Av. Cardoso de Melo, 1450, 6º andar – Vila Olímpia – CEP: 04548-005 Av. Angélica, 2503, 8º andar Consolação – CEP: 01227-200 Rua Barão do Triunfo, 550, 6º andar – CEP: 04602-002 Av. das Nações Unidas, 11.541, 16º andar – CEP: 04578000 Rua Mourato Coelho, 299, Cj. 02 Pinheiros – CEP: 05417010 Av. Jabaquara, 2940 cj 56 e 57 Rua João Gomes Junior, 131 – Jd. Bonfiglioli – CEP: 05299000 Av. Brig. Faria Lima, 1355, 19º – Pinheiros – CEP: 01452-919

11 3345-3900

www.novell.com/brasil

11 5189-3000

www.oracle.com.br

11 5052- 8044

www.proelbra.com.br

11 2165-6500

www.e-provider.com.br

11 3124-6000

www.latinsourcetech.com.br

11 5097-3014

www.samurai.com.br

✔✔

11 5503-2400

www.sap.com.br

✔✔

11 3898-2121

www.simplesconsultoria.com.br

11 5052-5958

www.smart-tec.com.br

11 3731-8008

Novatec Editora Ltda.

Novell América Latina

São Paulo

Oracle do Brasil Sistemas Ltda.

São Paulo

Proelbra Tecnologia Eletrônica Ltda.

São Paulo

Provider

São Paulo

Red Hat Brasil

São Paulo

Samurai Projetos Especiais

São Paulo

SAP Brasil

São Paulo

Simples Consultoria

São Paulo

Smart Solutions

São Paulo

Snap IT

São Paulo

Stefanini IT Solutions

São Paulo

Sun Microsystems

São Paulo

Sybase Brasil

São Paulo

The Source

São Paulo

Unisys Brasil Ltda.

São Paulo

Utah

São Paulo

Visuelles

São Paulo

Webnow

São Paulo

WRL Informática Ltda.

São Paulo

Systech

Taquaritinga

Rua Alexandre Dumas, 2016 – CEP: 04717-004 Av. Juscelino Kubitschek, 510, 9º andar Itaim Bibi – CEP: 04543-000 Rua Marquês de Abrantes, 203 – Chácara Tatuapé – CEP: 03060-020 Rua Alexandre Dumas, 1711, 10º andar, Ed. Birmann 11 – CEP: 04717-004 Av. Paulista, 925, 13º andar – Cerqueira César – CEP: 01311-916 R. Eng. Domicio Diele Pacheco e Silva, 585 – Interlagos – CEP 04455-310 Av. Nações Unidas, 12.995, 10º andar, Ed. Plaza Centenário – Chácara Itaim – CEP: 04578-000 Rua Santa Ifigênia, 211/213, Box 02– Centro – CEP: 01207-001 Rua São José, 1126 – Centro - Caixa Postal 71 – CEP: 15.900-000

✔✔ ✔✔✔

✔✔

www.microsiga.com.br

✔✔ ✔

✔✔ ✔✔

✔✔ ✔

✔✔

✔✔

✔✔

www.snapit.com.br

✔✔

11- 3039-2000

www.stefanini.com.br

✔✔

11 5187-2100

www.sun.com.br

✔✔

11 3046-7388

www.sybase.com.br

11 6698-5090

www.thesource.com.br

11 3305-7000

www.unisys.com.br

11 3145-5888

✔✔ ✔

✔✔

✔✔

www.utah.com.br

✔✔

11 5614-1010

www.visuelles.com.br

✔✔

11 5503-6510

www.webnow.com.br

11 3362-1334

www.wrl.com.br

16 3252-7308

www.systech-ltd.com.br

✔✔

79

http://supertuxbr.blogspot.com julho 2006

www.linuxmagazine.com.br

edição 21


Serviços

Eventos + Índice de Anunciantes

Calendário de eventos Evento

Data

Local

Website

Black Hat USA 2006

29 de Julho a 3 de Agosto

Las Vegas, EUA

www.blackhat.com

Seminário para Desenvolvedores PHP

8 de Julho

São Paulo, SP

www.temporealeventos.com.br

Executivos do ABC

20 de Julho

São Bernardo do Campo, SP

www.executivosdoabc.com.br

O'Reilly OSCON 2006

24 a 28 de Julho

Oregon, EUA

conferences.oreillynet.com/os2006

24º Enecomp (Enc. Nac. Estud. Computação)

31 de Julho a 04 de Agosto

Poços de Caldas, MG

www.enec.org.br/enecomp2006

LinuxWorld Conference & Expo San Francisco

14 a 17 de Agosto

Califórnia, EUA

www.linuxworldexpo.com/live/12

3º Festsol (Fest. Soft. Livre da Bahia)

24 a 26 de Agosto

Lauro de Freitas, BA

psl-ba.softwarelivre.org

2o. Seminário Linux Park ‘06

29 de Agosto

São Paulo, SP

www.linuxpark.com.br

Congresso InfoSoft 2006

31 de Agosto e 1º de Setembro

São José do Rio Preto, SP

www.congressoinfosoft.com.br

O'Reilly EuroOSCON 2006

18 a 21 de Setembro

Bruxelas, Bélgica

conferences.oreillynet.com/euos2006

III Seminário LinuxPark'06

20 de Setembro

São Paulo, SP

www.linuxpark.com.br

Seminário Web com Ruby on Rails

23 de Setembro

São Paulo, SP

eventos.temporeal.com.br

OpenOffice.org Conference 2006

11 a 13 de Setembro

Lyon, França

marketing.openoffice.org/ooocon2006

KDE Dev. and Users Conf 2006 “aKademy”

23 a 30 de Setembro

Dublin, Irlanda

conference2006.kde.org

SECCOMP 2006 (XIV Sem. Ciência Comp.)

23 a 27 de Outubro

Rio Claro , SP

www.rc.unesp.br/seccomp

LinuxWorld Conference & Expo UK

25 e 26 de Outubro

Londres, Inglaterra

www.linuxworldexpo.co.uk

2ª Semana Software Livre Univale

20 e 21 de Outubro

Ivaiporã, PR

www.univale.com.br/livre

International PHP Conference 2006

5 a 8 de Novembro

Frankfurt, Alemanha

www.phpconference.com

Web 2.0 Conference

7 a 9 de Novembro

California, EUA

web2con.com

Índice de anunciantes Serviços

Alta�especialização�em�soluções para�infraestrutura�corporativa

f So

Cursos�Corporativos

ho

Hospedagem

r d o

Desenvolvimento�de Sistemas�e�Portais

O

mel

are

Projeto,�configuração�e implantação�de�redes�Linux

Livr

e acasadolinux.com.br

tw

Produtos

Soluções�Novell

ERP:�SGI�e�SGW

Solução�de�Integração�e�VoIP Communigate�e�Concisus

Acctiva:�Help�Desk�e�Inventário

QI:�Gerenciamento�de�Projetos

MySQL�Authorized�Training�Center

Blanes�Linux�Desktop:�o�Linux�fácil�de�usar Al.�Jaú,�490 � Tel.�11-�3253-4055 Rio�de�Janeiro:�21-3233-2263

Anunciante

Página

BRconnection

29

IBM

35

Linux Park

84

Locasite

59

A Casa do Linux Guia de TI Itautec

Linux World

80 63

07 81

Oracle

09

Smart

53

Thin Networks

02

Plugin

Snap IT

83 71

http://supertuxbr.blogspot.com

80

junho 2006

edição 20

www.linuxmagazine.com.br


�������������������������������

���������������� ����������

���������������

����������������������

��������������

����������������������

����������������������

��������

����������������������

�����������������������

�������

�����������������������

���������������������

����������

�������������������

�����������������������

��������

�����������������������

���������������������

�������

�����������������������

������������������������

��������

������������������������

���������������������

����������

������������������������

�����������������������

���������

�����������������������

����������������������

������������

����������������������������� �������������������������

�������

���������������������

�������������������������

��������

������������������������

�����������������������

��������������

��������������������

����������������������

http://supertuxbr.blogspot.com �����������������������������������������������������������������

���������������������������


Preview

O que vem por aí

Agosto de 2006

Na próxima edição... Destaque

❐ Blindagem extrema

O kernel 2.6 é tão seguro assim mesmo? Na próxima edição, saiba como construir um rootkit sob medida para o Linux 2.6. Obviamente, o objetivo é demonstrar como são realizados esses tipos de ataques, para uma melhor defesa. Para quem está preparado para lidar com proteção industrial, vamos comparar passo a passo duas soluções equivalentes: o SELinux (Security Enhanced Linux), da Red Hat, e o AppArmor, da Novell. Saiba também como implementar o mod_security do servidor web Apache, o componente que traz a proteção extra necessária para servir conteúdo dinâmico de maneira segura. ■ Tutorial

❐ Jack no comando

Conheça o Jack, um poderoso servidor de som de qualidade profissional no Linux, mas que pode ser usado como o sistema padrão de um desktop Linux. A vantagem é que ele oferece entrada e saída sincronizada e exata de múltiplos streams de áudio, além de oferecer ótimo desempenho em sistemas que exigem baixa latência (como gravadores em tempo real). Se seus aplicativos multimídia precisam desses recursos, o Jack é a solução. ■

SysAdmin

❐ Samba na cabeça O Samba 4 já está disponível na forma de um “preview de tecnologia”. Entre os principais objetivos dessa versão está um serviço de diretório que pode interoperar com o Microsoft Active Directory. Conheça como será a nova versão desse consagrado servidor de arquivos e de impressão. ■

82

http://supertuxbr.blogspot.com julho 2006

edição 21

www.linuxmagazine.com.br


~ SOLUÇoES LINUX

2 user free! gratuito para até 2 usuários

Transforme UM PC em até DEZ PCs

As soluções Ultra Thin Client da ThinNetworks permitem que até 10 usuários compartilhem os mesmos recursos e a capacidade de um único computador (PC Host) simultaneamente. Todos os usuários utilizam suas estações como se fossem PC’s individuais utilizando o sistema operacional Linux.

Basta conectar um monitor, teclado, mouse e caixas de som (opcional) a um computador já existente, instalar o software e configurar as novas estações. Os usuários poderão trabalhar em aplicações iguais ou diferentes ao mesmo tempo.

Multiplique seu PC A ThinNetworks disponibiliza 3 soluções baseadas no conceito Ultra Thin Client voltadas exclusivamente para área de trabalho Linux. O Desktop Multiplier, o Desktop Server e o DiscoverStation permitem que até 10 usuários compartilhem os mesmos recursos e a capacidade de um único computador simultaneamente. Reunindo um ambiente flexível, simples de baixo custo e baseado em janelas, o Desktop Multiplier, o Desktop Server e o DiscoverStation tornam-se a grande opção pra quem busca mais flexibilidade e redução de custos no ambiente de TI.

Novo Thin Client TC-Net 1 01 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

11 00 1 10 10 1 10 01 0 1 1 0 1 0 1 00 0 1 0 1 1

1 0 10 0 10 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

1 10 0 1 1 0 1 0 1 1 0 0 1 0 1 1 0 1 0 1 0 0 0 1 0 1 1

1 01 0 010 1 01 0 10 1 01 0 1 0 1 0

A ThinNetworks revoluciona o mercado de TI ao apresentar sua nova linha de Thin Client inicialmente composta pelo TC-Net e TC-Net 2. Contando com um sistema operacional exclusivo, o TC-NET OS, essa solução agrega redução de custos de aquisição e atualização, facilidade de instalação e manutenção, maior estabilidade e confiabilidade, maior segurança, baixo consumo de energia e tamanho compacto. O TC-Net conta com recursos de administração centralizados otimizando upgrades de software, manutenções de sistemas e configurações de permissão de usuário. Conta ainda com um servidor VNC para permitir o controle remoto de cada Thin Client, entre vários outros recursos. O TC-OS oferece suporte para clientes CITRIX-ICA, Microsoft RDP, XDMCP, VNC e Tarantella, além de diversas ferramentas e aplicativos para uso local (navegador, protetor de tela e outros).

*Disponível em versão PXE, sem sistema operacional, compatível com LTSP

vendas@thinnet.com.br Tel: (61) 3366-1333

www.thinnetworks.com.br

http://supertuxbr.blogspot.com


Ferramentas de desenvolvimento p. 16 Entrevista: James Reinders, da Intel Julho 2006

a revista do profissional de ti

AIGLX X.org 7 SuperKaramba Anubis ZENworks

Criptografia de emails

Enlightenment Audacity Op LinuxWorld C & Python

Solução centralizada com o Anubis

Novell ZENworks 7.0 Gerenciamento completo de estações e servidores

venda proibida

XGL

» Desenvolvedor da Novell explica o XGL p. 24 » Cabeça da Red Hat descreve o AIGLX p. 28 » X.org 7.0: a grande mudança no X11 p. 32 » Crie widgets do SuperKaramba p. 36 » Aplicativos que se falam com o D-BUS p. 40

p. 22

9 771806 942009

Desktop 3D

Desktop 3D

R$10,90 € 5,50 Ed. 21 07/2006

00021 exemplar de assinante

Número 21

Número 21

Linux Magazine

http://supertuxbr.blogspot.com

LinuxWorld p. 12 Estréia bem sucedida!

p. 64

p. 56

Veja também:

» Beleza diet: Enlightenment p. 44 » Grave podcasts com o Audacity p. 48 » Op: uma alternativa simples ao sudo p. 60 » Bibliotecas C no Python p. 72 W W W. L I N UX M AG A Z I N E . CO M . B R

C D D O A S S I N A NTE : U B U N T U 6 . 0 6 LTS D E S KTO P


Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.