21 - desktop 3d_jul_2006

84
WWW.LINUXMAGAZINE.COM.BR a revista do profissional de ti CD DO ASSINANTE: UBUNTU 6.06 LTS DESKTOP Desktop 3D p. 22 » 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 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 Criptografia de emails p. 64 Solução centralizada com o Anubis Número 21 Julho 2006 Ferramentas de desenvolvimento p. 16 Entrevista: James Reinders, da Intel 00021 Novell ZENworks 7.0 p. 56 Gerenciamento completo de estações e servidores LinuxWorld p. 12 Estréia bem sucedida! exemplar de assinante venda proibida http://supertuxbr.blogspot.com

Upload: -

Post on 22-Mar-2016

318 views

Category:

Documents


48 download

DESCRIPTION

» 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 » 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 a revista do profissional de ti Ferramentas de desenvolvimento p. 16 Entrevista: James Reinders, da Intel Veja também:

TRANSCRIPT

WWW.LI N UXM AGAZI N E.COM .BR

a revista do profissional de ti

CD DO ASSI NANTE: U BU NTU 6.06 LTS DESKTOP

Desktop 3D p. 22» 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

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

Criptografia de emails p. 64

Solução centralizada com o Anubis

Linux M

agazine

Núm

ero 21D

esktop 3D

X

GL

AIG

LX

X.o

rg 7 Su

perKaram

ba A

nu

bis ZEN

wo

rks En

lighten

men

t A

udacity

Op

Linu

xWo

rld C &

Pytho

n

Núm

ero

21

Julh

o 20

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

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

977

1806

9420

09

00

02

1

Novell ZENworks 7.0 p. 56

Gerenciamento completode estações e servidores

LinuxWorld p. 12Estréia bem sucedida!

exem

plar

de

assi

nant

e

vend

a pr

oibi

da

http://supertuxbr.blogspot.com

Multiplique seu PC

Novo Thin Client TC-NetA 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 agreg

e tamanho compacto. Oa 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 TC-Netconta com recursos de 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 dediversas ferramentas e aplicativos para uso local (navegador, protetor de tela e outros).

administração

As soluções Ultra Thin Client da ThinNetworkspermitem que até 10 usuários compartilhem osmesmos recursos e a capacidade de um únicocomputador (PC Host) simultaneamente. Todos osusuários utilizam suas estações como se fossem PC’sindividuais utilizando o sistema operacional Linux.

Transforme UM PC em até DEZ PCs

Basta conectar um monitor, teclado, mouse e caixasde 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 iguaisou diferentes ao mesmo tempo.

[email protected]: (61) 3366-1333

www.thinnetworks.com.br

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

. Reunindo um ambientDesktop 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 e flexível, simples de baixo custo e baseado em janelas, o

tornam-se a grande opção pra quem busca mais flexibilidade e redução de custos no ambiente de TI.

Ç INUSOLU oES L X~

10100101010 101010101010101010101 1100110101100101101010001011

101001010101010101010

10100101010 101010101010101010101 1100110101100101101010001011

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

2 user free!

gratuito para até 2 usuários

http://supertuxbr.blogspot.com

Ponto final ao tédio da CPUPrezado leitor, prezada leitora da Linux Magazine,

usuários de Linux têm o privilégio de poder acompanhar fa-

cilmente 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 ins-

talar 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éc-

nica 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, en-

volvidas 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 alte-

raçõ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

Expediente editorialDiretor Editorial Rafael Peregrino da Silva, [email protected]

Coordenador Editorial e Diretor de Arte Luciano Hagge Dias, [email protected]

Editor Emersom Satomi, [email protected]

Tradução e Revisão Livea Marchiori, [email protected]

Design da Capa Pinball, [email protected]

Centros de Competência Centro de Competência em Software: Oliver Frommel, [email protected] Centro de Competência em Hardware: Mirko Dölle, [email protected] Centro de Competência em Redes e Segurança: Achim Leitner, [email protected]

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, [email protected]

Anúncios: www.linuxmagazine.com.br/Advertise Brasil Claudio Bazzoli, [email protected] Tel.: +55 (0)11 2161 5400 Fax: +55 (0)11 2161 5410 Todos os países (exceto Alemanha, Áustria e Suíça) Brian Osborn, [email protected] Tel.: +49 (0)6509 910 495 Fax: +49 (0)6509 910 497 Alemanha, Áustria e Suíça Osmund Schmidt, [email protected] Tel.: +49 (0)6335 9110 Fax: +49 (0)6335 7779Linux 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 5410Assinaturas: www.linuxnewmedia.com.br [email protected]

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êniaApesar 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. Assume-se 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 DistmagImpressão e Acabamento: ParmaISSN 1806-9428 Impresso no Brasil

em processo de filiaçãoINSTITUTO VERIFICADOR DE CIRCULAÇÃO

www.linuxmagazine.com.br

julho 2006 edição 21 3

Bem-vindo Editorial

http://supertuxbr.blogspot.com

Cartas 06

Notícias 10Mundo livre em revista 10Com o pé direito 12LinuxWorld estréia em São Paulo.

Entrevista – James Reinders, da Intel 16O que a Intel reserva aos programadores brasileiros?

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

Capa 22Vida em 3D 22Uma nova era se inicia no desktop Linux.

Muito além da decoração 24Xgl, OpenGL e Compiz.

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

X Novo 32X.Org 6.9/7.0: a nova geração do X11.

Construção visual 36Crie temas do SuperKaramba.

Tráfego inteligente 40Comunicação entre processos com D-Bus e HAL.

4

Índice Linux Magazine

julho 2006 edição 21

12 Com o pé direitoAlto nível. Essas duas palavras resumem o

que foi a primeira edição brasileira da Linux-

World, 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 turbinadaConfi ra nessa entrevista exclusiva com James

Reinders, da divisão de ferramentas de desen-

volvimento da Intel, as novidades e soluções da companhia

para o mercado brasileiro. Principalmente no ramo de com-

piladores e aplicativos de otimização de desempenho.

22 Vida em 3DAntes do lançamento do Windows Vista®, a

era dos desktops com efeitos acelerados no

hardware gráfi co 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 signifi cativa

no X11 em mais de 10 anos de desenvolvimento.

Aprenda também como construir um widget do

SuperKaramba, o sistema que integra belos e funcio-

nais 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

efi ciente 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

��

��

��

���

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

55 SysAdmin55 Coluna do Augusto

Cadê o meu desktop? Foi para a web.

56 Gerente novoAnálise do gerenciador de sistemas ZENworks 7.

60 Root fácilOp: alternativa ao sudo.

64 Proteção egípciaCriptografi a de emails com o Anubis.

72 Programação72 Reutilização de código

Como usar bibliotecas C no Python.

76 Serviços76 CD do Assinante

Dapper Drake, o melhor Ubuntu de todos os tempos.

78 Linux.local80 Mercado / Eventos / Anunciantes82 Na próxima edição

48 Tutorial48 Estúdio caseiro

Grave podcasts com o Audacity.

44 Análise44 Faça-se a luz!

Explorando o ambiente gráfi co E-17.

www.linuxmagazine.com.br

5

Linux Magazine

julho 2006 edição 21

64 Proteção egípciaConfigurar 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.

44 Faça-se a luzApesar 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áfi co

apenas por um motivo: ele

segue um caminho bem

próprio na defi nição de pa-

drões para uma interface

gráfi ca. Mas, além disso, é

excepcionalmente agradá-

vel e leve também.

56 Gerente novoConheça o ZENworks Linux Management 7,

o conjunto de aplicativos da Novell para ge-

renciar 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.

chegam da rede. Acompanhe nosso passo-a-passo para

começar uma implementação Anubis.

http://supertuxbr.blogspot.com

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 apresenta-

do na revista todos os meses. Meu email

é sobre uma publicidade em específi co.

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érfl uo, nada mais.

Flávio

Flávio, entendemos que o conteúdo do

anúncio seja responsabilidade e prerro-

gativa 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

apenas a nós ou quando está a nosso

favor. A Microsoft desejou se comunicar

com a comunidade de leitores da Linux

Magazine e trazer a eles a sua mensagem.

Por mais que não concordemos com o

seu conteúdo, seria um contra-senso de

nossa parte tolher a empresa desse direi-

to somente por que a sua propaganda

é contrária ao Linux. A empresa pagou

pela publicidade como qualquer outra

e tem direito de anunciar. Como disse

Voltaire, “posso não concordar com o que

dizes, mas defenderei até a morte o teu

direito de dizê-lo!”

Pensamos bastante antes de aceitar o

anúncio. Perceba que a Linux Magazine

é um veículo de mídia independente, que

tem sua linha EDITORIAL especializada

em Linux e Tecnologias Abertas em ge-

ral. Essa linha é imutável! Mas, na par-

te publicitária, QUALQUER anunciante

que se sujeite às condições comerciais

da empresa tem o direito de veicular sua

propaganda, desde que o conteúdo do

anúncio não seja ilegal ou ofensivo. Assim,

a decisão de aceitar o anúncio na revis-

ta foi, pessoalmente, difícil, mas, reitero,

temos que ser coerentes com as nossas

convicções e nossos ideais de liberdade.

Como dito acima, a Microsoft já publicou

anúncios com a gente na Alemanha e, da

primeira vez que isso ocorreu, doamos

toda a quantia paga ao projeto Debian.

Depois de um certo tempo, quando eles

perceberam que os anúncios na Linux

Magazine alemã não traziam retorno

e que eles estavam patrocinando tanto

a revista quanto os projetos de Software

Livre que eles tanto combatem, pararam

de anunciar.

Esperamos ter esclarecido a nossa

posição. Sugerimos apenas que procure

nos julgar pelo nosso conteúdo editorial

e pelas nossas atividades em prol do

Software Livre e não pelo conteúdo das

propagandas dos nossos anunciantes (que

estão, naturalmente, tentando vender o

“seu peixe”).

Rafael Peregrino - Editor

Erratas Meteorologia Na Linux Magazine 19, foi publicado um erro de informação na entrevista “Os pingüins da Band”. Por engano dos entrevistados, o nome da empresa de meteorologia citado na pág. 13 foi publicado de maneira incorreta. Trata-se da SOMAR (Southern Marine Weather Services) e não da ClimaTempo.

Inicialização no Debian Na Linux Magazine 19, foi publicado um erro na pág. 34, no artigo “Turbina de Dados”. O nome correto do script de inicialização do De-bian é /etc/init.d/rc . O erro foi notado pelo leitor João Carlos Gomes da Costa.

Cartas

6

Escreva pra gente

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

www.itautecshop.com.brC O M P R E D I R E T A M E N T E D O F A B R I C A N T E

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

PRESENTE EM MAISDE 2.700 CIDADES.

Ofertas válidas até 15/7/2006 ou enquanto durarem os estoques. Celeron, Celeron Inside, Centrino, o logotipo Centrino, Core Inside, I ntel, 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ãode crédito citado, sujeito a confirmação da disponibilidade da linha de crédito para as localidades e limite para a operação. Con sulte nossa Central de Atendimento para informações sobre outras condições de financiamento para pessoa física ou jurídica pelo telefone0800-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 onsite, 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 56Kbps 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 decomercialização estão disponíveis em nosso site e no Televendas. Fica ressalvada eventual retificação das ofer tas aqui veiculadas. Quantidade: 10 unidades de cada. Empresa/produto beneficiado pela Lei de Informática. Fotos meramente ilustrativas.

DPZ

Foto

ilu

stra

tiva

.

Foto

ilu

stra

tiva

.

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

Itautec MinitorreCódigo da oferta: IN-521LX

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*****

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

Toda a liberdade que você precisa para trabalhar com maismobilidade, usando a internet sem fio, e ainda operar comsoftware livre.

É mais segurança, porque a Itautec oferece suporte técnicoespecializado via internet ou pelo telefone, serviços de tuninge 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. É maisfacilidade e maior flexibilidade no seu dia-a-dia. Na hora detrabalhar, não se sinta preso. Seja Librix.

Servidor Itautec LP100Código da oferta: SI-305LX

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 sistemaoperacional • 1 ano de garantia on site***

Parcelas a partir de R$ 71,52*

Financiamento em até 36xR$ 2.099,00 à vista

• Compre com 256 MB de memória eleve com 512 MB, sem custo adicional• Software de gerenciamento: AutoManager Server Monitor

Monitor de 15” incluso

R$1.249,00 à vista

ou 24 parcelas de R$ 57,28

A solução completa.

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

Cyan Magenta Yellow Black

Os: 605336 Form: 204x275 Operador: IlthonAgência: DPZ Cliente: DPZMídia: Revista Perfil: Analógico Prova: Chromedot

605336_204x275UCR 6/27/06 12:36 AM Page 1

http://supertuxbr.blogspot.com

✎ Autopackage Tenho lido algumas discussões a res-

peito 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 desenvol-

vedores 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 pa-

cotes 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 pa-

ckage XaraLX sem problema nenhum

(principalmente dependência), de

forma totalmente intuitiva em am-

biente gráfico. Instalei ainda o jogo

SCOURGE também sem problema

algum.

Nunca pensei que um dia insta-

laria 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 desenvol-

vedores 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. ■

✎ iptables Gostaria de fazer uma sugestão para al-

guma 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 Netfi lter , o

Iptables , como criar as regras, exemplos

comuns tais como redirecionamento de

porta para uma DMZ, por exemplo, ma-

tches do Iptables (módulos limit , string ,

mac , state etc..). ■

João Carlos Gomes da Costa

✎ 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 aderin-

do ao “cartão de ponto” com sistemas

de biometria.

Uma solução com Linux ( Slack-

ware ) + 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á marcan-

do a entrada ou saída. ■

Rafael Tomelin

✎ Problema de envio Em primeiro lugar, gostaria de para-

benizar a revista pelo excelente tra-

balho (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 che-

gou aqui em Salvador. Estou achando

que tem alguma coisa errada. Vocês

poderiam me explicar? Comprei a pri-

meira edição da EasyLinux , mas a

LM nada. Tem algum problema com o

envio para o Nordeste? E, aproveitan-

do o email, gostaria de saber quando

vocês colocaram alguma coisa sobre

programação de clusters e de alta per-

formance. 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, con-fi guraçõ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 felizmen-te!), não somos uma empresa de suporte a distribuições e aplicativos Linux.

Cartas

8

Escreva pra gente

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

Please examine materials carefully. For concerns, immediately contact Jamie Isanhart at 312.220.3629.

Client: Oracle Corporation

File Name: 405G1029.indd

Description Short: Grid_ConnectDbSrvr/

Brazil#

Production Category: Print

Palette: 4/C

Release Date: 04.20.05

Size: Page

Non Bleed:

Bleed: 215 x 295 mm

Trim: 205 x 275 mm

Live:

Java

Oracle Grid

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.

oracle.com/gridou ligue para 0800.901.985

Oracle GridÉ rápido... é barato...

E está sempre disponível

Obs.: “Sempre disponível” indica que, se um servidor cair, seus aplicativos continuam rodando.

Todos os seus bancos de dados

Em GRIDSem desperdício de capacidade

Sem desperdício de dinheiro

Sem ponto único de falha

http://supertuxbr.blogspot.com

Mundo livre em revista

❐ 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. ■

CurtasOnda de aquisições OracleRecentemente, 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, fornece-dora 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 configu-rações Linux (Suse e Red Hat) ideais para as soluções Oracle (http://tinyurl.com/muthn).

Migração em concessionáriaA 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, desenvolve-dora 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 TallardA 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 ex-clusiva 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 pro-dutos relacionados à Internet e comunicações.

Thin clients BlanesA 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).

❐ MS Office vai abrir e salvar Open Document

A Microsoft anunciou que a próxima ver-

sã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 de-

manda por esse formato por parte de gover-

nos. 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. ■

Notícias

10www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

CurtasPrêmio para desenvolvimentoA 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 à pesqui-sa 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ª Se-mana 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 biA IBM investirá US$ 2,2 milhões na expan-sã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 Cam-pinas, na Unicamp, e também está sendo expandido. O Centro de Tecnologia Linux no Brasil, que conta atualmente com 10 profis-sionais, comportará agora 45 especialistas em desenvolvimento de componentes inter-nos do Linux. Apenas em Hortolândia, mais de 150 mil dólares estão sendo investidos em equipamentos.

HP na Santa IfigêniaAtravés de uma parceria com a distribuidora Alcatéia, computadores HP dx2025 (com Mandriva pré-instalado) estão sendo vendi-dos oficialmente na rua Santa Ifigência, tradi-cional 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 pes-quisa da IDC. Também é líder no mercado de computação de alto desempenho (HPC - High Performance Computing).

Insigne Six-SystemA 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.

❐ Xandros em pt-brA empresa XandrOS Inc. também está

chegando oficialmente ao Brasil. O es-

critório em SP deve ser inaugurado em

breve, conforme anunciou James Largot-

ta, 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

de ser usada por administradores sem

experiência específica com Linux.

Não perca, na próxima edição, a entre-

vista completa com James Largotta. ■

❐ Red Hat abre escritório em SP

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. Aumen-

ta 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 comunida-

des 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. ■

❐ Suporte 0800 para LinuxA Intel e a Stefanini IT Solutions anun-

ciaram 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, termino-

logias, 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 Com-

putador para Todos. ■

❐ Pingüim vira estrela em feira de bancos

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 india-

nas Tata Consultancy Services, Infosys

Technologies e Patni Computer Systems.

O CIAB Febraban foi realizado entre 21

e 23 de junho, em São Paulo. ■

www.linuxmagazine.com.br

julho 2006 edição 21 11

Notícias

http://supertuxbr.blogspot.com

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

LinuxWorld™ Conference & Expo 2006 no Brasil

Com o pé direito

E ntre os dias 23 e 26 de maio deste

ano, no Centro de Convenções do

hotel Gran Meliá WTC São Paulo,

após quase um ano de preparação, a pri-

meira edição brasileira da LinuxWorld™

Conference & Expo se tornou finalmente

uma realidade – e um sucesso “de pú-

blico e crítica”. A união dos esforços de

representantes do mercado de soluções

abertas no Brasil, bem como de grandes

usuários corporativos de tais soluções

– que formaram o conselho consultivo do

evento –, aliada à larga experiência de

gestão de eventos da subsidiária brasilei-

ra da Reed Exhibitions, maior promotora

de feiras de negócios e eventos corpora-

tivos do mundo, foram decisivos para o

resultado da conferência. Foram diversas

reuniões com o objetivo de imprimir à

edição local da LinuxWorld “a cara” do

Brasil, criando uma grade de palestras,

casos de sucesso de implementação e

painés de qualidade, e que atendesse o

nosso mercado.

Todo esse trabalho de preparação re-

sultou em alguns números impressio-

nantes, especialmente considerando que

se trata da primeira edição do evento

no país: foram 6 keynotes speakers e 99

palestrantes, três dos quais convidados

especiais. Com 2.500 visitantes – 10%

dos quais conferentes –, 78 sessões de

conferências, divididas em cinco macro-

temas, e 40 expositores, a LinuxWorld

já se estabeleceu como evento perene,

superando as expectativas de David

Korse, presidente e CEO do IDG World

Expo, que, em entrevista exclusiva à

Linux Magazine [1], disse apenas esperar

“que todo mundo que estiver presente

ache que foi um bom investimento do

seu tempo. Que a primeira edição do

evento no país pavimente a via e crie

‘momento’ para uma segunda edição, e

este para uma terceira, até que o evento

se estabeleça no mercado.”

BastidoresÉ interessante notar como a trajetória que

levou ao acontecimento – e ao sucesso

– dessa conferência foi realizada de forma

colaborativa, bem ao estilo das soluções

apresentadas no evento. Em outubro de

2004, durante a realização da LinuxWorld

Conference & Expo em Frankfurt, Alema-

nha, 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 naque-

la 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 resulta-

dos todos conhecemos.

Local e infraestruturaO espaço do Centro de Convenções Gran

Meliá WTC São Paulo estava “na medida”

para o número de participantes e ativida-

des programadas para este ano. Diante

do sucesso alcançado, é questionável se

o mesmo espaço irá ser capaz de com-

portar 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 par-

ticipantes 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

Bom programa,

bem diversificado e com

bons palestrantes

Notícias

12

Evento

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

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ínioPraticamente todas as empresas de ex-

pressã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éc-

nicos 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 princi-

palmente 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, ofe-

recendo linhas de produtos diretamente

concorrentes. A Itautec, enquanto também

produtora de hardware, desfilou uma série

de servidores, desktops e laptops topo de li-

nha 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 tam-

bém para apresentar as outras soluções

da empresa, tais como ferramentas de

colaboração, de gerenciamento de iden-

tidade e ciclo de vida de colaboradores

em uma empresa.

No estande da Red Hat ocorriam apre-

sentações periódicas sobre soluções e

novidades da empresa, que dispõe ago-

ra de uma subsidiária nacional (mais a

respeito a seguir).

A Intel patrocinou o CyberCafé Garden,

um espaço aberto aos visitantes do even-

to 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 des-

taque: 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

fariam inveja ao melhor dos PCs. Do

lado do software, o sistema usa o NX

para trazer ao sistema local uma inter-

face 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 dei-

xe 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 mos-

trando 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 Soft-

ware 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.

www.linuxmagazine.com.br

julho 2006 edição 21 13

Evento Notícias

http://supertuxbr.blogspot.com

NovidadesAlém da chegada da Xandros no Bra-

