21 - desktop 3d_jul_2006
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
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
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
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
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