sil, houve também outros anúncios de

expressão, naturalmente reservados

a sete chaves para “causar sensação”

durante o evento. Dentre eles, desta-

camos a tão aguardada chegada “de

mala e cuia” da Red Hat no Brasil e

na Argentina. Em uma coletiva de im-

prensa, Alex Pinchev, vice-presidente

executivo global de vendas da empresa,

anunciou a aquisição das operações

locais da Latin Source Technology, seu

distribuidor master. Com a Red Hat

Brasil, com sede em São Paulo, e a Red

Hat Argentina, com sede em Buenos

Aires, a empresa expande sua presença

na região nas áreas de suporte, treina-

mento e vendas, bem como na oferta

de soluções localizadas.

Adicionalmente, a empresa aprovei-

tou a oportunidade para formalizar a

contratação de Marcelo Tosatti, um

dos nomes de maior destaque no cená-

rio de desenvolvimento de software de

código aberto, que vai ocupar o cargo

de engenheiro de software e progra-

mador, tendo como principal função

atuar no projeto One Laptop Per Child

(OLPC), cujo objetivo é desenvolver

um laptop de US$ 100, destinado a

crianças em idade escolar, principal-

mente de países em desenvolvimento.

Tosatti também será responsável pelo

kernel Linux do sistema. O desenvol-

vimento do hardware do OLPC está a

cargo da AMD.

A Novell aproveitou o evento para

anunciar o lançamento mundial da No-

vell® Open Workgroup Suite. A solução,

uma combinação inteligente de ferra-

mentas colaborativas proprietárias da

Novell com aplicativos de código aberto,

faz parte da estratégia Software for the

Open Enterprise, lançada pela empresa

na edição deste ano do BrainShare® [2],

e oferece ao mercado corporativo uma

solução flexível baseada em softwares

padronizados. O pacote é composto pelo

Novell Open Enterprise Server, Novell

GroupWise 7, ZENworks Suite 7, o siste-

ma operacional Novell Linux Enterprise

Desktop, e o conjunto de aplicações para

escritório OpenOffice.org 2.0 para Win-

dows® e Linux. Segundo Ricardo Fer-

nandes, presidente da Novell do Brasil,

comparado ao principal concorrente, o

produto da Novell pode gerar uma eco-

nomia de mais de 70%.

Outro anúncio importante – que faz

parte da estratégia da Intel de viabilizar

um ecossistema de soluções baseadas em

código aberto para o mercado corpora-

tivo – foi a criação, com a Stefanini, do

primeiro canal de suporte a usuários de

software livre. Através de uma central

de atendimento exclusiva, os usuários

do sistema vão poder, a partir de agora,

tirar dúvidas específicas sobre recursos,

configurações, terminologias técnicas,

entre outras. Segundo Zenos Strazzeri

Araujo, diretor de serviços para infra-es-

tutura da Stefanini, “a demanda pelo uso

desse tipo de plataforma tem sido cres-

cente. Entretanto, não existia nenhum

atendimento profissional para tirar as

principais dúvidas dos usuários. Por isso,

a criação do 0800. A expectativa é que o

serviço se torne uma grande central de

atendimento para o sistema Linux que

está em crescimento contínuo. Para ter

uma idéia do tamanho do mercado, de

acordo com o levantamento ‘Impacto

do Software Livre e de Código Aberto

na Indústria de Software do Brasil’, di-

vulgado pelo Ministério de Ciência e

Tecnologia, o Linux pode assumir uma

fatia de 18% do mercado mundial de

sistemas operacionais até 2007, saindo

dos 9% atingidos em 2003.”

Além desse comunicado, a Intel anun-

ciou, em parceria com a Linux New Me-

dia do Brasil, o lançamento do Guia de TI

– Soluções em Tecnologias Abertas, com

o objetivo de consolidar as informações

sobre soluções e sistemas baseados em

Software Livre e de Código Aberto (SL/

CA), além de fornecer um catálogo de

seus fornecedores.

Quadro 1: Bill Hilf versus Maddog – ou será que é a favor?De acordo com Sulamita Garcia, da EDS Brasil, “o discurso de Bill Hilf, no geral, todo mundo pode 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 exigir que o cliente mude toda sua estrutura por causa de determinada peça do ambiente”. Bill Hilf deixou claro que a Microsoft não se aproxima do código aberto por questões filosóficas, mas sim porque faz sentido do ponto de vista de negócios.

Seguindo o velho preceito inglês: “Mantenha seus amigos perto, e seus inimigos mais perto ainda”, a Microsoft está fazendo “a lição de casa”. Como comentamos na cobertura do FISL, na edição anterior 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 ameaça do Linux e do Software Livre e de Código Aberto à supremacia atual da Microsoft é “tão certa como o nascer do sol”.

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, da Mandriva Conectiva. A tônica foi de discordância pacífica em alguns pontos, mas forte concor-dância em muitos deles, especialmente no que tange à liberdade de escolha que se deve oferecer ao cliente e à necessidade de fornecer interoperabilidade, sob pena de perder negócios do contrário.

“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í: deixe-me escolher o que eu vou fazer com meu trabalho; não me obrigue a seguir seu caminho ou sair do caminho, deixe-me escolher o meu caminho”.

Notícias

14

Evento

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

Como ocorre em toda LinuxWorld

Conference & Expo ao redor do mun-

do, 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 par-

ticipantes nas provas.

PalestrasAs palestras foram mais um ponto alto

do evento. Apesar do número de con-

ferentes 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 Sour-

ce. 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, vice-

presidente e gerente geral do grupo de

soluções de plataformas para canal da

Intel, o onipresente Jon ‘maddog’ Hall,

diretor executivo da Linux Internatio-

nal, William Maggs, ex-CTO da Palm

e atual diretor de tecnologia da Moto-

rola, 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 Vi-

nícius Ferreira Mazoni, secretário execu-

tivo 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 parti-

cipaçã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 apli-

cativos e programação), vale destacar

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 apresen-

tou uma análise comparativa de desem-

penho 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 debatesPara todos os gostos, de todos os tama-

nhos, 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 espe-

rado, foram dignos de nota o de Linux

nas Forças Armadas e o que tratava da

temática da liberdade de escolha ver-

sus a adoção do Software Livre como

Política Pública.

Nos vemos em 2007!Diante de tanto sucesso, não será surpre-

sa que as cotas de patrocínio da edição

do ano que vem já tenham sido reserva-

das por 95% dos patrocinadores.

Para concluir, emprestamos as palavras

de Sulamita Garcia, resumindo as impres-

sõ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 excen-

tricidades 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.

Figura 2: Encontro inusitado? Nem tanto: muita concordância entre Maddog e Bill Hilf (Microsoft).

www.linuxmagazine.com.br

julho 2006 edição 21 15

Evento Notícias

http://supertuxbr.blogspot.com

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

James Reinders, diretor de marketinge desenvolvimento de negócios da Intel

Compilaçãoturbinada

Antes de integrar a divisão de desen-

volvimento de produtos de software

da Intel, James Reinders participou

de outros projetos interessantes. Entre

eles, o desenvolvimento do primeiro su-

percomputador TeraFLOP do mundo, o

ASCI Red, e dos processadores Itanium e

Pentium 4. Fora seu trabalho com compi-

ladores, hoje sua especialidade.

Reinders trabalha na Intel desde 1989.

Atualmente, é diretor de desenvolvimen-

to de negócios e marketing dos aplicati-

vos voltados para programadores, além

de ser evangelista-chefe e porta-voz

dessa divisão da companhia.

Também é o autor do livro VTune Per-

formance Analyzer Essentials (http://www.

intel.com/intelpress/sum_vtune.htm), publica-

do pela Intel Press.

Conheça, na entrevista a seguir, as no-

vidades que a empresa vem preparando

para programadores Linux.

Linux Magazine» Você poderia falar um

pouco sobre sua divisão na Intel e o que

ela oferece para o ambiente Linux?

James Reinders» Nossa divisão é parte da

Intel Software Solutions Group (“grupo de

soluções de software”), que oferece pro-

dutos e serviços para desenvolvedores do

foto: cortesia Intel

mundo todo. Criamos produtos de desen-

volvimento, incluindo compiladores C++,

bibliotecas, ferramentas de otimização de

performance e soluções bastante inova-

doras para desenvolvimento, depuração

e otimização de programas concorrentes

(para múltiplos núcleos e clusters). Nos-

sos produtos são muito populares entre

desenvolvedores de software que desejam

que seus aplicativos tenham a mais alta

performance possível.

LM» Quais são as estratégias da divisão

para a América Latina?

JR» A América Latina é um lugar estimu-

lante, com uma porção de desenvolvedores

talentosos. Fiquei muito impressionado

com os programadores que encontrei em

minhas visitas. Vi uma excitação, no mí-

nimo, igual à de outras partes do mundo.

Um monte de gente criativa buscando

explorar seus computadores ao máximo.

Isso também os torna uma excelente opção

para o que estamos pretendendo.

A Intel tem muitos projetos na América

Latina, com enfoque no talento local. Te-

mos alguns programas em fase inicial na

Argentina, atividades no Brasil e projetos

menores espalhados por mais alguns

lugares. Acho que você pode esperar

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 desen-

volvedores 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 especialis-

tas e trabalhar direta e indiretamente

com as pessoas.

LM» Qual é a participação e a importân-

cia do Linux no negócio de ferramentas

de desenvolvimento da Intel?

JR» O Linux é importante para a Intel por-

que ele é importante para nossos clientes.

Eles estão interessados em tirar o máximo

de seus programas, não importando se

rodam em Linux, Windows ou Mac OS.

Assim, damos suporte às três plataformas.

Nosso suporte Linux é muito forte – e

muitos de nossos clientes produzem ver-

sões de seus aplicativos tanto para Linux

quanto para Windows, usando compila-

dores para ambos. É bom ter os dois. Os

clusters também formam uma boa parte

do nosso trabalho com Linux.

Notícias

16

Entrevista: Intel

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

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 con-

tribuiçã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 ên-

fase na portabilidade entre processador

e arquiteturas, e de maneira a obter um

resultado bastante genérico. Nosso com-

pilador, por outro lado, é escrito com

um forte foco na otimização para nossa

arquitetura. Definitivamente, isso sig-

nifica 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 compati-

bilidade 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 fa-

bricantes além da Intel?

JR» Sim. Desenhamos nossos compila-

dores e bibliotecas para oferecer um

desempenho superior na indústria, em

todos os processadores Intel e com-

patíveis.

Fizemos um ótimo trabalho conseguin-

do uma excelente performance indepen-

dente 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 compila-

dores, porque eles são muito bons.

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 exi-

ge 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 im-

portantes, 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 pro-

dutos apenas em inglês. Gostaria de ex-

pandir isso um dia, mas nossos produtos

ainda não estão prontos para isso. Nossa

maior prioridade é ter profissionais lo-

cais 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éc-

nica distribuída pelo mundo todo. Nossos

engenheiros consultores técnicos viajam

freqüentemente para o Brasil para treinar

nossos clientes e demonstrar nossas ferra-

mentas. As pessoas podem enviar mensa-

gens para nosso email softwarechannel@intel.

com, para mais informações.

LM» Vocês possuem programas especiais

de descontos para universidades e orga-

nizaçõ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 qual-

quer 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 nor-

malmente 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

“Para assegurar que os usuários

tenham opção, temos trabalhado

duro na compatibilidade com o GCC.”

www.linuxmagazine.com.br

julho 2006 edição 21 17

Entrevista: Intel Notícias

http://supertuxbr.blogspot.com

para dar suporte a uma ampla gama de

funções matemáticas padrão, incluindo sol-

vers. Nossa ferramenta de análise de perfor-

mance, 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 por-

tabilidade 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 per-

mite 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 are-

na 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 per-

formance confiam em todos os nossos

produtos para produzir aplicativos do

tipo. A maioria dos 500 supercomputa-

dores mais rápidos (com processadores

Intel) usa nossos softwares de desenvol-

vimento. Também vemos o mesmo in-

teresse 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 so-

luções proprietárias. A Intel tem pessoas

trabalhando no projeto de código aberto

Grid Programming Environment, para aju-

dar a facilitar a criação dos aplicativos

grid. Todos os nossos compiladores, bi-

bliotecas, ferramentas de otimização de

performance e ferramentas de threading

podem ajudar.

LM» Processadores de núcleo múltiplo

são um tema quente. Como os compi-

ladores Intel podem ajudar?

JR» Os compiladores Intel têm suporte

OpenMP, o que expande as linguagens

C++ e Fortran em recursos de paralelis-

mo. O OpenMP dispõe de suporte bastante

abrangente, e a Intel é líder nessa área por-

que 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.

Além disso, temos o Intel Thread Che-

cker 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 Perfor-

mance Analyzer ajudam a melhorar o de-

sempenho por terem sido projetados para

lidar muito bem com threads. Nossas

bibliotecas (IPP e MKL) realizam mui-

tas 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 Soft-

ware 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 desen-

volvedores – então preferimos participar

de projetos já existentes. Estamos muito

envolvidos com o Eclipse.

Em outros casos, consideramos que nos-

sas 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 me-

lhor é 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 brasilei-

ras tem mais de 3.000 servidores rodando

aplicativos de análise sísmica e de reser-

vatórios, desenvolvidos com compiladores

e ferramentas da Intel. A maioria dos cen-

tros nacionais de alta performance está

usando nossas ferramentas HPC. Outras

são o maior centro de previsão de tem-

po no Brasil, um grande fabricante de

aeronaves, bem como muitos centros de

pesquisa e universidades. ■

“A maioria dos centros nacionais

de alta performance estão usando

nossas ferramentas HPC.”

Notícias

18

Entrevista: Intel

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

por Zack Brown

Notícias do kernel

❐ Kit para driversGreg 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 arroja-

da 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 dis-

poníveis para o desenvolvimento de dri-

vers em outros sistemas, o trabalho de

Greg chega tarde. ■

❐ Pingüim virtualO Linux está gradativamente se tornan-

do um sistema operacional virtual, que

um dia será capaz de rodar múltiplas

instâncias de espaço de usuário, inde-

pendentes umas das outras. Mas, neces-

sariamente ainda não está claro como

chegaremos lá, a partir de onde estamos.

Colegas como Andrew Morton sentem

que virtualizar o SO é um objetivo que

realmente vale a pena, envolvendo uma

extensão natural das funções que o

Linux já vem cultivando.

Mas ainda há um monte de código e

uma pilha de funcionalidades necessá-

rias antes que o Linux possa realmente

começar a mostrar uma virtualização

poderosa. Como todo o código atual e

futuro será integrado?

Obviamente, conforme Andrew apon-

tou, é importante evitar a integração de

uma infraestrutura preparatória gigan-

tesca que nunca será usada. Integrações

tão grandes eram de se esperar, mas

elas normalmente são bem dolorosas.

A possibilidade que chega mais per-

to das atuais políticas de submissão

de patches é a integração de funções

em pequenas porções que realmente

agregam valor do modo como estão.

Andrew acredita que esse é o método

mais apropriado.

Entretanto, o processo mais provável

será apenas ir levando, lutando para

posicionar cada novo pedaço assim

que ele aparece; algumas partes demo-

rando e inchando mais; com erupções

de flame wars – cujas conseqüências

se arrastam por anos – sobre este ou

aquele pequeno elemento, ou o cami-

nho que o projeto deveria seguir. Sem

um plano claro dos desenvolvedores da

virtualização, esse será o cenário mais

provável. Conforme disse John Kelly

nesse debate, “em relação aos conflitos,

por que não cruzar a ponte quando se

chega nela?” ■

❐ Status do kernel 2.4Recentemente escrevi que a árvore 2.4

entrou em “modo de manutenção profun-

da”, sem nenhum driver sendo portado

de volta da versão 2.6; e que isso signi-

ficava que não havia mais uma árvore

“estável”, dado que a 2.6 ainda estava em

pleno desenvolvimento.

A situação não mudou, mas Marcelo

Tosatti publicou recentemente o Linux

2.4.33-pre3 após um longo silêncio, com

mais de uma dúzia de patches aplicados;

apenas uma gota no oceano comparados

às centenas que normalmente entram em

cada versão 2.6. A maioria dos patches

2.4.33-pre3 são atualizações de seguran-

ça, mas um patch corrigiu uma licença

que faltava para o módulo quota_v2.

Essa última atualização de Marcelo

confirma o status da árvore 2.4 de não

aceitar mais nada a não ser as correções

mais cruciais. ■

Sobr

e o

auto

r

A lista de discussão linux-kernel é o núcleo das atividades de desenvolvimento do kernel. Zack Brown consegue se perder nesse oceano de mensagens e extrair significado! Sua newsletter Kernel Traffic já está completando cinco anos.

www.linuxmagazine.com.br

julho 2006 edição 21 19

Kernel Notícias

http://supertuxbr.blogspot.com

Dicas de [In]segurança

❐ PHPO PHP é um linguagem de scripts em-

barcada em HTML, comumente usada

com o servidor web Apache. A função

phpinfo() não limpa cadeias de ca-

racteres longas adequadamente. Um

invasor poderia usar isso para efetuar

ataques do tipo cross-site scripting con-

tra páginas que possuem scripts PHP

públicos que chamam a função phpin-

fo() (CVE-2006-0996).

Foi verificado também que a função

html_entity_decode() não tem segu-

ranç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 desco-

berto no servidor uw-imap (University

of Washington's IMAP Server). O php-

imap é compilado junto às bibliotecas

estáticas c-client do imap, por isso

precisou ser recompilado junto à ver-

sã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-X11O Xorg é uma implementação de códi-

go 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 exten-

são Render do Xorg foi descoberta. Um

cliente malicioso autorizado poderia

explorar essa falha para causar uma

negação de serviço (crash) ou poten-

cialmente executar código arbitrário

com privilégios de root no servidor

Xorg (CVE-2006-1526). ■

Referência no Gentoo: GLSA 200605-02

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

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

❐ ClamAVO ClamAV é um anti-vírus GPL. Foi des-

coberto 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

parser de cabeçalhos de binários Win-

dows (Portable Executable) do ClamAV

(CVE-2006-1614) ; e David Luyer descobriu

que o aplicativo pode ser induzido a re-

alizar 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 explora-

do quando a opção ArchiveMaxFileSize

está desabilitada.

Ulf Härnhammar e um pesquisador

alemão anônimo descobriram uma vul-

nerabilidade no protocolo do freshclam,

um utilitário de linha de comando res-

ponsável por baixar e instalar atuali-

zações de assinaturas de vírus para o

ClamAV. Isso poderia levar a uma ne-

gaçã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 Mandriva: MDKSA-2006:080

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

❐ 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

Notícias

20

Segurança

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

aplicam ao navegador Firefox e ao cliente

de email Thunderbird, ambos baseados

no Mozilla.

Diversos bugs foram encontrados no

modo como o Mozilla processa java-

script malformado. Um agressor poderia

construir uma página de Internet para

atacar e modificar o conteúdo de uma

outra página, provavelmente rouban-

do informações confidenciais ou con-

duzindo um ataque do tipo cross-site

scripting (CVE-2006-1731, CVE-2006-1732,

CVE-2006-1741).

Vários bugs também foram encontra-

dos no modo como o Mozilla processa

determinadas ações javascript. Uma

página de Internet especialmente de-

senhada poderia executar instruções

javascript arbitrárias com as mesmas

permissões do componente chrome,

permitindo que a página roubasse in-

formações confidenciais ou instalasse

programas maliciosos (CVE-2006-1727, CVE-

2006-1728, CVE-2006-1733, CVE-2006-1734, CVE-

2006-1735, CVE-2006-1742).

Alguns bugs foram ainda encontrados

no modo como o Mozilla processa pági-

nas de Internet malformadas. Uma pági-

na 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ão-

padrã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

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 po-

deria ser transferido para o invasor

(CVE-2006-1729).

Foi localizado um bug no modo como

o Mozilla executa encaminhamentos in-

line de emails. Se um agressor conseguir

levar o usuário a encaminhar um email

maliciosamente criado como conteúdo in-

line, é possível que a mensagem execute

javascript com permissões do componen-

te 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çaDistribuição Referência de Segurança ComentáriosConectiva Info: distro2.conectiva.com.br/

Lista: [email protected] e distro2.conectiva.com.br/lista Referência: CLSA-... 1

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.

Debian Info: www.debian.org/security Lista: lists.debian.org/debian-security-announce Referência: DSA-… 1

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.

Gentoo 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

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.

Mandriva Info: www.mandriva.com/security Lista: www1.mandrdrivalinux.com/en/flists.php3#2security Referência: MDKSA-… 1

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 Info: www.redhat.com/errata Lista: www.redhat.com/mailing-lists Referência: RHSA-… 1

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 Info: www.slackware.com/security Lista: www.slackware.com/lists (slackware-security) Referência: [slackware-security] … 1

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 Info: www.novell.com/linux/security Lista: www.novell.com/linux/download/updates Referência: suse-security-announce Referência: SUSE-SA … 1

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 atua-lizaçõ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.

www.linuxmagazine.com.br

julho 2006 edição 21 21

Segurança Notícias

http://supertuxbr.blogspot.com

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

OpenGL e o desktop Linux

Vida em 3D

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 de-

senvolvedores 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% ca-

paz 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

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 preocu-

paçõ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 in-

terface de programação gráfica OpenGL.

A integração do OpenGL à área de tra-

balho já está encaminhada nos mundos

Windows e Mac. E dois sistemas, conhe-

cidos como Xgl e AIGLX, oferecem agora

alternativas de como integrar o OpenGL

ao desktop Linux.

OpenGLO OpenGL é uma especificação de biblioteca

gráfica criada, originalmente, pela Silicon

Graphics. A especificação oferece um pa-

drã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 progra-

mas 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 expe-

riê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 permi-

te que o hardware gráfico assuma uma

porção maior de responsabilidade pela

geração de imagens 3D. O OpenGL per-

mite a programadores criar código que

prevê e capitaliza com os benefícios da

aceleração 3D no hardware.

OpenGL no XUma 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 cha-

madas convencionais do X. Isso criou uma

etapa adicional de “tradução”, o que dimi-

nuiu a performance. Desde essas primeiras

tentativas, programadores têm procurado

outros modos de trabalhar com o X, conse-

guindo 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 com-

pleta e eficiente. Ela também possibilita o

uso otimizado de efeitos especiais, tais

como ampliação, transparência e outras

manipulações “artísticas”.

Muito além da decoração 24XGL: o desktop 3D da Novell.

Horizonte de luz 28Os efeitos na área de trabalho do AIGLX.

X Novo 32O que muda no X11R7?

Construção visual 36Como criar temas do SuperKaramba.

Tráfego inteligente 40D-bus: interconexão de aplicativos.

Capa

22

Intro

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

Agora o desktopProgramadores de jogos e outros especia-

listas gráficos foram os precursores na

introdução de técnicas impressionantes

para estender e expandir o X para aco-

modar o OpenGL. Eventualmente, desen-

volvedores começaram a se perguntar se

o próprio desktop não poderia também

assumir as competências do OpenGL.

No Linux e em outros sistemas baseados

no X, a tarefa de gerar e organizar janelas

é feita por um gerenciador de janelas. A

necessidade de integrar o OpenGL com o

desktop começou a se cristalizar em tor-

no da tarefa de se criar um gerenciador

de composição de janelas (compositing

window manager ou composite manager):

um gerenciador de janelas que faz uso da

extensão X Composite.

O Xgl e o AIGLX trazem as glórias do

OpenGL à área de trabalho com a integração

de um gerenciador de composição. Como

veremos nos próximos artigos, o Compiz é

um gerenciador de composição projetado

para o Xgl. Os desenvolvedores do AIGLX

fizeram experimentos com o gerenciador

de composição Luminocity, e a Red Hat está

atualmente trabalhando na implementação

de funções de composição no gerenciador

de janelas Metacity, do Gnome.

EstratégiasA aparição do Xgl e do AIGLX seguiram

o padrão básico de evolução do Software

Livre: controvérsia, seguida de dúvidas,

mas concluídas com um bom nível de co-

operação. A Novell anunciou que estava

trabalhando em uma tecnologia chamada

Xgl, que traria truques impressionantes de

OpenGL a um servidor X funcional, mas

todo o projeto permaneceu em silêncio por

vários meses, enquanto a Novell trabalhava

de portas fechadas.

Esse nível de discrição foi irritante para

alguns membros da comunidade. Então, a

Red Hat entrou em cena para dizer que es-

tava desenvolvendo a sua própria tecnologia

de desktop OpenGL, batizada de AIGLX. A

Red Hat obviamente tinha suas próprias

ressalvas em aceitar uma especificação

sem sua participação. Mas eles também

se mostraram preocupados com algumas

partes do Xgl e argumentaram que uma

aproximação traria benefícios técnicos.

Desde então, a comunidade debateu vi-

gorosamente os benefícios técnicos dessas

soluções e também discutiu qual deles era

o mais fiel ao espírito do Software Livre.

Atualmente, tanto o Xgl quanto o AIGLX

estão disponíveis para desenvolvedores. Os

dois projetos compartilham uma parte do

seu código e existem paralelamente, com

muito interesse da comunidade.

Em poucos anos, o Xgl e o AIGLX irão

redefinir o modo como usamos a área de

trabalho Linux. Funções como janelas

“vivas” e o famoso cubo de áreas de traba-

lho podem parecer sem sentido à primeira

vista. Mas elas aproximam o usuário do

espaço virtual em uso, fazendo com que

os objetos se pareçam mais “reais”. Os

desenvolvedores estão apenas começando

a explorar os benefícios de funções como

janelas transparentes e muitos outros

efeitos, que só agora começam a ser per-

cebidos pelo público.

Para um olhar mais aprofundado sobre

essas tecnologias, convidamos Mathias

Hopf, da Novell, e Kevin E. Martin, da Red

Hat, para falarem sobre Xgl e AIGLX, res-

pectivamente. Leia e descubra mais sobre

essas tecnologias inovadoras.

Sobre o futuro das interfaces gráficas,

preparamos também um artigo sobre a

última versão do X11, que trouxe as prin-

cipais mudanças no X em mais de 10 anos

de história do sistema: um design modular

e muitas outras importantes melhorias.

Ainda no tema “área de trabalho”,

não perca os artigos sobre o SuperKa-

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.

www.linuxmagazine.com.br

julho 2006 edição 21 23

Intro Capa

http://supertuxbr.blogspot.com

Um dos integrantes da equipe de desenvolvedores do Suse, responsável

pelo X11, explica o projeto Xgl.por Matthias Hopf

OpenGL, Xgl e Compiz

Muito além da decoraçãoFã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 efei-

tos 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 de-

senhar 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

Fle

ur S

uijte

n – w

ww

.sxc.h

u

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.

TransparenteSeguindo um longo período de estag-

naçã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 gran-

des 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 fun-

cionalidades 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 funcionali-

dades agora podem ser interligadas aos

dados do framebuffer usando operadores

Porter-Duff, suportando assim a renderi-

zação de superfícies semitransparentes

(alpha blending) e fontes suavizadas

(anti-aliasing). Muitas aplicações mo-

dernas 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

O au

tor

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 equi-pe do X11 do Suse (na Novell) e criou parte do código que integra o Xgl com o Xvideo.

Capa

24www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

desenhar múltiplas janelas semitrans-

parentes sobrepostas. Como os geren-

ciamentos de composição e de janelas

devem trabalhar de mãos dadas, po-

demos esperar que no futuro existam

mais gerenciadores de composição de

janelas com habilidade para integrar

ambos os processos.

Outro importante componente do ser-

vidor X que precisa ser trabalhado é a

arquitetura de aceleração de hardware,

responsável pela eficiente execução de

comandos gráficos. A arquitetura ante-

rior, XAA já não apresenta condições

de uso e precisa ser substituída. As al-

ternativas mais promissoras são o EXA

e o OpenGL.

O EXA é prático e fácil de ser imple-

mentado, mas o OpenGL tem a vantagem

de ser uma interface de programação

largamente difundida, suportada por

muitos drivers em uso. Não há necessi-

dade 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.

MitoEm oposição ao que se acredita popu-

larmente, 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 co-

mandos do OpenGL são passados ao Xgl

pelo protocolo GLX, antes de ser passado

ao hardware gráfico. A renderização in-

direta é 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 frame-

buffer e fornece uma interface OpenGL.

Por hora, esse sistema é o popular Xorg.

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, é basi-

camente o back-end com aceleração

OpenGL da biblioteca Cairo, um siste-

ma de operações gráficas que trabalha

independente da resolução.

Quando um gerente de composição en-

tra em campo, o fluxograma gráfico fica

ainda mais complexo. Como mostra a fi-

gura 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 separada-

mente para cada programa.

Então o gerenciador de composição

desenha o conteúdo das janelas como

texturas nos objetos OpenGL. Os obje-

tos 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 co-

mandos do OpenGL para apresentar janelas.

Essa opção não está aberta para o servidor

X normal porque o OpenGL não está coli-

gado 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. ➟

Figura 1: Fluxograma de um gerenciador de composição com Xgl.

Protocolo X11 Protocolo GLX

Programas

DDX

pBuffer / FBO

pBuffer / FBO

pBuffer / FBO

Hardware GFX

Framebuffer

Servidor X

Mesa / GLX

OpenGL

Glitz

Composite Manager

Geometria do desktop 3D

Comandos doComandos do XGL

EXT_texture_from_pixmap

ID do Pixmap Buffer

ID da textura

Binding de textura

Composite Manager

www.linuxmagazine.com.br

julho 2006 edição 21 25

Xgl Capa

http://supertuxbr.blogspot.com

Como o Xgl usa o OpenGL interna-

mente, ele pode tornar o conteúdo da

janela acessível a um gerenciador de

composição externo usando a extensão

GLX_EXT_texture_from_pixmap. Essa

extensão não é fornecida pelo driver

OpenGL, mas pelo Xgl. O Xorg incluiu

essa extensão desde que o AIGLX foi

implementado, mas ainda falta suporte

para algumas funções.

Conforme mencionado anteriormente,

o gerenciador de composição usa rende-

rização indireta para desenhar a área

de trabalho. Isso significa que todos os

comandos OpenGL são enviados para o

Xgl usando-se o protocolo GLX, antes de

serem passados para o hardware. Essa

é a única maneira de outro processo

usar texturas no âmbito do endereça-

mento Xgl. Esse envio também afeta

todas as aplicações do OpenGL, já que

elas têm que desenhar em uma área

invisível do framebufer, a qual deve

também estar no âmbito do servidor X

(leia mais em [3]).

Mundo 3DEstamos acostumados com cenários em

três dimensões. Sendo assim, faz sen-

tido projetar uma área de trabalho 3D,

assumindo que interações com objetos

que ultrapassam duas dimensões sejam

mínimas. A interação 3D verdadeira

ainda apresenta muitos desafios téc-

nicos, sendo tipicamente não intuitiva,

dentro das possibilidades atuais.

Projetar dados de pixels bidimen-

sionais em objetos tridimensionais é

uma função padrão do OpenGL. Ao

mesmo tempo, obtemos efeitos como

semitransparência mais ou menos “de

graça”, já que eles são parte do pa-

cote de truques padrão do OpenGL.

Até agora, a única razão para não

produzir um gerenciador de compo-

sição desse tipo era que precisava-se

de algo como o Xgl para abrir a in-

terface OpenGL para gerenciadores

de composição.

O Compiz é um gerenciador de com-

posição especialmente projetado para o

ambiente Xgl. Em uma sessão do Com-

piz, 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 ren-

deriza as decorações de janela e as cede

para o Compiz. Isso facilita a integração

Figura 2: O Compiz mudando para outra área de trabalho.

Capa

26

Xgl

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

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 tro-

cados entre si, usuários podem modi-

ficar facilmente o Compiz de acordo

com seus gostos. Consulte em [5] uma

lista mais detalhada de plugins, jun-

tamente 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 re-

almente serve de suporte a evoluções

importantes, como ferramentas de

acessibilidade para usuários com per-

da sensorial (um plugin de zoom, por

exemplo) e instrumentos de seleção

como o Exposé (para miniaturas or-

ganizadas de janelas), que se provou

muito útil no mundo Apple. Miniatu-

ras 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 faltan-

do, 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 com-

pleta no KDE esteja terminada.

Futuro do XSerá o Xgl o futuro do sistema X Win-

dow? As opiniões estavam divididas na

última conferência dos desenvolvedores

do Xorg [6] na Califórnia. Enquanto al-

guns se queixavam do estado dos drivers

de código aberto e a incompatibilidade

dos drivers proprietários com a GPL, ou-

tros consideram o OpenGL uma interface

gráfica apropriada para integração no X.

Um servidor X trabalhando com Open-

GL 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 ser-

vidor Xorg como um intermediário. Uma

ramificação experimental, apelidada de

Xegl, é capaz de falar diretamente com o

hardware, embora esteja restrita às pla-

cas 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 geren-

ciador 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 ini-

cial 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 pro-

duçã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

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

www.linuxmagazine.com.br

julho 2006 edição 21 27

Xgl Capa

http://supertuxbr.blogspot.com

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

por Kevin E. Martin

A área de trabalho acelerada da Red Hat

Horizonte de luzDesenvolvedores da Red Hat trabalha-

ram bastante em uma alternativa ao

Xgl, chamada de AIGLX e disponível

para o Fedora Core 5. Seus objetivos: criar

efeitos com aceleração de hardware e, ao

mesmo tempo, facilitar a integração com

a infraestrutura do Xorg.

O Fedora Rendering Project, um con-

junto de soluções para a área de trabalho,

descreve o AIGLX como “um projeto que

almeja habilitar efeitos acelerados por

GL na área de trabalho”. Eles acrescen-

tam: “temos um servidor X levemente

modificado (que inclui algumas exten-

sões), um pacote Mesa atualizado (que

integra alguns novos protocolos), e uma

versão do Metacity com um gerenciador

de composição. O resultado final é que

podemos usar efeitos GL no desktop com

poucas mudanças, sendo possível ligá-los

e desligá-los quando quisermos, sem a

necessidade de substituir o servidor X”.

O AIGLX é parte de um ecossistema

de componentes gráficos que intera-

gem para oferecer melhor desempenho

e imagens mais vivas. Mas como tudo

aconteceu e o que isso significa para o

usuário? Este artigo descreve o contexto

da evolução do AIGLX e a nova geração

das tecnologias gráficas.

No início...O desenho atual do desktop está come-

çando a mostrar sua idade avançada em

diversas áreas. Primeiro, a área de traba-

lho atual foi desenhada em torno de um

esquema 2D, enquanto que o hardware

gráfico mudou dramaticamente para en-

fatizar o 3D. Integrar o 3D ao desktop tem

sido o objetivo por muito tempo, mas até

pouco tempo isso não foi possível. Outros

sistemas operacionais também reconhe-

ceram essa mudança de paradigma: a

Apple está usando o OpenGL através da

arquitetura de composição Quartz [1] e

a Sun tem um projeto chamado Looking

Glass [2] para experiências usando Java3D

em uma área de trabalho Linux.

Uma segunda área problemática é que

todo o desenho do desktop é renderizado

diretamente no buffer frontal. Isso significa

que os usuários podem ver elementos de

renderização enquanto o cenário está sendo

construído. Tradicionalmente, programas

tiveram que contornar esse problema de-

senhando mapas de pixels diretamente na

memória do computador e depois copiando

a imagem acabada para a tela.

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 presenteA versão atual para o desktop de com-

posição baseado em OpenGL está cons-

truí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 Ren-

dering Infrastructure ou “infraestrutura

de renderização direta”) [4]. Esse proje-

to trouxe a aceleração 3D de hardware

ao Linux, mas, como o próprio nome

diz, apenas para programas de rende-

rização direta. Já a renderização indi-

reta foi implementada usando código

do projeto Mesa.

O DRI permitia que aplicações con-

seguissem fazer uso do hardware 3D

através da biblioteca OpenGL (libGL).

Tradicionalmente, somente programas

Sobr

e o

auto

r

Kevin E. Martin trabalha há 17 anos no sistema X Window. Ele é o principal criador do sistema DRI (Direct Rendering Infrastructure) e do sistema DMX (Distributed Multihead X). Desen-volveu diversos drivers 2D e 3D e também foi gerente de lançamentos das mais novas versões do X11. Atualmente ele é o principal desenvolve-dor do X e do OpenGL na Red Hat, participa do conselho diretor da fundação X.org e coordena o Modularization Working Group do Xorg.

Capa

28www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

especializados em 3D usavam diretamen-

te 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ífi-

co 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 di-

retamente à 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 ha-

bilidade que foi usada por muito tempo

pelos programas OpenGL para eliminar

objetos visuais sendo construídos.

Essa habilidade não é nova. A exten-

são de buffer duplo (DBE - Double Buffer

Extension) permite que programas indi-

viduais dupliquem o buffer de saída. O

que faz o Composite único é o fato de

que um programa individual não pre-

cisa ter conhecimento direto do DBE.

Ao invés disso, um programa externo,

conhecido como gerenciador de compo-

sição, controla quando as janelas serão

redirecionadas e como os dados de pixels

são copiados para o buffer de tela.

LuminocityNo final de 2004, começamos os experi-

mentos com o OpenGL para renderizar

janelas redirecionadas em nosso projeto

Luminocity [6]. Os gerenciadores de jane-

la de testes desenvolvidos anteriormente

usavam a extensão Render para copiar

os dados da janela para a tela (por exem-

plo: xcompmgr). Conforme dito anterior-

mente, 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 Luminoci-

ty era criar texturas OpenGL usando os

dados de pixels de cada janela redire-

cionada 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ódi-

go 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 ti-

nham 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 gerencia-

dores de composição anteriores foram

separados do gerenciador de janelas,

enquanto o Luminocity era um geren-

ciador 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 desktopUm 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,

www.linuxmagazine.com.br

julho 2006 edição 21 29

AIGLX Capa

http://supertuxbr.blogspot.com

isto é, uma janela redirecionada poderia

ser desenhada em um mapa de pixels fora

da tela, no formato correto para ser usado

diretamente pelo mecanismo 3D do hard-

ware. Para concluir, implementamos duas

novas tecnologias de nível de infraestru-

tura: AIGLX (Accelerated Indirect GLX) e a

extensão GLX_EXT_texture_from_pixmap

(ou extensão TFP). No topo dessa nova

infraestrutura construímos uma nova bi-

blioteca de composição baseada em cenas

gráficas, que é usada pelo gerenciador de

janelas Metacity para implementar os efei-

tos de animação OpenGL.

Renderização indireta aceleradaComo já foi dito, a renderização indi-

reta era completamente desacelerada

no projeto DRI inicial. O plano sempre

foi implementar a renderização indi-

reta acelerada usando o mesmo driver

específico de placa que é introduzido

no lado do cliente pela libGL. Contu-

do, essa não era uma tarefa fácil: fazer

isso acontecer não foi possível até que

chegássemos ao desktop de composição

baseado em GL.

O driver Mesa, usado no trabalho inicial

com o DRI, era baseado na versão do lado

cliente do Mesa, que traduzia as requisi-

ções OpenGL em comandos de desenho

X11. Modificamos esse código, previamen-

te chamado libX11, para chamar as funções

equivalentes do servidor X interno. Demos

a essa versão o nome GLcore.

A interface usada para inicializar e

chamar o Glcore eram as estruturas

__Glinterface e __GldrawablePrivate,

que são parte da implementação teste Open-

GL (SI - sample implementation) [7].

Entretanto, o projeto DRI usava o Mesa

ao invés do SI, de modo que a interface

para os drivers específicos de placa era

baseada no Mesa, um tanto diferentes

da interface Glcore. Esse desencontro

foi uma das razões para que se levasse

tanto tempo para implementar o AIGLX.

Então, para tirar proveito dos drivers

específicos de placa DRI/Mesa junto com

o servidor X para AIGLX, tivemos que

reconciliar as duas interfaces.

Desenvolvemos uma nova camada de

abstração [8] que é fortemente baseada

na interface DRI, para oferecer a lógica

de ligação entre o código de extensão

GLX do lado servidor e o driver específi-

co de placa. A nova interface fornece três

objetos: __GLXscreen, __GLXcontext e

__GLXdrawable. Métodos de alocar obje-

tos DRI específicos e a chamada do dri-

ver de placa em particular estão contidos

inteiramente na camada de abstração,

que chamamos de provedor DRI.

Como nem todas as placas de vídeo têm

drivers 3D específicos de placa, e vários

outros servidores (Xnest, por exemplo) que

fornecem suporte GLX não podem usar

drivers de hardware, o módulo GLcore

deve permanecer disponível. Então rees-

crevemos o nível mais alto do GLcore para

usar a nova interface. Isso permite que ela

(chamada de provedor GLcore) seja usada

no lugar dos drivers específicos de placa

quando necessário ou desejado.

Para inicializar o módulo GL para cada

tela, a pilha de provedores GL é chamada

e o primeiro provedor que responde com

um valor não-nulo tem sua tela requeri-

da pelo __GLXscreen. Esse mecanismo

permite que futuros módulos GL imple-

mentem seus próprios __GLX-provider

e se acoplem na pilha provedora.

Renderização diretaCom OpenGL indireto acelerado, pode-

mos agora renderizar diretamente no

interior do processo do servidor X. De

qualquer forma, ainda devemos ser capa-

zes 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 da-

dos 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-Figura 1: O Luminocity com suas janelas transparentes.

Capa

30

AIGLX

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

várias tecnologias e fazer experiências

usando OpenGL em um desktop de com-

posição. Poderíamos ter expandido o

Luminocity para um gerenciador de

janelas completamente funcional, mas

isso teria envolvido a recriação de anos

de trabalho gastos em nosso gerenciador

de janela de desktop padrão, o Metacity.

Ao invés disso, pegamos o que apren-

demos do Luminocity e reimplantamos

no Metacity.

Nossa intenção era criar uma nova

biblioteca de composição OpenGL base-

ada em cenas gráficas, chamada libcm,

que iria encapsular os métodos usados

pelos demais gerenciadores de janela

para desenhar o desktop. O Metacity

poderia então acoplar várias animações

de transição de estado em cenas gráficas,

conforme a necessidade.

Ao disponibilizar por completo a inter-

face OpenGL, podemos criar animações

complexas arbitrariamente, limitadas

apenas pela nossa criatividade e pelo

hardware. Alguns efeitos comuns que já

concluímos ou estão em processo de im-

plementação incluem minimização, ma-

ximização, menu fade in/out, sombras,

transparência de janelas e alternância

de área de trabalho. Muitas outras serão

desenvolvidas conforme a necessidade.

Devemos notar que enquanto o AIGLX

e o TFP são críticos para o nosso desktop

de composição baseado em GL, eles fo-

ram desenvolvidos para serem usados

de maneira independente pelos desen-

volvedores de aplicativos. Por exemplo,

o Compiz [9] é um outro gerenciador de

janela/composição que usa um método

diferente, mas trabalha bem usando as

tecnologias que desenvolvemos [10].

Falta muitoAtualmente, temos a prévia de uma

tecnologia capaz de redirecionar jane-

las para mapas de pixels na memória

do computador no servidor X e depois

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, demons-

trações e o status do projeto estão dis-

poníveis em [11].

Ainda há muito a ser feito. Nós e ou-

tros membros da comunidade estamos

no processo de incluir uma série de

novas tecnologias. Dentre elas: trans-

formaçã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 desenvol-

vidas, continuaremos a atualizar nos-

sa 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

renciador de composição (com renderiza-

ção direta) poderia usar os dados como

fonte para uma chamada glTexImage2D

ou glDrawPixels. Isso não funciona na

prática devido ao elevado desperdício de

recursos de se copiar dados de pixels da

(e para a) memória de vídeo.

Um procedimento melhor é manter os

dados do mapa de pixels no espaço de

endereços do servidor X (onde ele foi

renderizado) e usá-lo diretamente como

fonte para operar a textura.

O GLX_EXT_texture_from_pixmap for-

nece a interface para que isso aconteça.

Conforme dito acima, a solução ideal é

deixar que a placa de vídeo renderize o

conteúdo da janela em um buffer fora da

tela, que depois seria usado diretamente

(isto é, sem cópia ou conversão) como

entrada para o mecanismo de textura

do hardware. Para implementar essa so-

lução, iremos precisar de um trabalho

adicional na infraestrutura (por exemplo,

gerenciamento de memória), assim como

trabalho adicional com drivers especí-

ficos de placa. Ambas as tarefas estão

atualmente em desenvolvimento.

A solução intermediária TFP redire-

ciona dados de janelas para mapas de

pixels da memória do PC e chama as ope-

rações de textura diretamente através da

nova interface da camada de abstração

AIGLX para o driver de placa específico

Mesa/DRI. Ao fazermos a renderização

diretamente para os mapas de pixels da

memória do computador, eliminamos a

operação de leitura do “framebuffer”, que

pode ser bastante demorada - especial-

mente em hardware AGP. Essa solução in-

termediária é o que implementamos. Ela

provê desempenho razoável para nossa

demonstração de tecnologia inicial.

MetacityO Luminocity era um gerenciador de

composição e de janelas “de brinquedo”,

que nos permitia rapidamente construir

www.linuxmagazine.com.br

julho 2006 edição 21 31

AIGLX Capa

http://supertuxbr.blogspot.com

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

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

X Novo

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 desen-

volvimento 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 mo-

dular, 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 correla-

cionadas, e os usuários podem adquirir

novas funções e soluções para bugs, in-

dependentemente do lançamento da ver-

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 é com-

posta de mais de 200 pacotes individu-

ais. 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), biblio-

tecas, o servidor X e drivers para placas

específicas. A nova arquitetura significa

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) ago-

ra 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 cha-

madas 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ênciasComo os drivers da versão anterior

não suportavam aceleração gráfica

Novas FunçõesP 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).

P Aceleração EXA para i128, radeon e sis.

P Drivers 3D aperfeiçoados: Radeon R300/ R400 (Radeon 9500 e posteriores; novo).

P Suporte XvMC aperfeiçoado (descompressão de vídeo).

P XRender: O fallback de software não está tão lento como antes.

P 12 bit PseudoColor e 30 bit TrueColor: for-matos de pixel mais dinâmicos, por exemplo com drivers binários Matrox Parhelia para programas médicos.

P Multiseat: suporte para teclados múltiplos e independentes e mouses para múltiplos usuários em uma estação de trabalho.

P Construção de sistema modular usando GNU automake e autoconf (versão 7.0 ou posterior).

Capa

32

x11r7

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

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 dri-

vers realmente capazes de acelerar

as operações do Xrender eram os dri-

vers comerciais Nvidia. A razão para

isso era o legado da arquitetura de

driver XAA. A XAA (XFree86 Accele-

rated Architecture) focou em acelerar

as operações legadas do X, tais como

desenhar linhas, retângulos, círculos

de vários tamanhos, modelos e con-

teú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 Pa-

ckard, da HP, a desenhar um servidor X

de testes, conhecido como Kdrive, com

uma arquitetura que não suporta ope-

raçõ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].

O EXA foca nos pon-

tos 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.

P Aceleração XRender para

imagens transparentes,

suavização (anti-alia-

sing) de textos e composição.

O EXA ignora os numerosos elemen-

tos dos programas legados, tais como

linhas e círculos, os quais são todos

acelerados por XAA.

A maioria dos programas não faz uso

desses tipos de elementos gráficos nos

desktops, por isso os elementos da ace-

leração são mínimos. Mesmo com um

driver que só implementa as funciona-

lidades básicas do EXA, não deveria ser

problema atingir bons valores de usa-

bilidade com janelas transparentes em

hardwares recentes.

DriversA versão atual do Xorg suporta funções

EXA para os drivers r128, radeon e sis.

É possível desabilitar esse recurso na

seção "Device" do arquivo /etc/X11/

xorg.conf:

Option "AccelMethod" "EXA"

Cheque o quadro 1. Patches para os

drivers i810, mach64, nv, savage, tdfx e

via estão disponíveis em [3].

No X11R7, o driver sis é o primeiro a

suportar chips XGI. Devido à dispendiosa

análise do driver e do hardware, a ge-

ração de chips Radeon R300/R400 (até

Radeon 9800) agora suporta aceleração

com drivers livres.

O XvMC, que conduz a aceleração ba-

seada em hardware para decodificação

de vídeo, foi retrabalhado nessa última

versão do X11, e a implementação de

software XRender mostra alguns aper-

feiçoamentos de performances.

O suporte a múltiplos dispositivos si-

multâneos (multiseat) também é uma

novidade do X11R7. Ele possibilita a alo-

Figura 1: A transparência de janelas agora é muito mais rápida graças ao EXA.

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:

Section "Device" Identifier "Card1" Driver "ati" Option "AccelMethod" "EXA"Endsection

Se você não tiver um driver para EXA no mo-mento, 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 Shado-wFB diretamente, talvez você precise desabilitar a aceleração completamente para usar renderi-zaçã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.

www.linuxmagazine.com.br

julho 2006 edição 21 33

x11r7 Capa

http://supertuxbr.blogspot.com

cação dedicada de teclados e mouses

para cada saída de vídeo, o que significa

que múltiplos usuários podem trabalhar

em uma única estação. No entanto, esse

recurso ainda é experimental.

O Xorg ainda não é compatível com

a nova geração X1000 de placas ATI.

Como o driver comercial ATI também

não suporta essas placas, os usuários

são forçados a recorrer ao driver Vesa

como solução. No entanto, a ATI anun-

ciou que estará oferecendo drivers Linux

com aceleração de hardware para essas

placas em um futuro próximo.

Teoria e práticaConforme este artigo, nem todas as pla-

cas de vídeo suportam transparência

em alta velocidade – mas cada vez mais

programas conseguem usar gráficos

ARGB. Por exemplo, a mais nova versão

do emulador de terminal rxvt-unicode

usa transparências para definições de

cor, para dar aos usuários a capacida-

de de habilitar transparências para al-

gumas áreas da tela – normalmente o

plano de fundo.

A ferramenta MacOSD, que manipula

telas OSD em máquinas PowerPC, agora

usa janelas transparentes ao invés de

screenshots coloridas (figura 1). O KDE

3.4 também integra um gerenciador de

composição com o gerenciador de jane-

las kwin (figura 2).

Para desenvolvedoresOutra mudança importan-

te é evidenciada pelo fato

de o Xorg agora funcionar

sem um formato binário

para os drivers de hard-

ware. O X11R7 agora utili-

za elementos padrões ELF

Shared Objects (arquivos

.so). O grande benefício

é o porte mais simples

para novas arquiteturas

e busca de bugs mais fácil. Antes os

desenvolvedores tinham que consertar

o GNU Debuger para ensinar ao GDB o

formato especial X proprietário antes

de começar o trabalho sério no desen-

volvimento do driver X.

Febre OpenGLO desenvolvimento também prosseguiu

no Xgl [4], a implementação da Novell

do servidor X baseada em OpenGL. O

objetivo é dispensar a aceleração 2D

para placas de vídeo modernas e usar

o mecanismo 3D para todas as tarefas

de renderização.

Isso não apenas vai facilitar o de-

senvolvimento, mas também forçar os

fabricantes a publicar drivers OpenGL

estáveis e de alta performance para sis-

temas operacionais livres.

A Red Hat também está demonstran-

do interesse nas novas funções 3D do

X através do seu trabalho com o AIGLX

(Accelerated Indirect GLX) [5]. O AIGLX

suporta o OpenGL para composição. Con-

tribuições para o Xgl ou AIGLX em prol

do X.Org ou da biblioteca livre OpenGL

Mesa3D geralmente beneficiam ambos

os projetos e têm ajudado no rápido pro-

gresso do desenvolvimento.

O Xgl e o AIGLX usam um efeito de

inércia ao mover janelas, permitindo

que elas balancem, como mostrado na

figura 3. O escalonamento arbitrário de

janelas também é suportado. Para mais

informações, leia os artigos sobre Xgl

(pág. 24) e AIGLX (pág. 28).

ConclusõesA sétima e mais importante versão do

X11 deu destaque ao suporte de hard-

ware. O suporte 3D para as séries ATI

R300 e R400 finalmente oferece um dri-

ver open source para uma geração de

chips de largo alcance.

A nova arquitetura EXA e as exten-

sõ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 per-

mitindo 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. ■

O a

utor

René Rebe, que estuda Ciência da Compu-taçã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 [email protected].

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

Figura 3: O Xgl e o AIGLX alavancam o OpenGL para suportar transformações de janela arbitrárias.

Capa

34

x11r7

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

http://supertuxbr.blogspot.com

Se não encontra o tema do SuperKaramba que precisa, faça você mesmo o seu.por Hagen Höpfner

Crie temas do SuperKaramba

Construção visual

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-apli-

cativos para a área de trabalho, chama-

dos de widgets. O site do SuperKaramba

se refere a esses widgets como “custom

eye candy” (algo como “enfeites cus-

tomizados”), 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 proces-

sos, 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.

InstalaçãoA versão atual do SuperKaramba é a

de número 0.39. Quem não é adepto da

compilação manual pode encontrar pa-

cotes .rpm e .deb em [2] e [3]. Ao iniciar

o SuperKaramba, surge a janela Temas

(figura 1), e um ícone de controle é jo-

gado na barra do KDE.

Para dar mais vida à área de trabalho,

o SuperKaramba precisa de temas. Há

projetos disponíveis para muitas apli-

caçõ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 miniatu-

ra, para dar uma idéia sobre o tema. O

SuperKaramba baixa os arquivos solici-

tados 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 pa-

ralelos em uma única área de trabalho,

iniciando e removendo os temas indi-

vidualmente, conforme o solicitado. O

menu do clique direito também permite

especificar se desejamos manter a capa-

cidade 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 temaPara 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, pro-

vavelmente você vai querer arquivar

todos esses componentes em um único

diretório.

O arquivo .theme compreende três

componentes: comandos gerais especi-

ficam 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-

Capa

36

SuperKaramba

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

tram os valores medidos. A listagem 1

ilustra o processo de criação de um ar-

quivo .theme.

A primeira linha da listagem 1 posicio-

na o tema no canto inferior esquerdo do

desktop, define uma largura de 200 pixels

e altura de 400 pixels, especifica que o

tema pode ser movido e determina um

tempo de atualização de 1000 milissegun-

dos. Seria possível determinar a posição do

tema especificando posições x e y a partir

do canto superior esquerdo do desktop.

O parâmetro BOTTOM=TRUE sobrepõe a

posição horizontal padrão. De maneira

semelhante, a opção RIGHT=true posicio-

na o tema na margem direita. ONTOP=true

evita que outras janelas ocultem o tema.

TOPBAR=true e BOTTOMBAR=true encai-

xam o tema no topo ou na parte de baixo

da tela, assim como a barra do KDE, não

permitindo que janelas maximizadas o

escondam.

A segunda linha da listagem 1 insere o

tipo, tamanho e cor que estão faltando

para todos os elementos de texto asso-

ciados ao tema. O código de cor é a com-

binação de valores para vermelho, verde

e azul, com um valor máximo de 255.

O exemplo usa 255, 255 e 255, que é o

conjunto que representa a cor branca.

Sensores e medidoresAs linhas 5 e 6 na listagem 1 criam dois

medidores em texto, que têm seus con-

teúdos derivados do sensor de tempo

(sensor=time). A linha 5 gera o tempo

e se sobrepõe ao tamanho de fonte

automático, que foi definido previa-

mente. Uma boa idéia é usar tags do

tipo <GROUPS> para agrupar elementos

semelhantes. Isso melhora a legibili-

dade do código e permite especificar

posições para os grupos.

O primeiro grupo em nosso tema de

exemplo está localizado em x=10 e y=10;

além do medidor de tempo e data, ele con-

tém uma definição para a área interativa.

A linha 7 diz ao SuperKaramba para cha-

mar a configuração de hora do KDE quan-

do a área de 120 por 34 pixel recebe um

duplo clique. O parâmetro preview=true

poderia ser usado para desenhar uma

moldura ao redor do tema para indicar

que ele ainda está em testes.

O parâmetro format define o conte-

údo de saída e formato de um campo,

dependendo do sensor consultado. O pa-

râ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 con-

tinuamente

P uptime: Uptime do sistema

P xmms: Informação sobre um proces-

so XMMS ➟

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

Listagem 1: meu_tema.theme01 KARAMBA x=0 BOTTOM=true w=200 h=400 LOCKED=false INTERVAL=100002 DEFAULT font=”Sans” fontsize=10 shadow=2 color=255,255,25503 04 <GROUP> x=10 y=10 05 TEXT x=12 y=0 sensor=time fontsize=12 format=”hh:mm:ss” 06 TEXT x=12 y=15 sensor=time format=”ddd dd.MM.yyyy”07 CLICKAREA x=0 y=0 w=120 h=34 onclick=”kdesu kcmshell clock”08 </GROUP>09 10 <GROUP> x=10 y=5011 TEXT x=12 y=0 value=”MEM”12 TEXT x=45 y=0 sensor=memory format=”%fmb MB” 13 TEXT x=12 y=15 value=”CPU”14 BAR x=45 y=15 sensor=cpu path=”bar.png” 15 TEXT x=12 y=30 value=”IN”16 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>

www.linuxmagazine.com.br

julho 2006 edição 21 37

SuperKaramba Capa

http://supertuxbr.blogspot.com

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 ima-

gem 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 gru-

po 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].

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

Tabela 1: Funções callback do SuperKarambaFunção Trigger Parâmetros passados

initWidget(widget) Cria o widget do SuperKarambawidgetUpdate(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 arras-tar 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 aplicativoactiveTaskChanged(widget, task) Move um aplicativo para o plano de frente

Capa

38

SuperKaramba

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

PythonA interface do Python [10] ajuda

a deixar um tema mais flexível.

Funções callback acrescentam a

capacidade de reagir a eventos dis-

parados no desktop KDE (tabela 1).

Para permitir que um tema acesse

um script Python, o arquivo deve

residir no mesmo diretório do ar-

quivo .theme e deve usar o mesmo

nome básico do tema, mas com a

extensão .py. O modelo em [11] é

um ponto de início muito útil para

o seu desenvolvimento próprio, já

que ele integra um bom número de

funções callback.

A listagem 2 mostra um script Python

que permite ao usuário substituir a

imagem mostrada no tema arrastando e soltando. Ele começa importando

módulos adicionais: import karamba carrega o módulo SuperKaramba e

import string adiciona funções de manipulação de cadeias de caracteres

para variáveis de texto.

A função callback initWidget(widget) é chamada automaticamente

quando a janela do tema é gerada. Ao mesmo tempo, karamba.createImage

cria uma imagem que é usada como um “guardador de espaço”, que explica

porque ela fica escondida a princípio (karamba.hideImage(widget,imag

e)), até que karamba.redrawWidget(widget)

restaure a tela.

A segunda função callback na listagem 2 é

itemDropped(widget, dropText). Ela é chamada

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 des-

cobre 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). ■

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

Listagem 2: meu_tema.py01 import karamba # Imports the Karamba API02 import string # String manipulation functions03 image=004 05 def initWidget(widget):06 global image07 karamba.acceptDrops(widget)08 image=karamba.createImage(widget, 12, 102, “bar”)09 karamba.hideImage(widget,image)10 karamba.redrawWidget(widget)11 12 def itemDropped(widget, dropText):13 global image14 image_link=string.split(dropText, “file:” ,1)[1]15 karamba.deleteImage(widget,image)16 image=karamba.createImage(widget, 12, 102, image_link)17 karamba.resizeImage(widget, image, 176, 286)

Informações[1] SuperKaramba:

http://netdragon.sourceforge.net/ ssuperkaramba.html

[2] Repositório Guru para Suse: http://linux01.gwdg.de/~pbleser

[3] Pacotes SuperKaramba do Debian: http://archive.linux-peter.de/debian/pool/main/superkaramba

[4] Temas SuperKaramba: http://www.kde-look.org

[5] Tutorial para criação de um tema: http://netdragon.sourceforge.net/ screate.html

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

[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

[10] API Python do SuperKaramba: http://netdragon.sourceforge.net/ api.html

[11] Modelo do SuperKaramba em Python: http://netdragon.sourceforge.net/ template.pySo

bre

o au

tor

Hagen Höpfner estudou Ciência da Computação em Magdeburg, Alemanha. Após completar seu doutorado, se tornou palestrante sobre sis-temas 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.

www.linuxmagazine.com.br

julho 2006 edição 21 39

SuperKaramba Capa

http://supertuxbr.blogspot.com

É 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

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

Tráfego inteligente

Ningué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 ha-

bilidades de comunicação avançada, em

todos os níveis. Eles querem montagem au-

tomática de dispositivos USB, por exemplo,

independente de qual programa esteja sen-

do 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 co-

municação da futura geração Linux.

Fale comigoO D-Bus é um sistema de comunicação

entre processos, ou IPC (Inter Process

Communication). Ele fornece a infra-

estrutura que permite aos aplicativos

falarem uns com os outros e partes do

sistema operacional. Apesar de os me-

canismos IPC terem sido introduzidos

no Unix anos atrás, eles são restritos a

sinais, pipes e coisas do gênero.

Desde o começo, houve diversas

possíveis soluções nessa área, como o

CORBA, o DCOM da Microsoft e cente-

nas de outros projetos. O KDE e Gnome

à princípio fizeram experimentos com

suas próprias implementações CORBA.

O KDE introduziu seu próprio sistema, o

DCOP, e o legado do CORBA no Gnome

fica evidente no sistema de componen-

tes Bonobo. A despeito de suas opiniões

pessoais sobre o CORBA, a maioria dos

desenvolvedores, que quer apenas criar

seu aplicativo desktop, acaba se intimi-

dando com o sistema. Isso possivelmente

explica porque o Bonobo tem “vegetado”

por tanto tempo atrás do Gnome.

O D-Bus foi projetado como um siste-

ma simples e leve. A biblioteca básica

Libdbus simplesmente oferece funções

que permitem a dois aplicativos se co-

municarem. Desenvolvedores de aplicati-

vos normalmente não usam a biblioteca,

preferindo, em vez disso, a Libdbus-Glib,

baseada na Glib-API, que fornece uma

API em C orientada a objetos.

É nesse nível que as habilidades do D-

bus avançam para fornecer um sistema

bus genuíno, que condiz com o seu nome.

O processo-servidor, dbus-daemon, roda

nos fundos e “escuta” solicitações de

conexão dos aplicativos para vários tipos

de eventos, tais como plugar e desplugar

periféricos. Quando ocorre o evento, o

daemon D-Bus envia uma mensagem e

os aplicativos respondem de acordo.

Sistema globalEm sistemas que usam o D-Bus, cada

processo-servidor implementa dois “ca-

nais” (ou bus): o bus do sistema e o bus

da sessão. O bus do sistema é iniciado

no momento de boot e continua rodando

mesmo que não haja usuários logados.

Quando um usuário roda o gerenciador

gráfico de logins para iniciar uma sessão

do desktop, um processo-servidor para

o bus da sessão também é iniciado. O

binário dbus-daemon possui parâmetros

de linha de comando para ambos os mo-

dos: --system ou --session. O pacote

D-Bus inclui o dbus-launch para iniciar

Capa

40

D-Bus e HAL

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

o daemon e posicionar as variáveis de

ambiente solicitadas. A maioria das dis-

tribuiçõ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 per-

tencentes 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 intera-

gir com camadas inferiores. Por exemplo,

um aplicativo pode usar o bus do sistema

para acessar uma classe de hardware es-

pecífica, tal como câmeras digitais.

HALO D-Bus não oferece gerenciamento de

hardware próprio. Em vez disso, ele con-

fia no sistema HAL (Hardware Abstraction

Layer, ou camada de abstração de hard-

ware). Embora o HAL seja independente

do D-Bus, os dois componentes trabalham

de mãos dadas: o HAL usa o D-Bus para

fornecer serviços, e o D-Bus foi basica-

mente programado para o HAL.

Além do kernel, distribuições moder-

nas usam o subsistema Udev para geren-

ciar o espaço de usuário do hardware.

Desde a versão 0.59, o Udev substitui o

sistema hotplug, que só recentemente

se estabeleceu como mecanismo para

suportar hardwares plugáveis.

Além da informação do kernel e do Udev,

o HAL agora tem detalhes adicionais ou

dispositivos armazenados como arquivos

FDI (Device Information Files) em XML.

A listagem 1 mostra a seção de um arquivo

FDI referente a uma câmera digital.

O Gnome NetworkManager [3] é um bom

exemplo de como os componentes coope-

ram uns com os outros. Ele usa o daemon

HAL para monitorar o subsistema da rede.

Quando mudanças ocorrem, tais como a co-

nexão ou desconexão de um ponto Wireless

USB, o daemon usa o D-Bus para notificar

o NetworkManager. Além de periféricos, o

HAL também lida com sistemas de arquivos.

Ele pode identificar tipos de sistemas de

arquivos, incluindo partições criptografa-

das em LUKS [4]. No Gnome, o HAL agora

conduz a maior parte do gerenciamento

de hardware, em particular os dispositivos

hot-plugged. O processo gnome-volume-ma-

nager, que transcorre no plano de fundo,

possibilita isso. Para configurar o processo,

os usuários do Gnome rodam o front-end

gnome-volume-properties (figura 2). Usuários

do Fedora encontram o hal-device-manager

escondido no pacote hal-gnome.

Ele também é um front-end para o

HAL, que gera uma visão em árvore dos

dispositivos conectados (figura 3).

Usando D-BusA especificação de protocolo D-Bus está

disponível em [1]. O protocolo define

quatro tipos de mensagens que usuários

podem enviar para o bus. Por exemplo,

um aplicativo pode chamar os métodos

fornecidos por outros programas. Para

refletir isso, o segundo tipo representa

uma resposta a uma solicitação de cha-

mada. O terceiro tipo de mensagem é

usado para manipulação de erros pelo

aplicativo servidor. O quarto tipo de

mensagem fornece sinais – transmiti-

dos por aplicativos para o bus – que não

pedem uma resposta. Programadores

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.

Aplicativo

Udev

Aplicativo

HAL

Hardware

Kernel

D-BusBus do sistema Bus da sessão

Listagem 1: 10-camera-ptp.fdi01 <deviceinfo version="0.2">02 <device>03 <match key="info.bus" U string="usb">04 <match key="usb.interface.U class" int="0x06">05 <match key="usb.interface.U subclass" int="0x01">06 <match key="usb.U interface.protocol" int="0x01">07 <merge key="info.U category" type="string">camera</U merge>08 <appendkey="info.U capabilities" U type="strlist">camera</append>09 <merge key="camera.U access_method" type="string">ptpU </merge>10 </match>11 </match>12 </match>13 </match>14 </device>15 </deviceinfo>

www.linuxmagazine.com.br

julho 2006 edição 21 41

D-Bus e Hal Capa

http://supertuxbr.blogspot.com

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 al-

vos de mensagens. Cada aplicativo contém

um ou mais objetos, que podem ser ende-

reçados via caminhos criados a partir de

domínios invertidos, com o próprio nome

do objeto anexado, por exemplo, /org/fre-

edesktop/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çaNão seria uma boa idéia deixar usuá-

rios sem privilégios acessar o D-Bus.

De acordo com os desenvolvedores, a

segurança tem sido um grande motivo

de preocupação desde o início. Em um

caso simples, o UID seria avaliado para

controlar o acesso. Se o daemon bus e os

clientes pertencerem ao mesmo usuário,

não é aplicada nenhuma restrição. O

D-Bus também implementa políticas de

segurança que definem os privilégios de

um usuário, para permitir um controle

mais granular (listagem 2).

O D-Bus também pode ser usado com

o SE Linux (Security Enhanced Linux),

provavelmente devido à Red Hat ser sua

principal desenvolvedora.

Aplicativos úteisOutros aplicativos além do Gnome come-

çaram a usar o D-Bus. Uma lista razoavel-

mente atualizada está disponível em [5].

Apesar de os usuários serem advertidos

a não alterar sistemas em uso, é possível

utilizar o D-Bus para controlar os repro-

dutores de áudio BMPx e Banshee. Algo

útil para programas que usam rede é a

atual versão do pacote Avahi Zero-Conf

que suporta o D-Bus. Isso significa que

aplicativos podem ser informados quando

determinado servidor está na rede.

ProgramaçãoHá boas e más notícias para os progra-

madores do D-Bus. A boa é que estão

disponíveis bindings para uma série de

linguagens de programação [6], desde Glib-

C 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

NetworkManager, escrito em Python.

O método básico é o mesmo para todas

as linguagens de programação suportadas:

conectar ao bus, pegar uma referência

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. Usan-

do 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 wrap-

per em volta do acesso. O método bus

Figura 2: Trabalhando com o D-Bus e HAL: o gerenciador de volume do Gnome Volume Manager (no Fedora) que é configurado para o usuário via gnome-volume-properties (mostrado acima).

Listagem 2: cups.conf01 <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>

Listagem 3: hal.py01 import dbus02 03 bus = dbus.SystemBus()04 proxy_obj = bus.get_object ('org.U freedesktop.Hal',05 '/org/U 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()

Capa

42

D-Bus e HAL

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

get_object do objeto lhe dá essa habi-

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 Hello-

WorldObject é então chamado para rodar

o método __init__. O decorador @dbus.

service.method especifica os métodos

da interface.

Inicialização automáticaAté 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 configu-

ração .service para descobrir o nome. A

listagem 5 mostra um exemplo de um ar-

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 exte-

rior”, embora possa ser

penoso achar a função

correta na floresta da

sua API.

O D-Bus está se es-

palhando como um incêndio florestal

no mundo Linux, apesar de ainda estar

em desenvolvimento e das mudanças

de interface de uma versão para outra.

Se você estiver interessado em experi-

mentar o D-Bus nesse estágio, esteja

ciente de que a maioria das alterações

na API do D-Bus podem ocorrer sem

prévio aviso.

De volta para o futuroEm uma etapa que dá um certo toque de

ironia à história do desenvolvimento do

D-Bus, seus criadores agora acham im-

portante 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 desenvolve-

dores 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 ge-

renciar dispositivos hotplug, tais como

câmeras, discos rígidos ou scanners,

por exemplo. Já os desenvolvedores do

KDE estão lentamente migrando seus

aplicativos para o D-Bus, de modo que

os desenvolvedores de aplicativos talvez

devessem reservar algum tempo para

trabalhar com o D-Bus também. ■

Figura 3: O HAL Device Manager (chamado no Fedora de Gerenciador de Dispositivos) mostrando uma visão em árvore do hardware.

Sobr

e o

auto

r

Oliver foi por muito tempo operador de sistemas e programador na Ars Elec-tronica 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.

Informações[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

Listagem 4: server.py01 import gobject02 import dbus03 import dbus.glib04 import dbus.service05 06 class HelloWorldObject(dbus.U service.Object):07 def __init__(self, bus_name,U object_path):08 dbus.service.Object.__init__U (self, bus_name, object_path)09 @dbus.service.method('org.U firstfloor.HelloWorldIFace')10 def hello(self):11 return "blabla"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()

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

www.linuxmagazine.com.br

julho 2006 edição 21 43

D-Bus e Hal Capa

http://supertuxbr.blogspot.com

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

Explorando o ambiente gráfico E-17

Faça-sea luz!

O Enlightenment surgiu em 1997 como uma versão “mexida”

do gerenciador de janelas Fvwm. Quase dez anos depois,

seus desenvolvedores estão trabalhando na versão 0.17,

um ambiente gráfico rico em recursos, principalmente visuais,

além de dar aos usuários muitas opções de configuração.

Embora a versão anterior, Enlightenment 16, tenha vários

anos (e uma grande comunidade de usuários fiéis), a história da

versão atual de desenvolvimento, a DR 17 (development release

17), vem sendo bastante complicada. Os programadores tiveram

que reescrever muitas ferramentas e bibliotecas, eliminando

blocos inteiros de código obsoleto. Outro fato que afetou bastante

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á abas-

tecendo 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 mu-

danças estruturais. Por exemplo, a sintaxe dos arquivos de con-

figuraçã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 personali-

zações vão para o espaço.

InstalaçãoA maneira mais fácil de experimentar o E17 é iniciar o com-

putador pelo live CD Elive [2]. Especialistas podem baixar

o código mais atual direto do repositório CVS (Concurrent

Versions System). Há alguns scripts auxiliares para isso em

[3] e [4]. Um outro script, em [5], compila os pacotes Debian

necessários direto do CVS. Usar pacotes prontos é a maneira

mais fácil de instalar. Eles estão disponíveis para as mais

variadas distribuições.

Após a configuração do E17, o gerenciador de janelas sobe

com um visual limpo e bem arrumado (figura 1). Por padrão,

Figura 1: A bem arrumada área de trabalho padrão do Enlightenment.

Christopher Potter – www.sxc.hu

Análise

44www.linuxmagazine.com.br

julho 2006 edição 21

Enlightenment

http://supertuxbr.blogspot.com

Explorando o ambiente gráfico E-17

Faça-sea luz!

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.

ConfiguraçãoDiferentemente de outros gerenciado-

res 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,

mas a opção no terminal ainda tem mui-

to mais opções. Por exemplo, só nela é

possível carregar módulos e mudar ata-

lhos de teclado. O comando enlighten-

ment_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 Win-

dow Display. Usuários podem realizar

diversas configurações, tanto simples

quanto avançadas, para alterar o com-

portamento do ambiente.

Arquivos binários .eap também são

responsáveis pela inicialização de pro-

gramas. Esses arquivos incluem não

Figura 2: A nova ferramente gráfica de configuração.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 gerencia-dor de pacotes Yum a usar o repositório correto. Usuários das versões 2 e 3 do Fedora precisam acres-centar o repositório manualmente, editando o arquivo /etc/yum.conf para que ele fique assim:

[Didier]name=Didier's yum repository for e17 apps/libbaseurl=http://sps.nus.edu.sg /~didierbe/fedora/X/en/i386http://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 en-tradas abaixo ao arquivo /etc/apt/sources.list e rode os comandos apt-get update e apt-get install enlightenment para instalar.

# E17 para o Debian Siddeb http://www.soulmachine.net/debian unstable/# E17 para o Ubuntu Breezydeb 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/packa-ge.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.

www.linuxmagazine.com.br

julho 2006 edição 21 45

Enlightenment Análise

http://supertuxbr.blogspot.com

apenas o coman-

do e seus parâme-

tros para iniciar

seus aplicativos,

mas também os

ícones. Para criar

um novo .eap, é

preciso primeiro

iniciar o menu

flutuante e clicar

em Create Icon

(figura 4). Isso vai

abrir o Eap Editor

(figura 5). O cam-

po App name re-

cebe o nome do

aplicativo; já no

Executable deve

ser digitado o

comando para abrir o programa, in-

cluindo quaisquer parâmetros. Clicar

no grande botão abaixo de Icon abre o

gerenciador de arquivos Efm, para se

escolher o ícone.

Apesar de toda essa feitiçaria binária,

ainda há alguns arquivos de configu-

ração baseados em texto, por exemplo

o ~/.e/e/applicatins/bar/.order.

Esses arquivos e os outros .order

são usados para mudar a ordem das

entradas da barra IBar, favoritos e ou-

tros módulos. Os arquivos têm uma

estrutura bem simples, com apenas

um arquivo .eap por linha:

eterm.eap

firefox.eap

gimp.eap

bmp.eap

Decoração e módulosPapéis de parede também são armaze-

nados de forma binária, como arqui-

vos .edj, podendo ser tanto estáticos

quanto animados. Por padrão, o E17

tem quatro áreas de trabalho virtuais,

com planos de fundo independentes.

Novamente, a configuração está res-

trita à ferramenta do terminal enli-

ghtenment_remote. Por exemplo:

enlightenment_remote -desktop-bg-add 0 U

0 0 0 /caminho/para/fundo.edj

enlightenment_remote -desktop-bg-add 0 U

0 1 0 /caminho/para/fundo.edj

enlightenment_remote -desktop-bg-add 0 U

0 2 0 /caminho/para/fundo.edj

enlightenment_remote -desktop-bg-add 0 U

0 3 0 /caminho/para/fundo.edj

Arquivos binários para papéis de

parede são criados com o programa

edje_cc, que constrói um arquivo

.edj com um diretório de imagens

e o arquivo background.edc. O

manual do Enlightenment tem um

exemplo funcional em [8]. Arqui-

vos úteis para planos de fundos

estão disponíveis no site Get-e.org

[9]. Basta copiá-los no diretório

~.e/e/backgrounds/.

Para um efeito de transparência

verdadeira, o E17 precisa de módulos

extras. Mas os desenvolvedores não

pretendem integrar esse recurso no

futuro. No entanto, a transparência

“falsa” do Eterm pode ser usada no E17.

No entanto, cabe um alerta: estranhos

e irreproduzíveis erros podem – e pro-

vavelmente vão – ocorrer.

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 -*

x11-libs/ewl -*

x11-misc/e17genmenu -*

x11-misc/engage -*

x11-misc/entrance -*

x11-misc/iconbar -*

x11-plugins/e_modules -*

x11-terms/eterm -*

x11-terms/enterminus -*

x11-wm/e -*

Figura 4: O botão Create Icon permite a criação de novos ícones, com programas associados.

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

Análise

46

Enlightenment

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

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:

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 progra-

ma, 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 ar-

quivos .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 desenvolvedo-

res 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

fórum bastante útil em [11], além de

um movimentado canal IRC (#e) no

freenode.org.

ConclusãoPara quem procura um gerenciador

de janelas bem organizado, de visual

impecável, o E17 Development Rele-

ase vale realmente uma olhada mais

de perto. Essa versão é estável em sua

maior parte (embora perder suas con-

figurações após uma atualização possa

ser bem traumático). Os desenvolve-

dores 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

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

[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 a

utor

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.

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

www.linuxmagazine.com.br

julho 2006 edição 21 47

Enlightenment Análise

http://supertuxbr.blogspot.com

Crie seus próprios podcasts com o descomplicado editor de som Audacity. Acompanhe o tutorial de um experiente “podcaster”.

por Jon Watson

Grave podcasts com o Audacity

Estúdio caseiro

A través de podcasts, entrevistado-

res, comentaristas e aspirantes a

radialistas – sem acesso à estru-

tura 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 distri-

buição de arquivos sonoros, geralmen-

te 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

Allen Pope – www.sxc.hu

um novo arquivo, ele será baixado au-

tomaticamente.

Diversas empresas de hospedagem

brasileiras e internacionais oferecem

planos (pagos) de hospedagem de pod-

casts, cobrindo toda a parte técnica en-

volvida. O autor apenas precisa fazer o

upload do arquivo, e o ouvinte, cadas-

trar a URL do podcast em seu programa

cliente. Assim, podemos nos concen-

trar 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 ouvin-

tes. No entanto, neste artigo vamos

nos concentrar na produção do áudio.

Vamos mostrar como gravar, editar e

etiquetar (preencher as tags de infor-

mação) um podcast.

Primeiros-passosO 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 qual-

quer outro sistem operacional em que

seja possível compilá-lo.

Um dos incovenientes é que, de-

pendendo da distribuição, a tradução

pode estar incompleta, além de apa-

recerem erros com caracteres acentu-

ados na interface.

Apesar de o aplicativo não ser especi-

ficamente uma ferramenta para edição

de podcasts, ele possui um formidável

conjunto de ferramentas, tanto para ini-

ciantes 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,

Tutorial

48

Audacity

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

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 pude-

mos utilizá-la sem problemas neste artigo.

No entanto, o uso de uma versão beta não

é recomendado, mesmo não havendo ne-

nhum 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. Por-

tanto 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çãoNa maioria dos casos, o Audacity irá re-

conhecer o sistema de som corretamente,

bastando pressionar o grande botão verme-

lho e começar a falar no microfone ligado

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á esti-

ver 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 du-

pla (estéreo) (figura 1).

Para mudar de mono para estéreo, sele-

cione 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 prova-

velmente vai selecionar o errado. Para

dizer ao Audacity qual dispositivo usar,

devemos selecioná-lo na lista, na seção

Gravando da aba Dispositivos, em Prefe-

rências (figura 2). ➟

Figura 1: É possível reconhecer uma gravação estéreo (parte inferior) pela faixa de áudio dupla, embaixo da faixa mono.

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.

www.linuxmagazine.com.br

julho 2006 edição 21 49

Audacity Tutorial

http://supertuxbr.blogspot.com

Isso é praticamente tudo o que preci-

samos para começarmos a gravar. Cli-

que 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 bo-

tõ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 impor-

tantes. O Audacity oferece várias ma-

neiras 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 supe-

rior direito da janela principal do pro-

grama (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

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 dife-

rentes 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 en-

contrar 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 ver-

melho 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 é prova-

velmente afetada pelos diferentes dispo-

sitivos 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 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.

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

Tutorial

50

Audacity

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

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 ver-

melho. 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 preci-

samos usar de tempos em tempos foi o

medidor individual específico de cada

faixa (figura 1). Algumas vezes, ao im-

portarmos trechos de áudio, o som che-

gava muito alto ou muito baixo, o que

ajustamos usando o controle de volume

da faixa importada.

Importar áudioUm 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

alguns outros.

Para importar áudio, selecione Projeto | Im-

portar Áudio. Para importar MIDI, selecione

Projeto | Importar MIDI. Se houver um forma-

to que não seja compatível com o Audacity,

tente Projeto | Importar dados Raw.

Sempre que possível, o melhor é im-

portar áudio descompactado. Lembre-se

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 inexpe-

rientes 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 impor-

tar um arquivo .aup nativo do Audacity

para o próprio Audacity. Se quisermos

importar esse formato, primeiro devemos

salvar a gravação que desejamos, impor-

tar como arquivo WAV descompactado

e então importar esse arquivo.

EdiçãoPoucos autores gravam um podcast de

primeira. É necessário editar cuidado-

samente cada arquivo antes de colocá-lo

“no ar”. Sempre podem aparecer impre-

vistos como latidos de cachorro ou uma

campainha tocando, que precisam ser

retirados da gravação.

Há quatro ferramentas que sempre

são utilizadas no Audacity: os botões

de parar e pausar, a ferra-

menta para Alternar tempo

e o efeito Normalizar. Em

casos mais graves, foi usa-

do o filtro de remoção de

ruídos para eliminar inter-

ferências de fundo.

Os botões de início e pau-

sa funcionam de maneira

bem diferente. Se o botão

Parar for pressionado duran-

te a gravação, a faixa será

finalizada. Já pressionar o

botão Executar na seqüên-

cia faz com que o Audacity inicie uma

nova faixa. Inversamente, ao pressionar

o botão Executar, a faixa não será finali-

zada, 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 campai-

nha) que precise ser editado, deve-se

apertar o botão Parar. É mais fácil loca-

lizar 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 ferramen-

tas, à 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-Figura 5: Ative o microfone e seu volume no KMix.

Figura 6: A função Normalizar tem apenas dois controles.

www.linuxmagazine.com.br

julho 2006 edição 21 51

Audacity Tutorial

http://supertuxbr.blogspot.com

pressionante de efeitos (cheque o menu

Effect), sendo que as funções de Norma-

lizar e Remover ruídos são geralmente

mais usadas. Esses efeitos não são utili-

zados 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 ampli-

tude 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 normali-

zar todas as faixas. Como a ferramenta

Normalizar afeta somente o áudio sele-

cionado, é 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-

xas com muitos ruídos não sofrem uma

limpeza total, mas o resultado melhora

sensivelmente.

Sua aplicação envolve duas etapas. A

primeira é para analisar o perfil do ru-

ído a ser removido e a segunda é para

fazer a remoção de fato. O processo é

o seguinte:

P 1. Selecione alguns segundos de áudio de

uma faixa que contenha apenas o padrão

do ruído de fundo a ser removido.

P 2. Selecione Effect | Noise Removal.

P 3. Clique no botão Perceber perfil de

ruído. A janela irá colher uma amostra

do ruído e será fechada.

P 4. Selecione novamente o item Effect

| Remover ruído do menu.

P 5. Clique no botão Preview para ouvir

como ficou a faixa sem o ruído.

P 6. Se o som não estiver adequado, mexa

no medidor acima do botão Preview

para remover mais ou menos ruídos.

Pressione novamente o botão Preview.

Repita o processo até que esteja feliz

com a faixa.

P 7. Pressione o botão OK e o ruído de

fundo será removido.

É importante notar que o sucesso dessa

ferramenta depende muito do tipo de ru-

ído de fundo. Quanto mais previsível for

o barulho, maiores serão as chances de

a ferramenta removê-lo. Já remover uma

aceleração de carro repentina ou buzina-

das que não seguem nenhum padrão é

uma tarefa bem mais complicada.

Produto finalCom a experiência, vamos descobrindo

quais são as expectativas sobre um pod-

cast. Quanto mais essas expectativas fo-

rem atendidas, mais ouvintes satisfeitos.

Dois detalhes técnicos muito importantes

são o tipo de arquivo e sua qualidade.

Mesmo os entusiastas do Software Li-

vre reconhecem que o MP3 é o formato

mais usado. Ele é compatível com todos

os editores e reprodutores digitais. Por

que alguém pensaria em produzir um

show em outro formato? Porque o MP3 é

um formato proprietário, pertencente ao

instituto alemão Thomson & Fraunhofer,

cuja compatibilidade com programas

envolve taxas. Muitas pessoas não sabem

disso, dada a sua larga utilização. O OGG

Vorbis é a opção de formato livre para

gravação de podcasts.

No entanto, produzir apenas em for-

mato OGG seria ingenuidade. Simples-

mente não há suporte suficiente para o

formato OGG por parte dos ouvintes e

da indústria dos reprodutores de áudio

digitais. Certamente há alguns tocadores

que lidam com o OGG Vorbis, mas pou-

cos deles conseguem lidar com a bit rate

variável dos arquivos OGG Vorbis.

Cerca de 25% dos ouvintes do nosso

projeto baixam o podcast em OGG. O

restante prefere MP3. Por isso, recomen-

damos que você produza pelo menos

uma opção em MP3.

Devido à licença proprietária do MP3,

o Audacity não pode, por padrão, de-

codificar esse tipo de arquivo. Para fa-

zer isso, é preciso procurar o arquivo

libmp3lame.so e dizer ao Audacity para

localizá-lo. Caso esse arquivo não esteja

instalado em sua máquina (ele costu-

ma acompanhar diversos aplicativos

que manipulam MP3), copie o arquivo

libmp3lame.so para um local conhecido

da sua máquina.

Use então o menu Arquivo | Preferên-

cias | Formatos de arquivo | aba Find

Library, para indicar onde está esse ar-

quivo. Já para o formato Ogg, o Audacity

exporta sem nenhuma etapa adicional.

Antes de codificar qualquer coisa, é

preciso se certificar de que a codificação

será feita com a melhor configuração. A

primeira configuração a ser considerada

é a freqüência (sample rate). Selecione

a aba Arquivo | Preferências | Qualidade

e veja as opções na lista Taxa padrão

de amostragem.

Figura 7: A ferramenta Remover Ruídos já salvou muitos podcasts.

Tutorial

52

Audacity

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

De um jeito inacreditavelmente sim-

ples, a freqüência (expressa em Hertz)

controla com que periodicidade (por

segundo) o Audacity codifica um bit de

áudio. Quanto mais alta a freqüência,

maior é a qualidade do áudio. Infeliz-

mente, uma freqüência alta significa um

arquivo grande.

Considerando que os ouvintes irão

baixar o arquivo pela Internet, quanto

menor o arquivo, melhor. A configuração

da freqüência vai afetar tanto o arquivo

MP3 quanto OGG.

A configuração da taxa de bits (bit-rate)

também tem grande importância para a

qualidade do arquivo. Ao contrário da

freqüência, o Audacity tem configura-

ções separadas para as taxas de bits de

MP3 e OGG.

Para chegar à área de configuração do

MP3 e do OGG Vorbis, selecione Arquivo

| Preferências e escolha a aba Formatos

de arquivo. As áreas que nos interessam

são: Configurações de exportação OGG e

Configurações de exportação em MP3.

A exportação OGG do Audacity con-

siste em um único medidor de zero a

dez. A configuração da taxa de bits para

o formato MP3 consiste em uma lista

entre 16 e 320 Kbps.

O princípio básico para editar um pod-

cast é criar o menor arquivo possível

com boa qualidade. Não há uma única

combinação de bit-rate e freqüência que

seja suficiente para todos. A configura-

ção certa depende muito do conteúdo.

Um podcast de voz, por exemplo,

pode ser codificado adequadamente em

uma freqüência de 22050Hz e 48Kbps de

bit-rate. Um podcast apenas de música

deve ser codificado com um nível mais

alto, em torno de 96000Hz de freqüência

e 128kbps de bit rate ou mais. Essas

configurações representam o máximo

e o mínimo. Encontrar os pontos inter-

mediários depende de você.

O podcast “JaK Attack!” (do autor des-

te artigo) é uma longa fala com uma

única música no meio. Como a parte

musical do show é de apenas 2 ou 3

minutos, não é vantagem codificar o

arquivo completo como se fosse em pod-

cast de músicas. Por isso, normalmente o

show é codificado em 22050Hz e 48Kbps

(para MP3) ou 0Kbps (para OGG). Um

episódio típico do JaK Attack! tem cerca

de 5 ou 6 MB por 15 minutos.

São feitos ainda alguns ajustes, de-

pendendo do conteúdo. Se houver mais

músicas, então devemos codificá-lo com

uma taxa maior. Para menos músicas,

uma taxa menor. Experimentação é a

chave. Fazer algumas experiências com

as configurações e arquivos pequenos

para se testar a qualidade servirá como

referência rápida para a codificação de

um arquivo maior.

Em qualquer caso, uma vez tendo de-

terminado a bit-rate e a freqüência, você

pode codificar o arquivo selecionando

Arquivo | Exportar como MP3 ou Arquivo

| Exportar como OGG Vorbis.

TagsEtiquetas (tags) de identificação são

pequenas porções de dados embuti-

das no arquivo de áudio. A maioria

dos reprodutores digitais consegue ler

e exibir essas informações enquanto

o arquivo está sendo reproduzido. O

Audacity tem incluída uma ferramenta

para editar as etiquetas, que no entan-

to não relaciona o formato podcast, e

portanto não é perfeita.

Para colocar uma tag em seu arquivo,

selecione Projeto | Editar Tags ID3 (figura

8). Note que essas tags serão aplicadas

apenas nos arquivos MP3 e não nos

OGG. Será preciso uma ferramenta ex-

clusiva para esse fim, como o EasyTag

[3], que, inclusive, etiqueta arquivos

OGG Vorbis. ➟

www.linuxmagazine.com.br

julho 2006 edição 21 53

Audacity Tutorial

http://supertuxbr.blogspot.com

Não vale a pena utilizar a ferra-

menta 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 eti-

queta normalmente fica rolando na

tela do reprodutor de som enquanto

o arquivo toca. Recomenda-se co-

locar a data da produção logo após

o título.

P Gênero: escolha “podcast”, se pos-

sível. Senão, outro também deve

funcionar.

Há muitos outros campos de iden-

tificação, mas os acima são os três

que devem ser obrigatoriamente

preenchidos.

Última etapa: RSSO feed RSS do seu podcast é o elemento

mágico que qualifica seu arquivo de

áudio como um podcast. Sem um RSS

feed formatado de maneira adequada

para “anunciar” o arquivo, os ouvin-

tes não conseguirão assinar o podcast.

Isso não necessariamente o deixa de

fora do negócio, já que ainda é possível

baixar o arquivo manualmente. Mas

uma boa parte das pessoas gostam de

ouvir e baixar podcasts (automatica-

mente) pelos seus clientes de podcast,

como o Amarok.

Um cliente de podcast (chamado às

vezes de podcatcher) é um agregador

RSS capaz de reconhecer o elemento

<enclosure> do RSS 2.0. Ele informa

sobre a presença de uma URI de um

arquivo binário. Um programa de

podcast tem a habilidade de checar

os feeds assinados por novos arqui-

vos e baixá-los automaticamente.

Os diferentes clientes de podcast têm

funções além dessas básicas, mas qual-

quer um deve ser capaz de cumprir ao

menos as funções de checagem e down-

load automáticos. Alguns dos progra-

mas mais populares são o Bashpodder,

e sua variante para o GNU/Linux, e o

iTunes para Windows ou Mac. O Ama-

rok também possui algumas funções

avançadas de podcast.

Para os que não dispensam deta-

lhes, o elemento <enclosure> é um

subelemento do <item> e requer três

parâmetros: o protocolo (geralmente,

HTTP) e URI para o arquivo binário,

a extensão em bytes e o formato do

arquivo. Um elemento <enclosure>

típico fica assim:

<enclosure url=”http://www.U

podcastingrocks.com/media/mypodcast_U

20060224_12.ogg” length=”16257377” U

type=”audio/x-ogg”>

ou

<enclosure url=”http://www.U

podcastingrocks.com/media/mypodcast_U

20060224_12.mp3” length=”16257377” U

type=”audio/mpeg”>

A maioria, senão todos os sites de

hospedagem de podcast, irá gerar um

feed RSS formatado de modo adequado

como parte do serviço. Se você mesmo

for hospedar seus podcasts, alguns

aplicativos de blog, ou certamente o

Feedburner, podem criar elementos

<enclosure>. Provavelmente a melhor

fonte de informação sobre como RSS e

podcasts trabalham juntos é a página

do Wikipédia sobre Podcast [4] ou RSS

Enclosures [5].

Após criar, editar, codificar e etique-

tar o arquivo de áudio, basta contratar

um serviço para “subir” o arquivo, que

já vai fornecer um RSS feed formatado

adequadamente. Feliz podcasting! ■

Informações[1] Audacity: http://audacity.sourceforge.net

[2] Página de ajuda do Audacity: http://easytag.sourceforge.net/

[3] EasyTag: http://easytag.sourceforge.net/

[4] Podcast no Wikipédia: http://pt.wikipedia.org/wiki/Podcast

[5] RSS enclosures no Wikipédia: http://en.wikipedia.org/wiki/RSS_Enclosures

Sobr

e o

auto

r

O canadense Jon Watson é um entusiasta do GNU/Linux. Quando não está cui-dando de seu podcast “The JaK Attack!” (http://jon.libsyn.com), pode ser encon-trado escrevendo no blog “b5 Media’s New Linux User” (http://www.newlinu-xuser.com), ou no seu blog pessoal, “Ta-les from the Motherboard” (http://www.jonwatson.ca). Ele mora na montanhosa Calgary, em Alberta, com sua noiva (a infame Kelly Penguin Girl, co-autora do Jack Attack) e seus dois cachorros.

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

Tutorial

54

Audacity

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

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

por Augusto Campos

Área de trabalho na web

Para onde foi meu desktop?

Em uma edição dedicada aos aplicati-

vos e confi gurações do desktop, achei

apropriado falar sobre um tema que

vem atraindo minha atenção: a migração

cada vez maior do meu desktop para den-

tro do ambiente do navegador web.

A nova geração de aplicativos rodan-

do em ambientes web ainda tem várias

limitações, mas, em compensação, tem

uma série de vantagens que não são co-

muns a todos os aplicativos “tradicio-

nais”: rodar em múltiplas plataformas

de forma quase transparente, facilitar a

colaboração aberta ou em equipes, for-

mas simplifi cadas de controle de versões,

auxílio à divulgação, e poder ter acesso

a seus documentos a partir de qualquer

computador conectado à Internet.

No meu caso particular, o processo co-

meçou com o correio eletrônico. Natural-

mente eu já havia usado webmails antes,

mas apenas como complemento ao cliente

de email tradicional, ou em situações espe-

ciais, como em viagens. Mas foi o advento

do Gmail , anunciado em um primeiro de

abril (e que eu achei que fosse mentira),

que acabou me dando condição de fazer

o primeiro grande salto para a web.

Tenho preocupações com privacidade,

confi dencialidade, e tomo minhas pro-

vidências para dispor de alternativas e

backups em relação ao email do Gmail,

mas hoje ele certamente é responsável

por mais de 90% do meu uso de correio

Tom

Den

ham

– ww

w.sxc.h

u

eletrônico, e eu até ativei um domínio

pessoal no serviço Gmail for Domains ,

e está funcionando super bem.

Logo em seguida, a minha dependência

em relação aos resumos RSS de sites de

tecnologia cresceu, e o fato de eu acessar

a Internet a partir de pelo menos 5 compu-

tadores diferentes ao longo da semana me

fez buscar uma alternativa centralizada.

Experimentei o Google Reader, mas não

gostei muito da abordagem, aí logo passei

para o Bloglines , que hoje gerencia todos

os feeds que eu leio, e é um dos principais

insumos do BR-Linux.

Dados esses 2 primeiros passos, acabei

pegando impulso. Hoje, eventualmente

registro listas de compromissos e pen-

dências no Google Calendar , onde outros

colegas podem consultar e coordenar seus

agendamentos comigo, já experimentei

– e gostei, embora ainda não o sufi ciente

para adotar em defi nitivo – editores de

texto colaborativo online, como o Writely ,

e ainda aguardo o surgimento de uma

planilha de cálculo online que me agrade

– as existentes não atendem aos meus

requisitos. Estou longe de trocar o Open-

Offi ce.org pelos seus equivalentes online,

mas tem valido a pena acompanhar os

progressos nessa área: novos serviços

como o Gliffy , que permite desenhar

organogramas e fl uxogramas online e

de forma colaborativa, têm entrado nos

meus bookmarks constantemente.

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 amadu-

recer, e não sei se algum dia vou aceitar ar-

mazenar documentos sensíveis em serviços

similares aos que já existem hoje. Mas con-

forme 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 direta-

mente na web, e basta um acesso ao seu

site de buscas preferido para encontrar

todas elas ;-). ■

Sobr

e o

auto

r

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

www.linuxmagazine.com.br

julho 2006 edição 21 55

Coluna do Augusto SysAdmin

http://supertuxbr.blogspot.com

Administração baseada em políticas de uso e 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

Análise do gerenciador de sistemas ZENworks 7

Gerentenovo

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 in-

troduzir uma interface comum e uma

arquitetura unificada para o conjun-

to completo de subcomponentes do

ZENworks – Server Management, Desktop

Management para Windows e Asset Ma-

nagement – com a versão 7. Assim que

ela saiu, o ZLM 7 era o único compo-

nente 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

He

nk L

. – ww

w.sxc

.hu

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 totalO 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 gerencia-

mento 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 geren-

ciamento centralizado. O design foca

nas políticas de uso. Usuários de outros

produtos ZENworks já devem estar fami-

liarizados 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 custo-

mizados, 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.

SysAdmin

56

ZENworks 7

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

Árvore hierárquicaO 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 meta-

informações em um banco de dados cen-

tral. 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 dificil-

mente pode ser considerado um método

dos mais avançados. Alguém deve ter

esperado algo mais criativo de uma em-

presa 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 admi-

nistrativos 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.

Dentro das zonas de gerenciamento, o

administrador define conjuntos e políti-

cas, que podem ser delegados a grupos;

e pastas, que herdam os atributos.

Como a herança é um processo hie-

rá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íticasA 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-

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 su-

portem 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.

ImagensA segunda grande mudança é a manipu-

lação de imagens integrada ou, mais es-

pecificamente, 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 fon-

tes fornecem o material básico. O supor-

te 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. ➟

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

Gerenciamento de desktopsO 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 Con-soleOne 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.

www.linuxmagazine.com.br

julho 2006 edição 21 57

ZENworks 7 SysAdmin

http://supertuxbr.blogspot.com

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 su-

porta nada menos que cinco diferentes

métodos, não haverá problemas para

encontrar o método mais correto para

o Suse ou Red Hat.

InventáriosInventários também são uma novidade.

Isso permite que administradores obte-

nham um conjunto completo de dados do

hardware e software gerenciados e exami-

nem os dados para gerar relatórios (figura

3). É possível que administradores descu-

bram 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 menciona-

dos anteriormente, os administradores

agora podem usar catálogos.

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 paco-

tes RPM. A distribuição de software e o

gerenciamento de patches no ZLM estão

firmes como uma rocha, como sempre.

AdministraçãoUma 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 funcio-

nalidades 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 admi-

nistração com o ZLM 7.

DeficiênciasEmbora o ZLM 7 seja um produto con-

vincente 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 im-

portação automática de conjuntos de

pacotes ainda não existe. Ferramentas

de workflow, que permitiriam ao admi-

nistrador 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. Ad-

ministradores de ambientes que utilizam

Linux e Windows no desktop precisam

aprender duas interfaces de gerencia-

mento e trabalhar com duas infraestru-

turas 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 é es-

tranho. O ZLM 7 não roda no Novell OES

para Linux (!!), sendo restrito ao SLES

9.x. Além do mais, o Konqueror, navega-

dor 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ãoO ZLM amadureceu consideravelmente

na versão 7. As novas funções represen-

tam 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 gerenciamen-

to 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. ■

Figura 3: O ZLM 7 mantém um inventário abrangente do hardware e software no sistema.

SysAdmin

58

ZENworks 7

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

http://supertuxbr.blogspot.com

O versátil Op é uma ferramenta poderosa que facilita o gerenciamento de privilégios de usuários.por Hans-Georg Esser

Op: alternativa ao sudo

Root fácil

C omo o Linux é um sistema multi-

usuário e os privilégios de con-

tas 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 à Inter-

net. 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 en-

tramos 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.

A solução é o usuário assumir ape-

nas um conjunto restrito de privilégios,

especificados pelo administrador. Por

exemplo, um usuário pode ter permis-

sã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 alterna-

tiva Op facilita esse processo tanto para o

administrador quanto para o usuário.

O legado sudoO 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 exem-

plo, 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 exem-

plo, o comando sudo killall -9 com-

mand 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 privi-

lé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

SysAdmin

60

Op

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

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 mensa-

gem 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

Com a sintaxe apropriada, não há re-

clamaçõ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 de-

vem se lembrar da sintaxe precisa de

qualquer comando que estejam au-

torizados a executar – ou então eles

podem digitar sudo -l para checar

as opções:

abc@kira ~]$ sudo -l

User abc may run the

following commands

on this host:

(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.

Alternativa OpO 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 configu-

raçã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:

halt /sbin/halt; users=abc

Se preferir que o usuário digite sua

própria senha para autorizar o comando

(seguindo o método sudo tradicional), adi-

cione apenas a opção password à linha:

halt /sbin/halt; users=abc password

Isso permite configurar

o Op para tarefas críticas

em questão de minutos.

Note que é preciso es-

Listagem 1: Iniciando no Op01 messages /bin/cat /var/log/messages; users=abc02 syslog /bin/cat /var/log/syslog; users=abc

Listagem 2: Iniciando e interrompendo o Apache

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"

Figura 1: O site do sudo traz informações detalhadas sobre a configuração.

www.linuxmagazine.com.br

julho 2006 edição 21 61

Op SysAdmin

http://supertuxbr.blogspot.com

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.

CompilaçãoA compilação do Op usa os procedimen-

tos normais, mas não esqueça de ajustar

essas duas opções do configure:

./configure --prefix=/usr --sysconfdirU

=/etc

make

make install

Sem a opção --prefix, o programa irá

se instalar abaixo de /usr/local/; e se

a opção --sysconfdir ficar de fora, ele

irá procurar os arquivos de configuração

em $PREFIX/etc/.

Não tivemos problemas para insta-

lar a atual versão do Op (1.32) em uma

máquina com uma distribuição antiga:

Suse 9.3. Em um Debian

Sarge, tivemos que exe-

cutar apt-get install

flex antes de executar

o make.

ExemplosDigite 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

listagem 1 . Digite chmod 600 /etc/op.d/

log.conf para modificar os privilégios.

Acessos de leitura e escrita a esse arqui-

vo devem ser restritos ao usuário root.

Se você esquecer de executar chmod, o

programa não vai funcionar e ainda vai

mostrar uma mensagem de erro estra-

nha, dizendo que não pôde encontrar o

arquivo de configuração.

As duas linhas da listagem 1 criam dois

novos atalhos de comando, messages

e syslog, permitindo ao usuário abc

acessar os dois arquivos de log ao exe-

cutar os comandos op

messages e op syslog.

A configuração especifi-

ca 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 ca-

minho completo.

Scripts OpUma das funções mais

úteis do Op é a capaci-

dade de usar scripts shell

diretamente no arquivo

de configuração. A lista-

gem 2 mostra um exem-

plo que cria um atalho

de comando chamado

log. Ele permite a usu-

ários autorizados lerem

os arquivos /var/log/

messages e /var/log/

syslog. Scripts podem analisar e avaliar

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 lis-

tagem 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

'security' logfile

Os scripts Op são uma vantagem que

o Op tem sobre o sudo: para chegar

aos mesmos resultados com a ferra-

menta antiga, seria preciso escrever

um script, armazená-lo no sistema de

arquivos (por exemplo, em /usr/lo-

cal/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 ar-

quivo de configuração sudo.

Listagem 3: Op com variáveis01 test /usr/bin/env;02 users=abc03 $LANG $TERM $SHELL $PATH

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

SysAdmin

62

Op

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

Usuários externosÉ 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:

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 ferramen-

ta 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áriosAssim como o sudo, o Op pode agru-

par 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 gru-

po ADMINS com uma entrada como

a seguinte:

ADMINS=(abc|def|ghi)

Para todos os comandos que esses

usuários podem executar, apenas

especifique users=ADMINS. Se for

preciso adicionar um quarto admi-

nistrador jkl ao grupo, ou definir um

novo comando, mais tarde, para o

grupo, basta alterar uma linha no

arquivo de configuração.

Mais funçõesO Op pode gerenciar várias máquinas

(com referência aos nomes das máqui-

nas), permitindo a administradores

configurar o comportamento de diver-

sos 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 va-

riáveis. Como alternativa, é possível

especificar manualmente um conjunto

de variáveis que se deseja manter adi-

cionando seus nomes de entrada na for-

ma $Nome (com um símbolo de cifrão à

frente). A listagem 3 exemplifica como

usar variáveis.

O comando de atalho test simples-

mente chama o programa env, que gera

uma lista de variáveis de ambiente.

ConclusãoO 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. ■

Sobr

e o

auto

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

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

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

www.linuxmagazine.com.br

julho 2006 edição 21 63

Op SysAdmin

http://supertuxbr.blogspot.com

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

Criptografia de emails com Anubis

Proteção egípcia

E specialistas reconhecem o perigo

de se enviar planos, dados pesso-

ais, acordos confidenciais em texto

puro pela Internet. Já os usuários rara-

mente prestam atenção nesses alertas.

Dificilmente, alguém passa a usar ferra-

mentas 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 gerenciamen-

to das chaves de assinatura digital

dos usuários e para criptografar e

descriptografar mensagens. Esses

serviços acabam com a necessidade

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.

MUA 1

(Mutt)

MUA 2

(Mozilla)

MTA 1

(Exim)

MTA 2

(Postfix)

Caixade

Entrada

SysAdmin

64

Anubis

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

de longas e complicadas configura-

ções PGP nos clientes de email de

cada estação.

Administradores Linux têm à dispo-

siçã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 dispo-

ní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 dae-

mon 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 ma-

neiras, mas nesse caso, um dos truques

mais úteis é a habilidade de criptografar

as mensagens com o GnuPG.

O Anubis é uma ferramenta ma-

dura, 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

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. ➟

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.

MUA 1

(Mutt)

MTA 1

(Postfix)

GNU

Anubis

� �

Caixade

Entrada

Tabela 1: Abreviações deste artigoGPG GNU Privacy Guard.

Guile GNU’s Ubiquitous Intelligent Language for Extensions (interpre-tador 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 auten-ticaçã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).

Quadro 1: Truques SMTPAlguns 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 = anubis.abyssworld.de:24username = "haischt"password = "access4anubis"starttls = disabled

Nesse exemplo, o serviço envia uma mensagem ao servidor Anubis (anu-bis.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.

www.linuxmagazine.com.br

julho 2006 edição 21 65

Anubis SysAdmin

http://supertuxbr.blogspot.com

SMTP RelayUma técnica mais comum para crip-

tografar ou assinar mensagens é cada

cliente usar um plugin PGP como o

Enigmail [11]. Já uma ferramenta como

o Anubis oferece um caminho alter-

nativo: 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, as-

sinando/criptografando a mensagem

e, finalmente enviando a mensagem

para o provedor.

O programa pode rodar em um servi-

dor separado ou na mesma máquina do

cliente de email ou MTA. Usuários ape-

nas precisam configurar o Anubis como

o servidor de email em seus clientes (leia

o quadro 1: “Truques SMTP”).

InstalaçãoGraças ao autoconf, o Anubis é real-

mente fácil de configurar e instalar.

Mas certifique-se antes de qual ban-

co de dados será usado para conter os

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 dae-

mon 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 opcio-

nais 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)

Infelizmente, o Anubis não é compa-

tí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 Di-

rectory. 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

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.

MUA 1

(Mutt)

MTA 1

(Postfix)

GNU

Anubis

Caixade

entrada

Ident-

Daemon

?

Listagem 1: Modo Pixie01 #> Reading system configuration file /usr/local/ etc/anubis/anubisrc...02 #> UID:0 (root), GID:0, EUID:0, EGID:003 #> GNU Anubis bound to 192.168.1.6:2404 #> [68239] GNU Anubis is running...05 #> [68239] Connection from 192.168.120.239:131006 #> [68244] IDENT: connected to 192.168.120.239:11307 #SERVER >>> 1310, 24 : USERID : UNIX : haischt(36)08 #> [68244] IDENT: resolved remote user to haischt.09 #> [68244] UID:65534 (nobody), GID:65534, EUID:65534, EGID:6553410 #> [68244] Getting remote host information...11 #> [68244] Connected to 192.168.1.6:2512 #> [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)

SysAdmin

66

Anubis

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

os módulos foram configurados corre-

tamente. Após a instalação, digite anu-

bis-show-config-options para ver se

os módulos requeridos estão realmente

disponíveis.

O Anubis espera encontrar seus da-

dos 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.

Configuração pessoalAdicionalmente, usuários que precisam

da possibilidade de enviar email atra-

vé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,

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.

Autenticação PixieO Anubis possui diversas maneiras de

autenticar usuários. O modo Pixie é um

dos mais simples. Ele é ativado pela

entrada mode transparent no bloco do

controle do arquivo de configuração

global. Nessa configuração, um dae-

mon 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 es-

pecífico. O servidor precisa confiar

no daemon Ident, e esse tipo de ve-

rificaçã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.

Prático, mas inseguroAo contrário do que o nome do pro-

tocolo AUTH sugere, o Identd não faz

autenticação. É um daemon projetado

para monitorar ataques: o administra-

dor do sistema atacado pode usar o

Ident para verificar a identidade dos

usuários de uma máquina fonte em

Listagem 2: Configuração Dixie01 #–BEGIN CONTROL–02 ## ...03 #mode auth04 ## ...05 #–END–06 #07 #–BEGIN AUTH–08 #smtp-greeting-message ESMTP Anubis (4.0.0)09 #smtp-help-message help message10 ### Simple text database:11 ## sasl-password-db file:/usr/ local/etc/anubisdb.txt

12 ### Relational MySQL Database13 #sasl-password-db mysql:// mail:access4anubis@mysql. abyssworld.de/ mail;table=anubis_user14 #sasl-allowed-mech NTLM GSSAPI DIGEST-MD5 CRAM-MD515 #–END–16 #17 #–BEGIN TRANSLATION–18 ##translate [USER@]ADDRESS into USERNAME19 #translate [email protected]. haischt.name into haischt20 #–END–

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.

RDBMS

MUA 1

(Mutt)

MTA 1

(Postfix)

GNU

Anubis

� �

?

Caixade

entrada

www.linuxmagazine.com.br

julho 2006 edição 21 67

Anubis SysAdmin

http://supertuxbr.blogspot.com

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 pa-

drão ([7] e [8]).

A listagem 1 mostra uma sessão Anu-

bis em modo Pixie. As linhas 6 (tenta-

tiva 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 Anu-

bis passa a mensagem para o servidor

(linhas 11 a 14).

Clientes Windows XP com freqüên-

cia 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 (desbloque-

ando essa porta ou desativando o fi-

rewall). Além disso, o programa de

email não pode usar nomes de usuário

SMTP-AUTH em modo Pixie.

Alternativa melhorO modo Dixie (figura 4) é novo e me-

lhor 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 relacio-

nal). A opção de arquivo de texto inclui

o ID de usuário (SMTP-AUTH-ID), a se-

nha 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 sepa-

rados por dois-pontos (“:”), mas essa

sintaxe não funciona nem no Anubis 4.0.

O opção de texto funciona bem para tes-

tes 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

[email protected]/U

mail;table=anubis_test' < /usr/local/U

etc/anubis/anubisdb.txt

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.

Tabela 2: Campos do banco de dados DixieCampo 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.

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.

SysAdmin

68

Anubis

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

IntegraçãoPara especificar que o Anubis deve usar

a nova tabela, o administrador preci-

sa 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 CRAM-

MD5 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á configu-

rado para esse tipo de conexão. Na li-

nha 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-

gistro que case com as credenciais do

usuário haischt, e encontra esse registro

(linhas 18 a 20).

A linha 20 contém um detalhe inte-

ressante. É aqui que o Anubis associa

o usuário haischt com o endereço

[email protected]. A

seção TRANSLATION cuida de mape-

ar endereços de email a nomes locais

(veja as últimas quatro linhas da lista-

gem 2). Essa seção TRANSLATION do

arquivo de configuração também pode

mapear todos os endereços em um do-

mínio para um nome compartilhado

(translate Domain into user). O

modo Dixie é útil, já que ele agrega

padrões atuais como SMTP-AUTH e

dá acesso a usuários sem uma conta

Unix. Mas também é verdade que a

implementação atual do modo Dixie

tem algumas fraquezas. ➟

Quadro 2: Formatos de expressões regularesO 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.

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.

www.linuxmagazine.com.br

julho 2006 edição 21 69

Anubis SysAdmin

http://supertuxbr.blogspot.com

Senhas são armazenadas no banco

de dados de maneira aberta. O cam-

po para o arquivo de configuração de

usuário aponta para um arquivo exis-

tente. Seria mais prático armazenar

parâmetros em um campo BLOB (Bi-

nary Large Object) – para conjuntos de

dados binários em um banco de dados

– ou em uma tabela separada.

Como o Anubis tem as creden-

ciais 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 acres-

centar atributos ao cabeçalho do

email usando a sintaxe add header

[nome] value:

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

O Anubis também entende execução

condicional. Se um email tem um ca-

beç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:

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

remove [with-signature]

signature-file-append yes

A expressão signature-file-append

yes acrescenta um separador “--”, se-

guido do conteúdo do arquivo ~/.sig-

nature. Já body-append acrescentaria

o conteúdo de um arquivo qualquer

no final da mensagem, enquanto body-

clear-append removeria a mensagem

original, antes de fazer isso.

AssuntoAlguns 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:

if header [Subject] "^ *\\[sig\\](.*)"

remove [Subject]

add [Subject] "\1"

signature-file-append yes

Essa instrução if verifica se o as-

sunto começa com [sig] (sintaxe

estendida Posix, especificada sem

precisão). A linha do assunto é então

removida completamente e uma nova

linha – que reflete a parte original do

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

disso, através de gatilhos. Usuários

podem disparar eventos via email

simplesmente incluindo comandos

no final do assunto, seguidos por

duas arrobas (“@@”). Por exemplo,

“assunto@@assinar”. O seguinte ga-

tilho cuida de todo o resto:

trigger "assinar"

gpg-sign [email protected]

done

Listagem 3: Sessão Dixie01 #> Reading system configuration file /usr/local/ etc/anubis/anubisrc...02 #> UID:0 (root), GID:0, EUID:0, EGID:003 #> GNU Anubis bound to 192.168.1.6:2404 #> [68643] GNU Anubis is running...05 #> [68643] Connection from 192.168.120.10:4050106 #CLIENT <<< 220 abyssone. abyssworld.de GNU Anubis ESMTP; Identify yourself(64)07 #CLIENT >>> EHLO [192.168.121.2](22)08 #CLIENT <<< 250-Anubis is pleased to meet you.(36)09 #CLIENT <<< 250-STARTTLS(14)10 #CLIENT <<< 250-AUTH DIGEST-MD5 CRAM-MD5 (31)11 #CLIENT <<< 250 HELP(10)12 #CLIENT >>> STARTTLS(10)13 #[68647] anubis.pem: No such file or directory14 #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)

SysAdmin

70

Anubis

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

Sobr

e o

auto

r

Daniel S. Haischt já cursou um MBIS (Master Business Information Systems) e agora enfrenta um MBIM (Master Busi-ness Information Management) em Reu-tlingen, 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.

Informações[1] GNU Privacy Guard:

www.gnupg.org

[2] GPG Relay: sites.inka.de/tesla/gpgrelay.html

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

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

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

[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

O comando gpg-sign assina o

corpo do email com a chave ID es-

pecificada. 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 “minhase-

nha”). O GPG precisa da chave do

usuário para criptografia. Um gatilho

extendido que analise dados adicio-

nais na linha do assunto também

pode cuidar disso:

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

gpg-encrypt "\1"

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

done

A linha de assunto deve conter o ga-

tilho encrypt, seguida pela chave ID

do destinatário: Olá João!@@encrypt:

Receiver-Key.

ConclusõesTarefas 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 coman-

dos 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 ain-

da tem muito o que melhorar (o

modo Pixie aplica a insegura téc-

nica Ident, e o modo Dixie guarda

senhas em texto puro no banco de

dados). Keyrings PGP e configu-

rações específicas de usuários são

armazenadas no sistema de arqui-

vos 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 melho-

rar esse verdadeiro deus da mani-

pulação de emails. ■

www.linuxmagazine.com.br

julho 2006 edição 21 71

Anubis SysAdmin

http://supertuxbr.blogspot.com

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

Bibliotecas C no Python

Reutilização de código

N os anos 70 o pessoal da enge-

nharia de software começou a

imaginar um futuro perfeito.

Não seria preciso escrever programas

para problemas já resolvidos – o famo-

so “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 tra-

balho 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 desen-

volvimento de bibliotecas e sistemas

e continuam sendo insubstituíveis

em muitos âmbitos. A linguagem C

sempre se destacou por sua portabi-

lidade (é 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.

Beverley Bridge – www.sxc.hu

OpenGLA 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 cria-

do 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 defi-

nem á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 infi-

nito 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 momen-

to, 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 down-

load em [2]) podemos ver um programa

OpenGL muito simples, que será, no en-

tanto, a base para nossa biblioteca. Para

compilá-lo, devemos executar make lis-

tagem1 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 pa-

rar 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, precisare-

mos de algo especial: o SWIG [3].

SWIGO SWIG é uma aplicativo desenvolvido

em 1995, no departamento de física teó-

rica do Laboratório Nacional Los Álamos

Programação

72

Python

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

[4]. Lá foi desenvolvida a primeira bomba atômica e, desde en-

tã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 biblio-

tecas 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.

ExemploA 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(). Fo-

ram 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 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 novamen-

te? 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 interfaceO 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.

www.linuxmagazine.com.br

julho 2006 edição 21 73

Python Programação

http://supertuxbr.blogspot.com

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 ma-

neira 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:

%{

#include <GL/glut.h>

%}

Entre os símbolos %{ e %} pode ser introduzida qualquer decla-

ração extra ou incluído código que não exista no arquivo lista-

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

no arquivo listagem3.i (download em [2]). Basicamente são

os cabeçalhos das funções que queremos usar no Python com

a palavra extern na frente. Essa palavra diz ao SWIG que são

funções que existem em um diretório externo.

Palavras mágicasA “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 seguin-

tes 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)

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 se-

guintes. 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 sis-

tema, mas as que aparecem em Makefile são as mais comuns.

Nova bibliotecaPor incrível que pareça, terminamos. Já temos nossa biblio-

teca. 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:

> python

Python 2.4 (#2, Apr 3 2006.22:24:02)

[GCC 3.4.2 {FreeBSD] 20040728] on freebsd5

Type “help”, “copyright”.” credits” or “license” for more U

information.

>>> import listagem3

>>>

Com o comando import, acabamos de carregar a biblioteca

e a temos pronta para uso. Vamos começar pela ação mais

simples: iniciar o programa com as opções padrão:

>>>listagem3.arranque()

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

Programação

74

Python

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

Ao teclarmos [Enter], aparecerá uma janela na tela com

um objeto que se move numa grande velocidade. É o nosso

cubo, se movendo rapidamente. Se pressionarmos a tecla

[2] o cubo pára. Para colocá-lo em movimento novamente,

devemos pressionar [1].

Se usarmos os botões do mouse enquanto o cubo gira, vere-

mos que cada botão muda a direção de giro para um sentido

diferente. Se estivermos cansados do cubo ou com enjôos

porque o computador é muito rápido, é só pressionar [Q]: a

janela desaparecerá. Voltamos a ver o prompt >>> do Python.

Isso já é um sucesso: conseguimos executar uma função C

que interage com o OpenGL a partir do Python. Mas, mesmo

assim, não fizemos nada – poderíamos ter feito o mesmo com

um shell script!

Vamos interagir mais com a biblioteca. Se olharmos o ar-

quivo de interface listagem3.i, veremos as funções que

estão disponíveis para uso a partir do Python. Vamos mudar

a velocidade de giro para podermos ver o cubo.

>>> listagem3.setTiempoEspera(10000000)

>>> listagem3.arranque()

Para não complicar o código, foi introduzido um loop

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

for introduzido um atraso, irá demorar mais para reali-

zar o seu trabalho. Isso se traduz em uma visualização

mais clara do cubo girando, se conseguirmos realizar o

atraso adequado.

No nosso sistema, um valor de 10.000.000 de iterações

faz com que o cubo gire de maneira suave. Eviden-

temente, por ser um loop, depende da velocidade do

sistema. Não é a maneira mais elegante de introduzir

um atraso, mas é a mais simples e curta (nosso espaço

aqui é limitado...).

A variável espera no arquivo listagem3.c é do tipo INT.

Isso significa que seu valor máximo será um pouco mais de

4.000.000.000. O que ocorrerá se introduzirmos um atraso

de 5.000.000.000?

>>> listagem3.setTiempoEspera(5000000000)

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

line 1, in ?

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

convert to int

>>>

O Python permanece dizendo que a instrução não pode

ser realizada. Uma falha desse tipo em um programa C teria

levado a uma falha irreversível que abortaria o programa.

No Python não. Simplesmente voltamos ao intérprete. Essa é

uma das razões pelas quais é interessante usar bibliotecas C

no Python. Eliminamos muitos erros fatais porque o Python

se encarrega de verificar por nós os tipos de dados e é capaz

de recuperar-se dos erros.

Vamos brincar com as cores do cubo. O cubo tem 6 lados. O

normal seria atribuir uma cor para cada um. Mas o OpenGL dá

cores aos vértices. Como o cubo tem 8 vértices, teremos que

assinalar 8 cores. Que cor terá cada face do cubo se cada vértice

tem uma cor? Pois, seguindo o jargão do OpenGL, terá uma cor

“interpolada” – uma mescla das quatro cores dos vértices.

Uma das nossas funções permite definir a cor dos vérti-

ces (setColor()), de modo que deixaremos as faces cinzas.

Daremos a um vértice a cor preta e ao seguinte, branca. No

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ê?

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 brin-

car com o código do exemplo.py para tentar obter outras cores.

ConclusãoNão é tão complicado acessar milhares de bibliotecas C a

partir do Python. Na própria documentação do SWIG, apa-

rece um exemplo de como gerar uma biblioteca Python de

maneira quase automática para a famosa biblioteca GD de

desenho 2D.

Com certeza, na próxima vez que virmos uma nova biblio-

teca para Python, iremos nos perguntar se os autores usaram

SWIG – pode ser inclusive que tenha sido feita por nós. ■

Auto

r 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.

Informações[1] OpenGL: http://www.opengl.org

[2] Download de códigos deste artigo: http://www.linuxmagazine.com.br/issue/21/lm21_python.tar.gz[2]

[3] Projeto SWIG: http://www.swig.org[1]

[4] Laboratório Nacional Los Álamos: http://www.lanl.gov

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

www.linuxmagazine.com.br

julho 2006 edição 21 75

Python Programação

http://supertuxbr.blogspot.com

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

Ubuntu 6.06 LTS

Dapper Late

“U buntu” é uma palavra africana

que significa “humanidade para

todos” ou “eu sou quem sou por

causa do que todos somos”. No mundo

da informática e dos sistemas GNU/

Linux, o significado não é diferente. O

Ubuntu Linux tenta aplicar essas idéias

na criação de um sistema operacional

completo, baseado em Linux, que seja

utilizável por todos.

A comunidade do Ubuntu foi criada

sobre as idéias da filosofia Ubuntu: de

que software deve ser gratuito, de que

ferramentas de software devem ser utili-

zadas pelas pessoas em sua língua local

e apesar de qualquer deficiência, e de

que as pessoas devem poder modificar

e customizar seu software de qualquer

maneira que lhes seja adequada.

Por isso, toda essa comunidade vem

trabalhando arduamente para facilitar

cada vez mais a utilização do sistema por

usuários de todos os tipos, desde os mais

leigos até os mais experientes. Muitas

aplicações estão sendo desenvolvidas

para que esses usuários não precisem

utilizar linhas de comando, a temida

“telinha preta”.

Muitos aplicativos estão sendo mo-

dificados para facilitar cada vez mais a

interação das pessoas com os mesmos.

Tem sido realizado um trabalho muito

grande para que o usuário tenha acesso a

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 ci-

tar todo o trabalho realizado

para que o sistema “simples-

mente funcione”, durante o

qual dezenas de pessoas

trabalharam para realizar

a melhor detecção de hard-

ware possível, para que seja

exigido o mínimo de inte-

ração do usuário durante o

processo de instalação.

EvoluçãoSeguindo essa filosofia, já se passaram

quase 2 anos ou 4 lançamentos (relea-

ses). Como sistema de versões, escolhe-

mos 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 na-

cional 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 de-

senvolvimento 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.

Figura 1: O novo applet de notificação de atualizações disponíveis avisa sobre a eventual necessidade de se reiniciar o computador ou algum aplicativo.

��

��

��

���

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

Serviços

76

CD do Assinante

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

No augeO Dapper, como é

conhecido pela comu-

nidade, foi uma versão

que criou uma enorme expec-

tativa, já que essa seria a primeira

versão com tempo de suporte estendido

(LTS). Isso quer dizer que serão dis-

ponibilizados pacotes de atualizações

de segurança dos softwares por 5 anos

para servidores e 3 anos para desktops.

Com isso, já é possível se criar parques

computacionais em empresas ou insti-

tuições de ensino sem o problema de

precisar atualizar as versões de todo o

parque a cada 18 meses.

Além do fator tempo de suporte, o

Dapper é a versão que recebeu maior

quantidade de trabalho e carinho da

comunidade Ubuntu. Não só por cau-

sa do tempo de suporte estendido, mas

porque, durante esses quase 2 anos,

aconteceu no nosso sistema o milagre

da comunidade. É incrível a quantidade

de pessoas que se juntam à comunidade

Ubuntu todos os dias. A cada dia que

passa, a comunidade cresce e, com isso,

as colaborações abrangem cada vez mais

aplicativos, hardwares e bugs.

Podemos ver esse mesmo fenômeno

aqui no Brasil. Quem participa da comu-

nidade brasileira do Ubuntu (http://www.

ubuntu-br.org) pôde perceber o enorme

crescimento da mesma nos últimos 6

meses. No lançamento do Breezy, éra-

mos alguns poucos, mas constantes, co-

laboradores. Precisamos fazer quase o

impossível para traduzir o máximo pos-

sível do sistema naquela época. Já para o

Dapper, houve um aumento significativo

de novos colaboradores auxiliando nas

traduções. Sendo assim, conseguimos

ser um dos países que mais traduziram

o Dapper, junto com a Alemanha, França,

Itália e Espanha.

O que muda?Dentre as principais novidades dessa

versão estão o OpenOffice 2, o Firefox

1.5, um novo sistema para facilitar a ins-

talação de novos aplicativos e diversas

melhorias no sistema de atualizações

automáticas, que agora avisa o usuário

de que é necessário realizar um reboot

para que todas as atualizações sejam

efetivadas, ou até mesmo que o usuário

precisa reiniciar (fechar e abrir) o Firefox

para utilizar a nova versão do mesmo.

Outra grande novidade é a existência

de pacotes para realizar uma instalação

Java sem mistérios, o que foi possível após

as modificações no licenciamento do Java

pela Sun Microsystems. Além disso, o

Ubuntu agora inclui no seu sistema de help

dicas que antes só podiam ser encontradas

na Internet, nos guias não-oficiais.

Desejamos, portanto, poder levar o

GNU/Linux aonde ele jamais havia che-

gado, permitindo que cada vez mais usu-

ários percebam que esse é, de fato, um

Linux para seres humanos, e fazendo

com que cada vez mais pessoas se sin-

tam confortáveis em utilizar esse siste-

ma sem a necessidade de conhecê-lo a

fundo. Por todas essas vantagens, esta-

mos certos de que o Ubuntu continuará

crescendo, e na mesma rapidez com que

tem crescido até hoje. ■

Sobr

e o

auto

r

Mário Meyer, 24 anos, é Bacharel em Informática, for-mado pela PUC-Rio. Usa sistemas Linux e BSD há mais de 10 anos. Já traba-lhou com desenvol-vimento e em diversas implementações de UNIX, desde servidores e ISPs até desktops e terminais leves. Atualmente, é líder da comunidade Ubuntu Brasil e membro oficial do projeto Ubuntu internacional.

Figura 2: O Dapper tem um tema agradável. A instalação/atualização de programas também melhorou.

��

��

��

���

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

www.linuxmagazine.com.br

julho 2006 edição 21 77

CD do Assinante Serviços

http://supertuxbr.blogspot.com

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 [email protected]

Linux.localFornecedor de Hardware = 1 Redes e Telefonia / PBX = 2 Integrador de Soluções = 3

Literatura / Editora = 4 Fornecedor de Software = 5

Consultoria / Treinamento = 6

Empresa Cidade Endereço Telefone Web 1 2 3 4 5 6

Espírito Santo

Linux Shopp Vila Velha Rua São Simão (Correspondência), 18 – CEP: 29113-120 27 3082-0932 www.linuxshopp.com.br ✔ ✔ ✔ ✔

Megawork Consultoria e Sistemas Vitória Rua Chapot Presvot, 389 – Praia do Canto – CEP: 29055-

410 sl 201, 202 27 3315-2370 www.megawork.com.br ✔ ✔ ✔

Spirit Linux Vitória Rua Marins Alvarino, 150 – CEP: 29047-660 27 3227-5543 www.spiritlinux.com.br ✔ ✔ ✔

Minas Gerais

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 ✔ ✔ ✔ ✔

TurboSite 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 ✔ ✔ ✔ ✔ ✔

Paraná

iSolve Curitiba Av. Cândido de Abreu, 526, Cj. 1206B – CEP: 80530-000 41 252-2977 www.isolve.com.br ✔ ✔ ✔

Mandriva Conectiva Curitiba Av. Senador Souza Naves, 1240 Cristo Rei – CEP 80050-040 41 3360-2600 www.mandriva.com.br ✔ ✔ ✔ ✔

Rio de Janeiro

NSI Training Rio de Janeiro Rua Araújo Porto Alegre, 71, 4ºandar Centro – CEP: 20030-012 21 2220-7055 www.nsi.com.br ✔ ✔

Open IT Rio de Janeiro Rua do Mercado, 34, Sl, 402 – Centro – CEP: 20010-120 21 2508-9103 www.openit.com.br ✔ ✔

Unipi Cooperativa de Informá-tica Ltda

Campos dos Goyta-cazes Av. Alberto Torres, 303, 1ºandar - Centro – CEP 28035-581 22 2725-1041 www.unipi.com.br ✔ ✔ ✔ ✔

Rio Grande do Sul

Solis Lajeado Rua Comandante Wagner, 12 – São Cristóvão – CEP: 95900-000 51 3714-6653 www.solis.coop.br ✔ ✔ ✔ ✔

DualCon Novo Hamburgo Rua Joaquim Pedro Soares, 1099, Sl. 305 – Centro 51 3593-5437 www.dualcon.com.br ✔ ✔ ✔ ✔

Datarecover Porto Alegre Av. Carlos Gomes, 403, Sala 908, Centro Comercial Atrium Center – Bela Vista – CEP: 90480-003 51 3018-1200 www.datarecover.com.br ✔ ✔

LM2 Consulting Porto Alegre Rua Germano Petersen Junior, 101-Sl 202 – Higienópolis – CEP: 90540-140 51 3018-1007 www.lm2.com.br ✔ ✔ ✔

Lnx-IT Informação e Tecnologia Porto Alegre Av. Venâncio Aires, 1137 – Rio Branco – CEP: 90.040.193 51 3331-1446 www.lnx-it.inf.br ✔ ✔ ✔ ✔

Plugin Porto Alegre Av. Júlio de Castilhos, 132, 11º andar Centro – CEP: 90030-130 4003-1001 www.plugin.com.br ✔ ✔ ✔

TeHospedo Porto Alegre Rua dos Andradas, 1234/610 – Centro – CEP: 90020-008 51 3286-3799 www.tehospedo.com.br ✔ ✔

São Paulo

Ws Host Arthur Nogueira Rua Jerere, 36 – Vista Alegre – CEP: 13280-000 19 3846-1137 www.wshost.com.br ✔ ✔ ✔

DigiVoice Barueri Al. Juruá, 159, Térreo – Alphaville – CEP: 06455-010 11 4195-2557 www.digivoice.com.br ✔ ✔ ✔ ✔ ✔

Dextra Sistemas Campinas Rua Antônio Paioli, 320 – Pq. das Universidades – CEP: 13086-045 19 3256-6722 www.dextra.com.br ✔ ✔ ✔

Insigne Free Software do Brasil Campinas Av. Andrades Neves, 1579 – Castelo – CEP: 13070-001 19 3213-2100 www.insignesoftware.com ✔ ✔ ✔

Microcamp Campinas Av. Thomaz Alves, 20 – Centro – CEP: 13010-160 19 3236-1915 www.microcamp.com.br ✔ ✔

Savant Tecnologia Diadema Av. Senador Vitorino Freire, 465 – CEP: 09910-550 11 5034-4199 www.savant.com.br ✔ ✔ ✔ ✔

Epopéia Informática Marília Rua Goiás, 392 – Bairro Cascata – CEP 17509-140 14 3413-1137 www.epopeia.com.br ✔

Redentor Osasco Rua Costante Piovan, 150 – Jd. Três Montanhas – CEP: 06263-270 11 2106-9392 www.redentor.ind.br ✔

Go-Global Santana de Parnaíba Av. Yojiro Takaoca, 4384, Ed. Shopping Service, Cj. 1013 – CEP: 06541-038 11 2173-4211 www.go-global.com.br ✔ ✔ ✔

AW2NET Santo André Rua Edson Soares, 59 – CEP: 09760-350 11 4990-0065 www.aw2net.com.br ✔ ✔ ✔

Async Open Source São Carlos Rua Orlando Damiano, 2212 – CEP 13560-450 16 3376-0125 www.async.com.br ✔ ✔ ✔

Delix Internet São José do Rio Preto Rua Voluntário de São Paulo, 3066 9º – Centro – CEP: 15015-909 11 4062-9889 www.delixhosting.com.br ✔ ✔ ✔

4Linux São Paulo Rua Teixeira da Silva, 660, 6º andar – CEP: 04002-031 11 2125-4747 www.4linux.com.br ✔ ✔

A Casa do Linux São Paulo Al. Jaú, 490 – Jd. Paulista – CEP 01420-000 11 3549-5151 www.acasadolinux.com.br ✔ ✔ ✔

Serviços

78

Linux.local

www.linuxmagazine.com.br

julho 2006 edição 21http://supertuxbr.blogspot.com

Empresa Cidade Endereço Telefone Web 1 2 3 4 5 6

São Paulo (continuação)

Accenture do Brasil Ltda. São Paulo Rua Alexandre Dumas, 2051 – Chácara Santo Antônio – CEP: 04717-004 11 5188-3000 www.accenture.com.br ✔ ✔ ✔

ACR Informática São Paulo Rua Lincoln de Albuquerque, 65 –Perdizes – CEP: 05004-010 11 3873-1515 www.acrinformatica.com.br ✔ ✔

Agit Informática São Paulo Rua Major Quedinho, 111, 5º andar, Cj. 508 – Centro – CEP: 01050-030 11 3255-4945 www.agit.com.br ✔ ✔ ✔

Altbit - Informática Comércio e Serviços LTDA. São Paulo Av. Francisco Matarazzo, 229, Cj. 57 – Água Branca – CEP

05001-000 11 3879-9390 www.altbit.com.br ✔ ✔ ✔ ✔

AS2M -WPC Consultoria São Paulo Av. Tiradentes, 615, Ed. Santiago, 2º andar Bom Retiro – CEP: 01101-010 11 3228-3709 www.wpc.com.br ✔ ✔ ✔

Big Host São Paulo Rua Dr. Miguel Couto, 58 – Centro – CEP: 01008-010 11 3033-4000 www.bighost.com.br ✔ ✔ ✔

Blanes São Paulo Rua André Ampére, 153 – 9º andar – Conj. 91 CEP: 04562-907 (próx. Av. L. C. Berrini) 11 5506-9677 www.blanes.com.br ✔ ✔ ✔ ✔ ✔

Commlogik do Brasil Ltda. São Paulo Av. das Nações Unidas, 13.797, Bloco II, 6º andar – Morum-bi – CEP: 04794-000 11 5503-1011 www.commlogik.com.br ✔ ✔ ✔ ✔ ✔

Computer Consulting Projeto e Consultoria Ltda. São Paulo Rua Vergueiro, 6455, Cj. 06 – Alto do Ipiranga – CEP:

04273-100 11 5062-3927 www.computerconsulting.com.br ✔ ✔ ✔ ✔

Consist Consultoria, Sistemas e Representações Ltda. São Paulo Av. das Nações Unidas, 20.727 – CEP: 04795-100 11 5693-7210 www.consist.com.br ✔ ✔ ✔ ✔

Domínio Tecnologia São Paulo Rua das Carnaubeiras, 98 – Metrô Conceição – CEP: 04343-080 11 5017-0040 www.dominiotecnologia.com.br ✔ ✔

EDS do Brasil São Paulo Av. Pres. Juscelino Kubistcheck, 1830 Torre 4 - 5º andar 3707-4100 www.eds.com ✔ ✔ ✔

Ética Tecnologia São Paulo Rua Nova York, 945 – Brooklin – CEP:04560-002 11 5093-3025 www.etica.net ✔ ✔ ✔ ✔

Getronics ICT Solutions and Services São Paulo Rua Verbo Divino, 1207 – CEP: 04719-002 11 5187-2700 www.getronics.com/br ✔ ✔ ✔

Hewlett-Packard Brasil Ltda. São Paulo Av. das Nações Unidas, 12.901, 25º andar – CEP: 04578-000 11 5502-5000 www.hp.com.br ✔ ✔ ✔ ✔ ✔

IBM Brasil Ltda. São Paulo Rua Tutóia, 1157 – CEP: 04007-900 0800-7074 837 www.br.ibm.com ✔ ✔ ✔ ✔

iFractal São Paulo Rua N. Sra. do Outeiro, 480, Sala 19 – CEP: 04807-010 11 5667-9308 www.ifractal.com.br ✔ ✔ ✔

Integral São Paulo Rua Dr. Gentil Leite Martins, 295, 2º andar Jd. Prudência – CEP: 04648-001 11 5545-2600 www.integral.com.br ✔ ✔

Itautec S.A. São Paulo Rua Santa Catarina, 1 – Tatuapé – CEP: 03086-025 11 6097-3000 www.itautec.com.br ✔ ✔ ✔ ✔ ✔

Linux Komputer Informática São Paulo Av. Dr. Lino de Moraes Leme, 185 – CEP: 04360-001 11 5034-4191 www.komputer.com.br ✔ ✔ ✔ ✔

Linux Mall 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 Al. Santos, 1202 – Cerqueira César – CEP: 01418-100 11 3266-2988 www.temporeal.com.br ✔ ✔ ✔

Locasite Internet Service São Paulo Av. Brigadeiro Luiz Antonio, 2482, 3º andar – Centro – CEP: 01402-000 11 2121-4555 www.locasite.com.br ✔ ✔ ✔

Microsiga São Paulo Av. Braz Leme, 1631 – CEP: 02511-000 11 3981-7200 www.microsiga.com.br ✔ ✔ ✔

Novatec Editora Ltda. São Paulo R. Luis Antonio dos Santos, 110 – Santana – 02460-000 11 6979-0071 www.novateceditora.com.br ✔

Novell América Latina São Paulo Rua Funchal, 418 – Vila Olímpia 11 3345-3900 www.novell.com/brasil ✔ ✔ ✔

Oracle do Brasil Sistemas Ltda. São Paulo Av. Alfredo Egídio de Souza Aranha, 100 – Bloco B – 5º andar – CEP: 04726-170 11 5189-3000 www.oracle.com.br ✔ ✔

Proelbra Tecnologia Eletrônica Ltda. São Paulo Av. Rouxinol, 1.041, Cj. 204, 2º andar Moema – CEP:

04516-001 11 5052- 8044 www.proelbra.com.br ✔ ✔ ✔

Provider São Paulo Av. Cardoso de Melo, 1450, 6º andar – Vila Olímpia – CEP: 04548-005 11 2165-6500 www.e-provider.com.br ✔ ✔ ✔

Red Hat Brasil São Paulo Av. Angélica, 2503, 8º andar Consolação – CEP: 01227-200 11 3124-6000 www.latinsourcetech.com.br ✔ ✔

Samurai Projetos Especiais São Paulo Rua Barão do Triunfo, 550, 6º andar – CEP: 04602-002 11 5097-3014 www.samurai.com.br ✔ ✔ ✔

SAP Brasil São Paulo Av. das Nações Unidas, 11.541, 16º andar – CEP: 04578-000 11 5503-2400 www.sap.com.br ✔ ✔ ✔

Simples Consultoria São Paulo Rua Mourato Coelho, 299, Cj. 02 Pinheiros – CEP: 05417-010 11 3898-2121 www.simplesconsultoria.com.br ✔ ✔ ✔

Smart Solutions São Paulo Av. Jabaquara, 2940 cj 56 e 57 11 5052-5958 www.smart-tec.com.br ✔ ✔ ✔ ✔

Snap IT São Paulo Rua João Gomes Junior, 131 – Jd. Bonfiglioli – CEP: 05299-000 11 3731-8008 www.snapit.com.br ✔ ✔ ✔

Stefanini IT Solutions São Paulo Av. Brig. Faria Lima, 1355, 19º – Pinheiros – CEP: 01452-919 11- 3039-2000 www.stefanini.com.br ✔ ✔ ✔

Sun Microsystems São Paulo Rua Alexandre Dumas, 2016 – CEP: 04717-004 11 5187-2100 www.sun.com.br ✔ ✔ ✔ ✔

Sybase Brasil São Paulo Av. Juscelino Kubitschek, 510, 9º andar Itaim Bibi – CEP: 04543-000 11 3046-7388 www.sybase.com.br ✔ ✔

The Source São Paulo Rua Marquês de Abrantes, 203 – Chácara Tatuapé – CEP: 03060-020 11 6698-5090 www.thesource.com.br ✔ ✔ ✔

Unisys Brasil Ltda. São Paulo Rua Alexandre Dumas, 1711, 10º andar, Ed. Birmann 11 – CEP: 04717-004 11 3305-7000 www.unisys.com.br ✔ ✔ ✔ ✔

Utah São Paulo Av. Paulista, 925, 13º andar – Cerqueira César – CEP: 01311-916 11 3145-5888 www.utah.com.br ✔ ✔ ✔

Visuelles São Paulo R. Eng. Domicio Diele Pacheco e Silva, 585 – Interlagos – CEP 04455-310 11 5614-1010 www.visuelles.com.br ✔ ✔ ✔

Webnow São Paulo Av. Nações Unidas, 12.995, 10º andar, Ed. Plaza Centenário – Chácara Itaim – CEP: 04578-000 11 5503-6510 www.webnow.com.br ✔ ✔ ✔

WRL Informática Ltda. São Paulo Rua Santa Ifigênia, 211/213, Box 02– Centro – CEP: 01207-001 11 3362-1334 www.wrl.com.br ✔ ✔ ✔

Systech Taquaritinga Rua São José, 1126 – Centro - Caixa Postal 71 – CEP: 15.900-000 16 3252-7308 www.systech-ltd.com.br ✔ ✔ ✔

www.linuxmagazine.com.br

julho 2006 edição 21 79

Linux.local Serviços

http://supertuxbr.blogspot.com

Calendário de eventosEvento 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 anunciantesAnunciante PáginaA Casa do Linux 80BRconnection 29Guia de TI 63IBM 35Itautec 07Linux Park 84Linux World 81Locasite 59Oracle 09Plugin 83Smart 53Snap IT 71Thin Networks 02

a c a s a do l i n u x . c om . b r

Alta�especialização�em�soluçõespara�infraestrutura�corporativa

Solução�de�Integração�e�VoIPCommunigate�e�Concisus

Projeto,�configuração�eimplantação�de�redes�Linux

Cursos�Corporativos

Desenvolvimento�deSistemas�e�Portais

MySQL�Authorized�Training�Center

Soluções�Novell

ERP:�SGI�e�SGW

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

QI:�Gerenciamento�de�Projetos

Serviços

Produtos

Hospedagem

Blanes�Linux�Desktop:�o�Linux�fácil�de�usar

O

t

m e l h

or

do

a

So f

w

re

Li

vr e

Al.�Jaú,�490 Tel.�11-�3253-4055

Rio�de�Janeiro:�21-3233-2263

Serviços

80

Eventos + Índice de Anunciantes

www.linuxmagazine.com.br

junho 2006 edição 20http://supertuxbr.blogspot.com

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Agosto de 2006

Na próxima edição...

Destaque

❐ Blindagem extremaO 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 pro-teçã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_se-curity 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 comandoConheç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çaO 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 Micro-

soft Active Directory. Conheça como será a nova versão desse

consagrado servidor de arquivos e de impressão. ■

Preview

82 julho 2006 edição 21

O que vem por aí

www.linuxmagazine.com.brhttp://supertuxbr.blogspot.com

Multiplique seu PC

Novo Thin Client TC-NetA 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 agreg

e tamanho compacto. Oa 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 TC-Netconta com recursos de 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 dediversas ferramentas e aplicativos para uso local (navegador, protetor de tela e outros).

administração

As soluções Ultra Thin Client da ThinNetworkspermitem que até 10 usuários compartilhem osmesmos recursos e a capacidade de um únicocomputador (PC Host) simultaneamente. Todos osusuários utilizam suas estações como se fossem PC’sindividuais utilizando o sistema operacional Linux.

Transforme UM PC em até DEZ PCs

Basta conectar um monitor, teclado, mouse e caixasde 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 iguaisou diferentes ao mesmo tempo.

[email protected]: (61) 3366-1333

www.thinnetworks.com.br

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

. Reunindo um ambientDesktop 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 e flexível, simples de baixo custo e baseado em janelas, o

tornam-se a grande opção pra quem busca mais flexibilidade e redução de custos no ambiente de TI.

Ç INUSOLU oES L X~

10100101010 101010101010101010101 1100110101100101101010001011

101001010101010101010

10100101010 101010101010101010101 1100110101100101101010001011

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

2 user free!

gratuito para até 2 usuários

http://supertuxbr.blogspot.com

WWW.LI N UXM AGAZI N E.COM .BR

a revista do profissional de ti

CD DO ASSI NANTE: U BU NTU 6.06 LTS DESKTOP

Desktop 3D p. 22» 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

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

Criptografia de emails p. 64

Solução centralizada com o Anubis

Linux M

agazine

Núm

ero 21D

esktop 3D

X

GL

AIG

LX

X.o

rg 7 Su

perKaram

ba A

nu

bis ZEN

wo

rks En

lighten

men

t A

udacity

Op

Linu

xWo

rld C &

Pytho

n

Núm

ero

21

Julh

o 20

06

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

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

977

1806

9420

09

00

02

1

Novell ZENworks 7.0 p. 56

Gerenciamento completode estações e servidores

LinuxWorld p. 12Estréia bem sucedida!

exem

plar

de

assi

nant

e

vend

a pr

oibi

da

http://supertuxbr.blogspot.com