12/2009
MICROSOFT VIOLA A GPL p.24
SERVIÇOS EM SL p.26
Empresa de Steve Ballmer admite e corrige o erro
MONETIZAÇÃO p.28
Software Livre e proprietário não são diferentes quando se trata de ganhar dinheiro
Cezar Taurion explica modelos de negócio Open Source
# 61 Dezembro 2009 Linux Magazine # 61
A REVISTA DO PROFISSIONAL DE TI
LINUX PARK 2008 p.28 Iniciada em Porto Alegre a temporada de seminários Linux Park de 2008
CEZAR TAURION p.34 O Código Aberto como incentivo à inovação
#44 07/08
00044
R$ 13,90 € 7,50
A REVISTA DO PROFISSIONAL DE TI
9 771806 942009
CERTIFICAÇÃO PROFISSIONAL
CERTIFICAÇÃO PROFISSIONAL CASE ALFRESCO p.26 A Construcap agilizou seus projetos com o Alfresco
PMI
GOVERNANÇA COM
RHCE
SEJA UM BOM GESTOR E UTILIZE AS MELHORES PRÁTICAS ADOTADAS E RECOMENDADAS PELOS PROFISSIONAIS MAIS EXPERIENTES NESSA ÁREA p.36
» O que dizem os profissionais certificados p.24 » Cobit, CMMI, ITIL. Quais as melhores práticas? p.36 » ITIL na prática p.39
» Novidades do ITIL v3. p.44
LPI
SEGURANÇA: DNSSEC p.69
VEJA TAMBÉM NESTA EDIÇÃO:
Com o DNSSEC, a resolução de nomes fica protegida de ataques. Mas seu preço vale a pena?
» Relatórios do Squid com o SARG p.60
REDES: IPV6 p.64
» Becape de bancos de dados com a Libferris p.46
Conheça as vantagens da nova versão do Internet Protocol, e veja por que é difícil adotá-la
» Java, Ruby e Rails: conheça o JRuby on Rails p.74 » Benchmarks do GCC 4.3? p.58
» LPI nível 2: Servidores NIS e DHCP p.52
ITIL
WWW.LINUXMAGAZINE.COM.BR
EMPREGO MELHOR E SALÁRIO MAIOR. QUEM NÃO QUER? p.30
COBIT CISSP
» PMI, gerenciamento de projetos p.34 » RHCE, LPI, certificações em Linux p.37 » ITIL e CobiT, governança p.40 » CISSP, segurança p.44
NGINX FREERADIUS
REDES: NGINX p.56
Esse servidor rapidíssimo tem tudo para acelerar qualquer website – inclusive o seu!
SSI OPENSOLARIS
SEGURANÇA: FREERADIUS p.62
Autenticação IEEE 802.1X não é só para redes wireless. Com o FreeRADIUS, você impede qualquer acesso não autorizado à rede.
PARROT VISÃO COMPUTACIONAL
VEJA TAMBÉM NESTA EDIÇÃO:
» OpenSolaris, parte 8: LVM e RAID p.48 » Visão Computacional e as máquinas que enxergam p.52 » Programação web sem repetição com SSI p.68 » Parrot, o interpretador multilinguagem p.72
WWW.LINUXMAGAZINE.COM.BR
GRÁTIS
Marcas e sucesso
Expediente editorial Diretor Geral Rafael Peregrino da Silva rperegrino@linuxmagazine.com.br Editor Pablo Hess phess@linuxmagazine.com.br
Prezados leitores,
EDITORIAL
Revisora Aileen Otomi Nakamura anakamura@linuxmagazine.com.br Editora de Arte Paola Viveiros pviveiros@linuxmagazine.com.br Coordenador de Comunicação Igor Daurício idauricio@linuxmagazine.com.br Tradutores Diana Ricci Aranha e Pablo Hess Colaboradores Alessandro de Oliveira Faria, Alexandre Borges, Anderson Ramos, Bruno Gomes Pessanha, Bruno Guerreiro Diniz , Carlos Bokor, Flávia Jobstraibizer, Gustavo Thum Direito e Marco Aurélio Filippetti. Centros de Competência Centro de Competência em Software: Oliver Frommel: ofrommel@linuxnewmedia.de Kristian Kißling: kkissling@linuxnewmedia.de Peter Kreussel: pkreussel@linuxnewmedia.de Marcel Hilzinger: hilzinger@linuxnewmedia.de Centro de Competência em Redes e Segurança: Jens-Christoph B.: jbrendel@linuxnewmedia.de Hans-Georg Eßer: hgesser@linuxnewmedia.de Thomas Leichtenstern: tleichtenstern@linuxnewmedia.de Markus Feilner: mfeilner@linuxnewmedia.de Nils Magnus: nmagnus@linuxnewmedia.de Anúncios: Rafael Peregrino da Silva (Brasil) anuncios@linuxmagazine.com.br Tel.: +55 (0)11 4082 1300 Fax: +55 (0)11 4082 1302 Petra Jaser (Alemanha, Áustria e Suíça) anzeigen@linuxnewmedia.de Penny Wilby (Reino Unido e Irlanda) pwilby@linux-magazine.com Amy Phalen (Estados Unidos) aphalen@linux-magazine.com Hubert Wiest (Outros países) hwiest@linuxnewmedia.de Gerente de Circulação Claudio Bazzoli cbazzoli@linuxmagazine.com.br Na Internet: www.linuxmagazine.com.br – Brasil www.linux-magazin.de – Alemanha www.linux-magazine.com – Portal Mundial www.linuxmagazine.com.au – Austrália www.linux-magazine.ca – Canadá www.linux-magazine.es – Espanha www.linux-magazine.pl – Polônia www.linux-magazine.co.uk – Reino Unido Apesar de todos os cuidados possíveis terem sido tomados durante a produção desta revista, a editora não é responsável por eventuais imprecisões nela contidas ou por consequências que advenham de seu uso. A utilização de qualquer material da revista ocorre por conta e risco do leitor. 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, sejam 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. Av. Fagundes Filho, 134 Conj. 53 – Saúde 04304-000 – São Paulo – SP – Brasil Tel.: +55 (0)11 4082 1300 – Fax: +55 (0)11 4082 1302
Estamos vivendo em uma época de marcas. Aos olhos dos consumidores, certos rótulos e logos têm maior valor que diversos outros aspectos dos produtos. Quando fazemos compras no mercado, muitas vezes já sabemos o que esperar de vários produtos, pois conhecemos suas marcas e, independentemente da imagem apresentada na embalagem ou do preço do produto, atribuímos a eles um determinado grau de qualidade. Isso ocorre com os mais diversos produtos, desde refrigerantes até softwares, passando por eletrodomésticos, automóveis e ração para animais de estimação. Na realidade, atualmente esse “julgamento” pela marca vai além: um diploma universitário de instituições de renome internacional dos EUA e Europa, por exemplo, confere a seu portador maior prestígio – e exigência, por conseguinte – do que um equivalente nacional. Da mesma forma, ex-alunos de universidades públicas ainda são vistos pelos empregadores, ocasionalmente, com outros olhos em comparação aos de faculdades privadas. No campo de TI, onde constantemente surgem novas áreas de atuação profissional, é impossível esperar que um diploma universitário comprove conhecimento e competência prática em determinadas áreas. É aí que entram as certificações profissionais. Para atestar sua competência em áreas importantes à sua atuação profissional, seu currículo pode ser incrivelmente claro. Porém, com certificações profissionais, existe uma marca, seja de um fabricante ou de uma instituição com esse único fim, que comprova seus conhecimentos, sua experiência e seu grau de excelência em diversos aspectos da sua atuação profissional. É evidente que um profissional sem certificação pode ser tão bom quanto alguém certificado, ou até melhor – da mesma forma como um sorvete de uma marca desconhecida, distribuída a somente um supermercado, pode ser melhor que as marcas já estabelecidas. Porém, é preciso grande esforço para convencer o consumidor de que o sorvete – ou o seu currículo, no caso – de fato tem essa qualidade. A boa notícia é que, diferentemente de um produto, você pode se associar a várias “marcas” – LPI, RHCE, ITIL, CobiT, PMP, CISSP – de forma a atrair os olhos dos “consumidores” de todas elas e, com isso, o sucesso. Muito sucesso! n
Direitos Autorais e Marcas Registradas © 2004 - 2009: Linux New Media do Brasil Editora Ltda. Impressão e Acabamento: RR Donnelley Distribuída em todo o país pela Dinap S.A., Distribuidora Nacional de Publicações, São Paulo. Atendimento Assinante www.linuxnewmedia.com.br/atendimento São Paulo: +55 (0)11 3512 9460 Rio de Janeiro: +55 (0)21 3512 0888 Belo Horizonte: +55 (0)31 3516 1280 ISSN 1806-9428
Impresso no Brasil
.
4
Pablo Hess Editor
http://www.linuxmagazine.com.br
ÍNDICE
CAPA Profissional certificado
30
Por que e como se certificar.
Gerenciamento de projetos
34
A carreira de gerente de projetos em TI está em crescimento. Aproveite!
Linux certificado
37
Certificações atestam o conhecimento do profissional. Como provar que você sabe o que faz com o Linux?
Governança certificada
40
Todos os profissionais de TI precisam conhecer as boas práticas e as orientações internacionais. É isso que oferecem as certificações CobiT e ITIL.
Certificação e segurança
44
O que você deve esperar de uma certificação, especialmente em segurança da informação?
6
http://www.linuxmagazine.com.br
Linux Magazine 61 | ÍNDICE
COLUNAS
REDES 10
Web mais rápida
Charly Kühnast
12
Zack Brown
14
O rápido e prático servidor web Nginx é fácil de configurar e estender.
Alexandre Borges
16
Kurt Seifried
18
Klaus Knopper
56
NOTÍCIAS Geral ➧ Temporada de novas versões de distribuições
22
➧ Licenciamento do JDK 7 criticado
CORPORATE Notícias ➧ MIcrosoft infringe GPL, admite e corrige
SEGURANÇA 24
Porteiro competente
62
V ocê achava que o padrão IEEE 802.1X era apenas para redes sem fio? Veja como configurar um sistema de controle de acesso de rede com ele e um servidor FreeRADIUS.
➧ Celulares: Windows perde, mas Linux não ganha ➧ Petrobras adquire supercomputador Bull movido a GPU Coluna: Jon “maddog” Hall
26
Coluna: Cezar Taurion
28
TUTORIAL OpenSolaris, parte 8
48
C onheça o Solaris Volume Manager e veja como usá-lo para criar e gerenciar volumes RAID 0 e 1 com múltiplos volumes.
PROGRAMAÇÃO Ajuda inclusiva
68
O s Server Side Includes (SSI) poupam tempo e facilitam a manutenção do seu website. Louro quer programar
72
O Parrot é uma ferramenta para desenvolvimento e execução de novas linguagens de programação, que já conta com Perl 6 e muito provavelmente com a sua linguagem preferida.
Máquinas que enxergam
52
U se a visão computacional com suas diversas técnicas para melhorar a acessibilidade dos sistemas.
SERVIÇOS
Linux Magazine #61 | Dezembro de 2009
Editorial
04
Emails
08
Linux.local
78
Eventos
80
Preview
82
7
u c.h ww .s x –w ro nja
gje
ne
Emails para o editor
CARTAS
sa
Permissão de Escrita Squid e Iptables
Gostaria de tirar uma dúvida relacionada à configuração de FTP passivo nas regras do Iptables. Como faço para configurá-lo e como devo configurar a opção de compartilhamento no Iptables: Prerouter ou Pos? Outra dúvida é como faço para configurar a opção de fazer upload de arquivos para os webmails? Toda vez que vou anexar um arquivo acima de 1 MB, aproximadamente, o arquivo não anexa e apresenta erros na tentativa de anexar. Caso eu pare o Squid e deixe apenas as opções de Firewall do Iptables, ele consegue anexar normalmente os arquivos no webmail. n Fábio T. de Oliveira
RADIUS
Pessoal, gostaria de sugerir uma matéria sobre configuração do FreeRADIUS e ferramentas complementares como Daloradius e as possibilidades de uso (Captive Portal/HotSpot). Encontrei bastante informação sobre o assunto, mas nada como as matérias da Linux Magazine que abordam sempre todos os lados do uso das ferramentas. Rodrigo Buch Garcia
Resposta
Rodrigo, espero que você aprecie o artigo sobre autenticação por IEEE802.1X com FreeRADIUS, publicado nesta edição. Com relação aos demais usos do FreeRADIUS, aproveitamos para convidá-lo (e também à nossa grande comunidade de leitores) para estender o conteúdo deste artigo. Obrigado pela sugestão! n
Bacula
Ao implementar uma solução de backup utilizando o Bacula, deparei-me com uma informação divergente com o artigo da última edição da Linux Magazine. Na seção “Primeiro backup”, está escrito que para ler as mensagens devemos executar o comando auto-display on, porém, na versão que estou utilizando (3.0.3), o comando é autodisplay on. João Oliveira
Resposta
Caro João, o termo “autodisplay” encontra-se numa quebra de linha no artigo. Embora tentemos evitar ao máximo quebrar termos técnicos, como comandos e nomes de variáveis, eventualmente não conseguimos fazê-lo. Ao quebrar a linha, temos por regra inserir um hífen indicador de separação, como no texto comum. Usamos o hífen para diferenciar quebras de linha de termos separados (“auto display”, por exemplo). n
8
Escreva para nós!
✉
Sempre queremos sua opinião sobre a Linux Magazine e nossos artigos. Envie seus emails para cartas@linuxmagazine.com.br e compartilhe suas dúvidas, opiniões, sugestões e críticas. Infelizmente, devido ao volume de emails, não podemos garantir que seu email seja publicado, mas é certo que ele será lido e analisado.
Coluna do Klaus
COLUNA
Pergunte ao Klaus! O professor Klaus responde as mais diversas dúvidas dos leitores.
Instalar SO em um netbook
Comprei um netbook Eee PC 1000H há algumas semanas e decidi instalar nele o OpenSUSE 11, de preferência em dual boot com o Windows XP que veio instalado. O disco de 160 GB tem uma segunda partição formatada em NTFS com aproximadamente 60 GB. Tentei instalar o OpenSUSE 11.1 por um pen drive após configurar a BIOS para isso. O pen drive tem uma imagem ISO dentro, que é mostrado na BIOS, mas o computador continua iniciando direto no Windows. Também já tentei usar um leitor de DVD externo, novamente pedindo à BIOS para iniciar pelo DVD. Porém, embora a BIOS pareça detectar o leitor, a máquina ainda inicia pelo XP. Também copiei a imagem ISO para a partição livre, mas é claro que isso não funcionou. Tenho que admitir que as informações que encontrei em vários blogs estão bem além da minha compreensão. Obrigado por qualquer ajuda!
Resposta
Felizmente, eu também tenho um Eee PC (um modelo mais antigo que o seu) e posso responder sua pergunta. Apesar de ser possível definir prioridades de inicialização na BIOS (o que não funcionou no seu caso), a forma mais fácil de iniciar o computador a partir de diferentes mídias é pressionar a tecla [Esc] durante a inicialização da BIOS (ou seja, assim que o logo do Eee PC aparecer). Em outros notebooks, normalmente a tecla equivalente é [F8] ou [F12], que exibe o menu de seleção de inicialização, então o [Esc] pode parecer um pouco estranho. De qualquer forma, se o dispositivo aparece na configuração da BIOS, também deve poder ser selecionado nesse menu inicial. O Eee PC inicia corretamente a partir do DVD, assim como por discos Flash USB, contanto que o dispositivo de inicialização realmente seja inicializável (isto é, possua assinaturas de inicialização válidas) e 10
não retorne o computador à sequência de inicialização padrão. Alguns discos Flash USB mais antigos (anteriores a 2009) simplesmente não iniciam no Eee PC, segundo verifiquei, mas já consegui testar vários leitores DVD USB, assim como pen drives recentes de 4 e 8 GB. Você disse que a imagem ISO está no pen drive como um arquivo, mas infelizmente isso não funciona, pois a BIOS do seu computador não tem ideia do que fazer com um arquivo ISO. Para criar um pen drive inicializável a partir de um DVD, siga as seguintes etapas (neste exemplo, o DVD está montado em /media/dvd e o pen drive em /media/ sdc1/). Se o DVD utilizar o Isolinux como carregador de inicialização, ele poderá ser facilmente substituído pelo Syslinux. Com o pen drive montado, comece copiando todo o conteúdo do DVD para /media/sdc1/. No caso de você ter somente um arquivo ISO do DVD, monte-o com: sudo mount -o loop arquivo.iso /media/dvd
Em seguida, renomeie o diretório boot/isolinux do pen drive para boot/syslinux. O terceiro passo é renomear o arquivo boot/syslinux/ isolinux.cfg do pen drive para boot/syslinux/syslinux.cfg. Depois, desmonte o pen drive e torne-o inicializável. Lembre-se de que o pen drive inteiro se chama /dev/sdc e de que /dev/sdc1 é o nome da primeira partição dele: sfdisk -A1 /dev/sdc syslinux /dev/sdc1 ms-sys -s /dev/sdc
Esses comandos criam uma MBR e um registro de inicialização Syslinux na partição, além de marcar a primeira partição como inicializável. Feito isso, já deve ser possível iniciar pelo pen drive como se ele fosse um CD-ROM. n
http://www.linuxmagazine.com.br
Coluna do Zack
COLUNA
Crônicas do kernel Contos e histórias do desenvolvimento do Linux.
VMware descarta paravirtualização
A VMware decidiu interromper o suporte à VMI, sua técnica de paravirtualização, pois os recursos de virtualização por hardware já estão vindo por padrão em todos os novos sistemas. O anúncio feito por Alok Kataria, da VMware, mostrou resultados de benchmarks que mostravam que a virtualização por hardware é melhor que sua implementação da VMI. O motivo para o anúncio foi pedir conselhos sobre a melhor maneira de retirar o código VMI, que já havia sido aceito pelo kernel. Chris Wright explicou que, normalmente, há uma fase pré-remoção (deprecation phase foi o termo usado) na qual o recurso é listado no arquivo Documentation/feature-removal-schedule.txt, gerando alertas para informar ao usuário que o recurso será descartado. Porém, Jeremy Fitzhardinge mostrou que o VMI não era exatamente um recurso, mas uma otimização, e que, além da pequena diferença na velocidade, o usuário sequer sentiria sua falta. Chris concordou e não achou essencial seguir os procedimentos normais de defasagem do código. No entanto, assim que Alok postou o patch com a alteração, Ingo Molnár disse que a remoção do código deveria levar mais tempo. Ele mostrou que a maioria dos usuários do VMware ainda não estavam se beneficiando das melhorias do hardware que tornavam o VMI obsoleto. Alok concordou e postou patches de acordo com o procedimento normal de defasagem. Porém, logo em seguida, H. Peter Anvin disse que era cedo demais para se considerar isso. O patch de Alok era para a versão 2.6.32, mas Peter achou que seria melhor esperar até o fim de 2010 ou (segundo suas estimativas) aguardar o kernel 2.6.37. Aos poucos, desenvolveu-se um plano de defasagem com uma abordagem gradual que manteria o VMI no kernel até os usuários migrarem seu hardware para sistemas com recursos de virtualização. 14
A VMware agiu corretamente nesse processo de defasagem de código do kernel. Normalmente, o desenvolvimento de código aberto é definido pela concordância de seus vários participantes sobre o que deve ser feito.
CPUs ociosas economizam
Arun B. Bharadwaj está desenvolvendo o CPUidle, projeto cujo objetivo é garantir que CPUs ociosas em sistemas PowerPC tenham o melhor aproveitamento de energia de modo simples e eficiente. Por exemplo, não é sempre óbvio que uma CPU ociosa permanecerá assim por tempo suficiente para termos certeza de que ela pode entrar num modo de baixo consumo de energia – do qual leva-se mais tempo para sair quando necessário. O CPUidle utiliza várias heurísticas para tomar essa decisão. No momento, o programa só é capaz de escolher entre dois estados de espera – soneca ou cochilo completo. Não é brincadeira, os nomes usados no programa são snooze (soneca, em inglês) e nap (cochilo). O CPUidle é o tipo de projeto que começa relativamente simples e, então, gradativamente, introduz estados de espera adicionais para acomodar processadores mais novos, com heurísticas mais complexas para escolher entre eles. Normalmente espera-se que uma situação dessas se torne mais sofisticada e esotérica com o tempo, até aparecer um maluco como Alan Cox para alterar o software, simplificá-lo e melhorá-lo. Ou, então, vários malucos poderiam competir por melhorias no projeto, o que levaria a desacordos e discussões, até que Linus Torvalds fizesse tudo do seu jeito e a disputa sossegasse novamente. O projeto CPUidle me parece ser deste tipo. n 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 esteve em atividade de 1999 a 2005.
http://www.linuxmagazine.com.br
Coluna do Kurt
COLUNA
Wireshark Use ferramentas de captura e análise do tráfego de tráfego para montar uma verdadeira caixa-preta da rede.
O
Wireshark [1], sniffer (capturador de pacotes) antes conhecido como Ethereal, é indispensável para o administrador de sistemas. Se alguma vez você já teve que solucionar problemas em uma rede ou monitorar uma transação com o servidor, esta é sua ferramenta. Como a maioria dos programas de captura de dados de rede para Linux, o Wireshark se utiliza da Libpcap, que oferece uma interface independente para capturar pacotes; portanto, não há necessidade de escrever rotinas customizadas para cada sniffer (tcpdump, Snort, Wireshark etc.). Se seu sistema operacional (Linux, *BSD, HP-UX, Solaris, Windows etc.) e seu software suportam a Libpcap, você poderá monitorar pacotes à vontade.
Instalação
A Libpcap está disponível em quase todos os sistemas operacionais, e o Wireshark, na maioria das vezes, também está incluído (pelo menos no Linux e nos *BSD). O programa, às vezes, vem em dois pacotes separados: um com os utilitários de back-end, como o tshark e o mergecap, e outro com a interface gráfica. No Fedora e na maioria dos sistemas, basta usar o gerenciador de pacotes: yum install Libpcap yum install wireshark‑gnome
No Debian também é fácil: apt‑get install libpcap0 apt‑get install wireshark
Um problema de usar a versão do Wireshark fornecida pela distribuição é que a maioria dos distribuidores fornece versões muito velhas (o Fedora 11, por exemplo, vem com a versão 1.1.3). Porém, a série 1.2 (e a 1.3.0, que já deve ter sido lançada quando você ler esta coluna) possui vários recursos novos, como suporte a protocolos, 18
erros corrigidos e integração com o GeoIP (mais sobre isso em breve). Para instalar o Wireshark, primeiro escolha a versão que você prefere baixar: a última estável ou, caso você tenha mais coragem (e paciência), um dos builds automatizados do SVN. Depois de descompactar, a instalação é bem simples: ./configure make sudo make install
Para compilar o Wireshark, será preciso fazer referência a algumas dependências. No mínimo, você precisará da Libpcap; sugiro também instalar os pacotes GnuTLS, PCRE e GeoIP se quiser usar recursos avançados.
Execução do Wireshark
Infelizmente, para executar o Wireshark e capturar dados, é preciso executá-lo como usuário root. O Wireshark já teve problemas de segurança no passado (falarei sobre isso mais adiante), permitindo que ataques externos executassem códigos enviando dados que eram processados pelo programa. Há duas maneiras simples de evitar que o Wireshark seja executado como root. A primeira é usar um pacote de captura de programas, como o dumpcap ou o tcpdump e, depois, examinar os arquivos de captura com o Wireshark executado por um usuário comum. O segundo método é executar o Wireshark como root, mas em um ambiente controlado. Quando eu executei o Wireshark em uma máquina virtual VMware, supus que ele veria apenas os dados de rede dessa máquina específica. Não sei bem por que pensei isso (esperança, acho). Talvez porque a Libpcap acessa o kernel e a placa de rede em um nível baixo, o programa verá todo o tráfego de rede que passa pela interface física. Por isso, o Wireshark pode rodar em uma máquina virtual e
http://www.linuxmagazine.com.br
Insegurança | COLUNA
mesmo assim monitorar todo o tráfego de rede. O lado ruim disso é que qualquer usuário mal intencionado com acesso de root à máquina virtual (ao menos no servidor VMware) poderá enxergar todo o tráfego da rede da máquina física ou virtual usando essa interface.
Filtros de captura
Capturar tráfego de rede é bem parecido com beber água diretamente de um hidrante. A boa notícia é que quase todos os programas que usam a Libpcap também aceitam os comandos de filtragem da Libpcap (e, às vezes, como no Wireshark, também têm seus próprios filtros). A má notícia é que a configuração do filtro da Libpcap é relativamente limitada, contendo basicamente endereços de rede e portas (por ser baseada em protocolo). Pelo menos você pode usá-lo para minimizar a quantidade de dados que serão escritos no seu disco rígido ou forçar o Wireshark a processá-los. Por exemplo, para capturar o tráfego da Web com a Libpcap, é possível usar a seguinte sintaxe:
“Dissecadores” de protocolo
O que difere o Wireshark do resto dos programas é seu grande número de “dissecadores” de protocolo, mais conhecidos como dissectors. De fato, o Wireshark pode entender profundamente os principais protocolos de rede (SSH, Telnet, NTP etc.) e não apenas exibir informações em formato amigável, mas também fornecer várias opções para que você filtre estas informações. O Wireshark pode filtrar o tráfego da web, tcp.dstport == 80 or tcp.dstport == 443
e também componentes específicos de uma conexão HTTP, como, por exemplo, um código de resposta (mostrar apenas erros 404): http.response.code == 404
Ou ainda, você pode procurar cookies que contenham a string sessionid:
dst port 80 or 443
http.cookie contains “sessionid”
A página de manual do tcpdump cobre a sintaxe dos filtros da Libpcap em profundidade.
O HTTP não é o único protocolo que o Wireshark compreende: na última contagem, o Wireshark possuía
Complete
a sua coleção
O objetivo da coleção é trazer conhecimento confiável e de alto nível sempre com enfoque prático e voltado para a utilização do sistema Linux e de outras tecnologias livres.
Mais informações Site: Linux Magazine #61 | Dezembro de 2009 www.linuxmagazine.com.br Tel: 11 4082-1300
19
COLUNA | Insegurança
em torno de 1.000 dissecadores de protocolos – mas nem todos são tão completos quanto o do HTTP. Infelizmente, esses dissecadores podem causar problemas, com cerca de 85 vulnerabilidades [2] que vão desde uma simples negação de serviço até um estouro de buffer com execução de código. O Wireshark agora também suporta o GeoIP, que consiste em um grupo de bibliotecas que podem ser usadas para realizar buscas no MaxMind Geographic IP database (basicamente, uma lista de IPs e redes e os países onde estes residem). É possível acessar gratuitamente os dados de um país, o que significa que se pode criar filtros para mostrar o tráfego de um país específico. Neste exemplo, a China:
sobrescrevendo os mais antigos ao atingir o número máximo (criando, assim, um buffer circular). Note que não é necessário capturar todo o tráfego da rede para criar um log útil para rastrear problemas; apenas a gravação do tráfego DNS (porta 53 TCP e UDP) já ajudará a resolver muitos problemas de segurança, como downloads involuntários (chamados de drive-by), que geram consultas DNS para domínios estranhos. Por outro lado, você também pode simplesmente fazer um log do tráfego de saída da porta 80, o que oferece um registro de todas as requisições (sem as respostas, que aumentariam significativamente o log). Da mesma forma que uma câmera, isso não evitaria problemas de segurança, mas daria uma boa ideia do que aconteceu e, com sorte, você ficaria sabendo quantos sistemas foram afetados pelo ataque.
ip an ip.geoip.country == “China”
[Atualizado] “Upgrade 2.0”
GeoIP
Gravador de rede
A menos que o Wireshark rode 24 horas por dia, você terá que recriar os problemas ocorridos enquanto examina o tráfego da rede. Ou não? A boa notícia é que os discos rígidos estão muito baratos (um terabyte custa R$ 200) e cada disco de 1 terabyte significa que é possível armazenar 30 GB por dia durante 30 dias (ou até mais se sua rede for pouco movimentada nos fins de semana). O programa tshark ainda facilita o armazenamento de um buffer circular com uma determinada quantidade de dados (100 GB de tráfego, 2TB etc.). A opção ‑b: tshark ‑i eth0 ‑b filesize:10240 ‑b files:1000 ‑w if‑eth0
monitora a interface eth0 e cria até 1.000 arquivos com 10 MB cada (num total de 1 GB) cujos nomes são a data e o horário em que foram gerados (AAAMMDDHHMMSS):
20
Agradeço a Jan Andrejkovic por ter me alertado sobre uma ferramenta que esqueci de mencionar na minha coluna “Upgrade 2.0” [3]. O Fedora vem com um programa chamado Presto [4] que usa DeltaRPMs para fornecer pequenas atualizações. No meu primeiro teste, uma atualização exigiria um download de 972MB, mas, com o Presto, foram meros 224MB (grande economia). O Fedora 11 inclui o pacote yum-presto (não confundir com o pacote presto), um plugin para o programa yum. A instalação é simples: yum install yum‑presto
Primeiro, atualize manualmente seu arquivo /etc/ yum.repos.d/fedora‑updates.repo para incluir uma baseurl ou uma mirrorurl apontando para um site que contenha RPMs presto (eles estão assinados com a chave GnuPG de Jonathan Dieter). Outra maneira seria montar seu próprio repositório e criar RPMs com as presto-utils. Se você tiver mais de um sistema, esta é a melhor opção. n
Mais informações
if‑eth0_00001_20090920041232 if‑eth0_00002_20090920041252 if‑eth0_00003_20090920041258
[1] Wireshark: http://www.wireshark.org/
Em seguida, esses arquivos podem ser unidos usandose o mergecap, caso o tráfego interessante esteja dividido em vários arquivos de captura. Outra forma de capturar dados da rede para posterior análise é usando o tcpdump. As versões mais recentes normalmente suportam a opção ‑C, que inicia um novo arquivo de captura após um número específico de bytes, e a opção ‑W, que limita o número de arquivos criados
[3] Kurt Seifried, “Upgrade 2.0”: http://lnm.com.br/article/3035
[2] Vulnerabilidades do Wireshark: http://www.wireshark.org/security/
[4] Presto: https://fedorahosted.org/presto/ Kurt Seifried é consultor de segurança da informação especializado em redes e Linux desde 1996. Ele frequentemente se pergunta como a tecnologia funciona em grande escala mas costuma falhar em pequena escala.
http://www.linuxmagazine.com.br
NOTÍCIAS
➧ Temporada de novas versões de distribuições Os meses de outubro e novembro marcaram a temporada de lançamento de novas versões das principais distribuições GNU/Linux voltadas a usuários de desktops. Ubuntu, Fedora, OpenSUSE e Mandriva anunciaram na Internet suas novas versões para download. O Ubuntu, na versão 9.10 (Karmic Koala), prepara-se para a próxima versão LTS, 10.04, e apresenta novidades interessantes. O tema gráfico, que agora usa applets monocromáticos no painel – semelhantes ao Mac OS X –, é acompanhado do novo serviço Ubuntu One, projetado para o compartilhamento e armazenamento de arquivos na Internet, com uso de armazenamento na nuvem. A troca de componentes básicos do sistema também marcou a nova versão, como o Empathy, que substitui o mensageiro Pidgin, o uso do GRUB 2 em substituição ao GRUB e a adoção do Ubuntu Software Center no lugar do Update Manager e do Synaptic. O Fedora 12 (codinome Constantine) foi liberado pela Red Hat com diversos avanços em relação à versão 11, como o gerenciador de pacotes Yum Presto com suporte a deltaRPMs e um gerenciador de redes com suporte a 3G. Além das versões com os desktops Gnome, KDE e LXDE, o Fedora oferece uma alternativa gráfica com o Moblin, especialmente indicado para netbooks. O instalador Anaconda passou também a suportar iSCSI e Fibre Channel sobre Ethernet (FCoE), embora limitado a Ethernet de 10 Gbps. Na área da segurança, novidades no SE Linux e na ferramenta de relatório ABRT, além do uso da biblioteca Libcap-ng. Uma falha de segurança no sistema, contudo, foi apontada pouco após o lançamento: usuários tinham privilégios para instalar softwares a partir dos repositórios sem fornecer a senha de root. A falha foi apontada por diversos usuários, que depois descobriram tratar-se de uma alteração não divulgada – portanto, não um bug –
com o objetivo de facilitar o uso do sistema por usuários não técnicos. A mudança evidentemente provocou diversas reclamações, que levaram à publicação da alteração do sistema e também do procedimento para retorná-lo ao método padrão de exigir a senha de root para qualquer instalação de software. Após um tempo excepcionalmente longo desde a versão 11.1 (quase um ano), a equipe do OpenSUSE lançou com sucesso a versão 11.2. A principal alteração com relação à versão anterior do sistema é o retorno do ambiente desktop KDE (na versão 4) como padrão, além das alterações do kernel para beneficiar o uso em desktops e o uso do sistema de arquivos Ext4 por padrão. O Mandriva, em sua versão 2010.0, também foi lançado neste fim de 2009. Após um atraso de um mês, a nova versão da distribuição francesa chegou aos servidores, trazendo mudanças como o Plymouth para bootsplash e uma inicialização significativamente mais rápida do que a versão anterior, além da completa integração ao ambiente Moblin. O Mandriva 2010.0 também inclui o Sugar, desktop criado pelo projeto OLPC, assim como a nova arquitetura UXA, acompanhada da infraestrutura DRI2 no Xorg 7.4. A distribuição também é a única a incluir o centro multimídia Elisa, renomeado para Moovida e com uma nova interface gráfica. n
➧ Licenciamento do JDK 7 criticado
O milestone 5 da próxima versão do Java Development Kit, o JDK 7, inclui apenas algumas pequenas alterações. Porém, o JDK 7 causou bastante alvoroço. O motivo das turbulências em torno das alterações é o fato de que a Sun não escolheu uma licença de código aberto. O desenvolvedor do Classpath Mark Wielaard chamou essa atitude de “antissocial”, referindo-se à grande porção do software que faz parte do OpenJDK. Wielaard pediu à Sun para retirar essa restrição legal, por ser injusta com todos aqueles que contribuíram com código para a versão livre. Ele não vê qualquer motivo para esse comportamento e faz um apelo à Sun em seu blog. A versão final do JDK 7 é esperada para o início de 2010. Para notícias sempre atualizadas e com a opinião de quem vive o mercado do Linux e do Software Livre, acesse nosso site: www.linuxmagazine.com.br
22
http://www.linuxmagazine.com.br
➧ Microsoft infringe GPL, CORPORATE
admite e corrige
Nem a Microsoft resiste a novas tecnologias. Com o objetivo de se manter em sintonia com os novos tempos, a empresa disponibilizou uma interessante ferramenta para criar uma versão do sistema em dispositivos de armazenamento USB. Infelizmente, a gigante dos sistemas operacionais não percebeu que a licença do software usado para isso – ImageMaster, liberado sob a GPLv2 – exige a disponibilização de qualquer alteração feita ao código fonte original. A primeira menção à violação da GPL foi feita pelo site withinwindows.com, que afirmou que o WUDT, como foi batizado o software, continha código externo à MS e coberto pela GPL.
Após essas informações começarem a circular, a empresa retirou o WUDT de seu website e anunciou que iria averiguar o problema. O gerente de comunidade do site Port25 da Microsoft, Peter Galli, confirmou posteriormente a infração da GPL: “Após verificar o código em questão, agora podemos confirmar que era esse o caso, embora não tenha sido intencional de nossa parte. Apesar de termos terceirizado a criação da ferramenta, compartilhamos a responsabilidade por não ter detectado a infração em nosso processo de revisão do código. Além disso, conduzimos uma revisão de outros códigos fornecidos pela loja da Microsoft, e esse foi o único incidente desse tipo que encontramos”. Na semana seguinte, a empresa chefiada por Steve Ballmer voltou a liberar a ferramenta, desta vez com o código fonte disponível sob a GPLv2.. n
➧ Celulares: Windows perde, mas Linux não ganha Segundo um estudo do Gartner, o Windows Mobile perdeu 28% do mercado de telefones celulares ao longo do último ano. O Linux, no entanto, não é o principal beneficiado. Os maiores vencedores nessa arena são Apple e Blackberry, embora estime-se que os sistemas livres venham a ganhar mais mercado a longo prazo. Segundo a ZDNet, o Windows Mobile perdeu quase um terço de seu mercado entre o terceiro trimestre de 2008 e o mesmo trimestre de 2009, ficando em último colocado entre os principais players, com apenas 8%. Um motivo das perdas foi o atraso no lançamento da versão 6.5 do sistema da Microsoft, além de não entregar o que a maioria dos usuários esperava, como telas sensíveis ao toque. De acordo com a analista do Gartnet Roberta Cozza, a versão 6.5 “não é um grande avanço” sobre as anteriores. O Symbian, recentemente transformado em sistema operacional livre, também diminuiu sua fatia de mercado em 10% nos dos dois últimos trimestres, caindo de 50% para 45%. Os ambientes fechados Blackberry e iPhone, por outro lado, ganharam grande impulso. Do ponto de vista do Software Livre, no entanto, 2009 foi um divisor de águas no mercado de telefonia móvel. Os telefones celulares equipados com o sistema Android do Google (baseado em Linux) ganharam 4% do mercado, apesar de na época da realização do estudo existirem apenas dois modelos com o sistema. Até o WebOS, da Palm, passou da marca de 1%. Os analistas do Gartnet já haviam previsto o fim do Windows Mobile no início de 2009: previram que em 2015 haveria apenas quatro players no campo: Android, Symbian, Mac OS e Blackberry. n
➧ Petrobras adquire supercomputador Bull movido a GPU A máquina bullx, da francesa Bull, vencedora do edital da Petrobras, com poder de processamento de 250 Teraflops – suficientes para caracterizá-la como o 16º maior supercomputador do planeta –, vai equipar o CENPES (Centro de Pesquisas e Desenvolvimento) da Petrobras, no Rio de Janeiro. O objetivo é auxiliar em simulações geofísicas com o intuito de “aprimorar a visualização das camadas geológicas do subsolo para suportar a exploração e produção de petróleo”, segundo o anúncio da Bull à imprensa. O supercomputador faz uso da tecnologia GPGPU (General-purpose computing on GPU – processamento auxiliado por chips gráficos, como aqueles encontrados nas placas de vídeo) para aumentar sua capacidade de processamento, e será instalado no novo datacenter da Petrobras na Cidade Universitária da UFRJ. n
Para notícias sempre atualizadas e com a opinião de quem vive o mercado do Linux e do Software Livre, acesse nosso site: www.linuxmagazine.com.br
24
http://www.linuxmagazine.com.br
Coluna do Taurion
CORPORATE
Monetização do Open Source Para as empresas se aproximarem do Open Source, elas precisam compreender as formas de monetizá-lo.
E
stive recentemente no Latinoware 2009, respirando Open Source 24 horas. Aqui e ali algumas conversas interessantes e uma constatação: Open Source é um modelo de desenvolvimento, entrega e suporte de software e, por incrível que pareça, ainda não é plenamente compreendido por muitos empresários e empresas de software no Brasil. Bem, não é para menos, pois não existe uma definição legal de Open Source. Nenhuma organização tem o direito desta “marca” e muito menos governa o conceito. Existe, na verdade, uma entidade chamada Open Source Initiative (OSI), que criou uma lista de atributos do que vem a ser Open Source, que por sua vez geraram uma definição que vem sendo adotada por consenso. Sempre converso com alguns empresários brasileiros da indústria de software e sinto certo receio deles em se aproximar do Open Source. Pensam logo nos riscos de usá-lo e que também perderão dinheiro, pois sua receita, hoje, vem da venda de licenças. Lembrem-se de que um software Open Source não pertence a nenhuma empresa. Neste modelo, nenhuma entidade mantém controle sobre as propriedades intelectuais que fazem o software. O empresário de software também pode pensar em usar Open Source embutido em seu produto. Neste caso, usaria seu software de código fechado ao lado de alguns componentes Open Source. Claro que, para isso, ele deve escolher projetos maduros, que apresentem uma base de código estável e já provada em campo. Buscar um código novo, com comunidade pequena e incerta, traz embutido o risco do empresário ter que assumir a responsabilidade pela manutenção e evolução do código. Pode ser um ônus insuportável. Esta opção parece ser interessante, e algumas estimativas, como a do Gartner, apontam que por volta de 2013 cerca de 80% dos produtos de software fechados embutirão elementos Open Source. Como benefício, evita-se escrever 28
código que já está escrito (e bem escrito), podendo-se concentrar esforços e investimentos nos códigos que vão gerar valor para seus clientes. Uma outra alternativa é transformar o seu código em Open Source. Entretanto, neste caso, existe a questão de como monetizar o software. Como gerar dinheiro com os downloads gratuitos? De maneira geral, existe uma diferença de uma ordem de magnitude entre downloads (o usuário está simplesmente investigando o software), uso operacional e pagamento de algum valor por, digamos, atualizações. Existe uma regra prática que diz que, para cada 1 milhão de downloads, temos 100.000 usuários, e que, destes, apenas 1.000 pagarão pelo software. Como obter dinheiro em uma relação de 1.000 x 1? Existe uma alternativa à reunião de uma imensa base de usuários, que é a criação do modelo de duplo licenciamento. Nela, cria-se uma versão aberta e outra fechada, com algum atrativo que gere valor para o cliente. Este, por sua vez, concorda em pagar pelo valor agregado. Um exemplo comum é a criação de uma versão premium ou enterprise com mais recursos, que demandam pagamento para seu uso. E existe, é claro, a opção de gerar retorno financeiro com venda de serviços e treinamento. Enfim, existem diversas maneiras para uma empresa de software se aproximar do modelo Open Source, além de usar Linux nos seus servidores e Eclipse no desenvolvimento de seu código. Não é uma aposta de tudo ou nada, mas deve-se ter uma estratégia bem definida e uma escolha de modelos de aproximação que agreguem valor para seu negócio. Neste caso, Open Source será um bom negócio. n Cezar Taurion (ctaurion@br.ibm.com) é diretor de novas tecnologias aplicadas da IBM Brasil e editor do primeiro blog da América Latina do Portal de Tecnologia da IBM developerWorks, em https://www.ibm.com/ developerworks/mydeveloperworks/blogs/ctaurion/.
http://www.linuxmagazine.com.br
Torne-se um
CAPA
Profissional certificado Por que e como se certificar. por Marco Aurélio Filippetti
U
ma das premissas básicas de gestão rege que, para se avaliar algo, este algo deve ser, de alguma forma, mensurável. Portanto, para se determinar o nível de conhecimento de um profissional, é necessário que esse conhecimento seja medido e balizado, para
30
então poder ser comparado e verificado. As certificações profissionais de TI têm exatamente essa função: servir como uma métrica padronizada que permita mensurar a quantidade e a qualidade de conhecimentos e habilidades específicas que um determinado profissional possui e, com base nessas métricas, atestar para o mundo se o profissional em questão é ou não versado em uma determinada tecnologia. Existe hoje uma infinidade de certificações específicas para TI à disposição dos profissionais que queiram comprovar suas habilidades para o mercado. A questão aqui é saber separar “o joio do trigo”. O profissional precisa ser extremamente criterioso na escolha da certificação, levando em conta fatores como aceitação e respeitabilidade pelo mercado, custo e tempo para obtenção, além do retorno do investimento, entre outros. De uma forma geral, o mais importante é verificar o que determinada certificação trará de bene-
fícios verificáveis para o profissional que a obtiver.
Principais certificações Como já foi mencionado, existem centenas de certificações no mercado, porém nem todas gozam do mesmo nível de reconhecimento. Uma regra que não falha é atentar para as tecnologias em voga – ou seja, com demanda pelo mercado – e buscar certificações reconhecidas nessas áreas. Exemplos atuais seriam: segurança, comunicações unificadas, wireless, virtualização, programação (Java e outras), sistemas ERP (SAP e Microsiga, por exemplo), sistemas operacionais (Linux, Windows), bancos de dados (Oracle, por exemplo) e governança em TI. Para cada uma destas áreas, existem certificações específicas, algumas bastante reconhecidas pelo mercado e outras nem tanto. Outro ponto que deve ser levado em consideração é o tipo de certificação: orientada ao fabricante ou independente. Vários fabricantes desenvolveram suas linhas de formação profissional baseados nos equi-
http://www.linuxmagazine.com.br
CAPA | Certificações
pamentos e tecnologias que vendem ao mercado. Esse é o caso de Cisco, Avaya, Red Hat, 3Com, Juniper, Check Point, Microsoft, Sun, Oracle e tantas outras. O problema aqui é que algumas destas certificações podem “amarrar” muito o profissional à tecnologia específica do fabricante. Se amanhã esse profissional precisar comprovar seus conhecimentos em algo mais genérico ou de outro fabricante, poderá ter problemas. Portanto, o mercado reconhece algumas certificações desse tipo como sendo mais interessantes exatamente pelo fato de não limitar o profissional. Um bom exemplo seriam as certificações da Cisco – amplamente reconhecidas até por outros fabricantes, como Juniper e Huawei –, pois cobrem em seus cursos e exames uma grande gama de conceitos e tecnologias que podem ser aplicados em qualquer tipo de rede. Em termos de certificações independentes, temos entidades que oferecem certificações “neutras”, ou seja, sem qualquer relação com um fabricante específico. Estas são interessantes pelo fato de atestarem que o profissional conhece a fundo conceitos e tecnologias que podem – em tese – ser implementados em qualquer tipo de ambiente. Exemplos seriam as certificações da CompTIA (Security+, Network+, A+, entre outras), do PMI (PMP), ISC2 (CISSP), ISACA (CISA), LPI e ITSM (ITIL). Os quadros 1 a 5 listam algumas das certificações em TI mais relevantes para o mercado brasileiro, separadas por área de atuação. A ordem foi baseada na empregabilidade, na popularidade e na relevância de cada certificação para o mercado brasileiro.
32
vultosos, como muitos pensam. Na prática, a certificação serve como um diferencial, ou seja, fará com que o currículo do profissional vá para uma pilha menor, com maiores chances de ser selecionado. Em alguns casos, a certificação sequer é um diferencial; é um pré-requisito para a vaga. Nessas situações, a empresa quer ter certeza de que o profissional procurado domina determinada tecnologia ou possui conhecimentos específicos em alguma área do
saber. Uma analogia útil empregada em [1]: “Imagine que seu currículo é visto como uma refeição pelo RH das empresas: as certificações são o molho, a experiência profissional é a carne e o diploma universitário é o prato. Qualquer combinação que você tente fazer não será atrativa sem o prato, pois ninguém apreciará uma refeição servida diretamente em cima da mesa. Da mesma forma, um prato servido apenas com o molho não será atrativo, pois a experiência
Quadro 1: Infraestrutura (redes e sistemas operacionais) Cisco (CCNA, CCNP e CCIE): as certificações da Cisco seguem no topo do ranking por um motivo muito simples: a demanda por profissionais de rede segue em alta e as certificações da Cisco preparam o profissional para encarar qualquer desafio neste mercado. São certificações tradicionais e muito reconhecidas pelo mercado. Das novas certificações lançadas pela Cisco, as especializações CCNA Voice, CCNA Security e CCNA Wireless certamente terão seu valor apreciado cada vez mais pelo mercado. Microsoft (MCSA, MCSE e MCSD): a razão de as certificações Microsoft estarem em segundo lugar também é simples de ser justificada. A empresa detém mais de 80% do mercado de sistemas operacionais, valor que pode mudar com o lançamento do Windows 7. Faltarão profissionais capacitados no mercado. Linux (LPI, RHCE etc.): com a explosão do Linux – especialmente em datacenters e empresas –, estas certificações vêm ganhando muita importância. Existe uma carência clara no mercado de profissionais nesta área.
Quadro 2: Governança e gestão PMP (Project Management Professional): focada em gerência de projetos. ITIL (Information Technology Infrastructure Library): focada na governança de TI, é cada vez mais reconhecida e procurada pelas grandes empresas. COBIT (Control Objectives for Information and related Technology): também focada nas melhores práticas de governança de TI.
Quadro 3: Segurança e controles CISSP (Certified Information Systems Security Professional): uma das certificações mais quentes e reconhecidas na área de segurança.
Reconhecimento do mercado
CISA (Certified Information Systems Auditor): com a crise econômica apertando, nunca os auditores foram tão valorizados. Vale conhecer melhor esta certificação, em alta no momento.
O que é preciso deixar claro é que a certificação, por si só, não é garantia de um bom emprego ou de salários
CCSE (Check Point Certified Security Expert): certificação de segurança de alto nível. É uma das certificações mais valorizadas na área.
http://www.linuxmagazine.com.br
Certificações | CAPA
Quadro 4: Programação SCJP (Sun Certified Java Programmer): foco em Java e, portanto, em alta.
Quadro 5: Arquitetura Arquitetura de soluções é uma área que vem tendo mais visibilidade, especialmente nos grandes provedores de serviço. O perfil do profissional da área mescla conhecimento de mercado com habilidades e conhecimentos técnicos. As certificações apresentadas a seguir são relativamente novas, mas já gozam de reconhecimento pelo mercado e entre os profissionais que atuam nesta área:
Custos
MCA (Microsoft Certified Architect) CCA (Cisco Certified Architect)
profissional não pode ser substituída por uma certificação”. Ou seja, sem uma boa formação, apenas uma boa certificação pode não lhe abrir muitas portas.
Idioma
Outro ponto a ser considerado aqui é o domínio de um idioma estrangeiro – notadamente, o inglês. Quando o assunto é tecnologia, o que é considerado estado da arte hoje pode não mais sê-lo amanhã. Isso significa que se o profissional de TI não estiver em constante atualização, fica para trás. A maior parte da literatura disponível hoje para as tecnologias mais recentes é lançada primeiro em inglês. Então, se você não domina esse idioma, será ultrapassado por outro profissional que possui esse conhecimento. O domínio do inglês é necessário, portanto, não necessariamente para conversação, mas para atestar que você terá condições de se atualizar rapidamente quando necessário. É comum empresas preferirem profissionais que dominem o inglês, mesmo que estes não possuam qualquer certificação de TI. O motivo é simples: é mais barato e mais rápido certificar um profissional do que investir anos para que ele aprenda um novo idioma.
Linux Magazine #61 | Dezembro de 2009
chance do profissional ficar desempregado, por exemplo. A questão que você deve se fazer, portanto, é: em qual lado da pirâmide você quer estar? Na ponta, onde a demanda é enorme e os profissionais são poucos – e, por consequência, os salários são maiores –, ou na base, onde mesmo com uma demanda forte pelo mercado existe uma oferta igualmente grande de profissionais?
Salário
É comum ouvir questionamentos sobre o salário de um profissional certificado Cisco CCNA ou mesmo CCIE. O que é certo é que quanto mais se envereda no caminho das certificações, ou seja, quanto maior o nível de dificuldade e abrangência das certificações que o profissional possui, reduz-se drasticamente a
Por fim, quanto custa certificar-se? Isso depende. A grande maioria das certificações existentes não exige a participação em um curso ou algo do gênero. Basta comprar alguns livros e dedicar-se para conseguir a tão sonhada certificação. Sem considerar gastos com cursos, é possível verificar os custos (em dólares) de quase todas as provas de certificações mencionadas neste artigo acessando o site da Vue [2], empresa que ministra os exames para a maioria das empresas e entidades aqui mencionadas. n
Mais informações [1] Marco Aurélio Filippetti, “CCNA 4.1”: http://www.visualbooks. com.br/shop/mostralivro.asp?escolha=9788575022382 [2] Vue: http://www.vue.com
Sobre o autor Marco Aurélio Filippetti é especialista em Sistemas Computacionais e Engenharia de Telecom pela Universidade da Califórnia (Berkeley), possui os títulos Cisco CQS Security Specialist, CCIP e CCDP, ITIL Foundations e é Mestre em Engenharia da Computação pelo Instituto de Pesquisas Tecnológicas de São Paulo (IPT). Profissionalmente, passou pela KPMG, T-Systems do Brasil, AT&T, Vivax e British Telecom. Atualmente, atua como Consultor de Tecnologia e Operações para a Embratel, em Campinas, além de manter, desde 2007, um movimentado blog com foco nas certificações Cisco, em http://blog.ccna.com.br.
Gostou do artigo? Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/3167
33
Visão computacional
TUTORIAL
Máquinas que enxergam Use a visão computacional com suas diversas técnicas para melhorar a acessibilidade dos sistemas. por Alessandro de Oliveira Faria (Cabelo)
S
egundo a Wikipédia, “Visão computacional é a ciência e tecnologia das máquinas que enxergam. Ela desenvolve teoria e tecnologia para a construção de sistemas artificiais que obtêm in-
A
formação de imagens ou quaisquer dados multidimensionais. Exemplos de aplicações incluem o controle de processos (como robôs industriais ou veículos autônomos), detecção de eventos, organização de informação,
modelagem de objetos ou ambientes e interação (atrelado à interação homem-computador).” Projetos de biometria, realidade aumentada e robótica utilizam reconhecimento de padrões
B
Figura 1 Esta imagem (A) pode ser tratada com o reconhecimento de arestas de forma a gerar a imagem B.
52
http://www.linuxmagazine.com.br
Visão Computacional | TUTORIAL
Figura 2 A técnica de detecção de cantos permite encontrar diferenças entre duas imagens.
e processamento de imagens em tempo real. Como consequência, as câmeras ultimamente vêm ganhando inteligência em função dos algoritmos de visão computacional. Essa tarefa demanda conhecimentos matemáticos, fundamentos relacionados a imagens e conhecimentos sobre manipulação de vídeo ao vivo, como também, para maior eficiência, otimização no uso da arquitetura de hardware e utilização de processadores com múltiplos núcleos. Aplicar processos de visão computacional em fluxos de vídeo ao vivo é uma tarefa morosa devido ao grande consumo de processamento matemático. Entretanto, atualmente existem diversas bibliotecas projetadas para facilitar o aprendizado e o desenvolvimento de tarefas como essa, proporcionando assim diversas funções para o segmento do processamento de vídeo digitais. As bibliotecas Mimas [1] e OpenCV [2], por exemplo, permitem o processamento de imagens estáticas ou ao vivo. Podem ser aplicadas em reconhecimento de face, expressão, gestos, objetos, rastreamento e detecção de movimentos e também análise de movimentos, entre outras infinitas aplicações. As bibliotecas de visão computacional apresentam recursos de manipulação de imagem, en-
Linux Magazine #61 | Dezembro de 2009
trada e saída de vídeo, cálculo de matriz, álgebra linear, morfologia matemática, análise estrutural, reconhecimento de objetos e gráficos primitivos. Geralmente, o processamento de imagens tem como principal objetivo obter uma nova figura ou quadro, nos quais o resultado apresenta um determinado resultado comparado à imagem inicial ou anterior. Diversas técnicas para manipulação de imagens são utilizadas geralmente para um posterior processamento. A técnica de suavização é utilizada para borrar ou embaçar a imagem, geralmente com o objetivo de eliminar ruídos ou detalhes da figura. Os processos mais utilizados são a suavização com o somatório dos pixels vizinhos, ou mediana de uma vizinhança, entre outros tipos.
Arestas
Um método de manipulação de imagens bem conhecido é a detecção de arestas, relativamente simples quando comparada a outros recursos no segmento de visão computacional. Ele consiste basicamente em processar uma imagem de entrada e localizar e exibir a descontinuidade das intensidades rastreadas (figura 1).
Segmentação
Podemos entender como uma forma de segmentação a submissão de imagens para processamento com fins de localização de figuras ou modelos específicos. Um exemplo de uso disso é a separação entre objetos específicos do fundo e da imagem (figura 3). Portanto, essa é uma técnica muito utilizada em projetos de realidade aumentada.
Tudo junto
A junção de processos também é uma técnica muito comum. Por exemplo, é possível utilizar o realce matemático junto ao processo de separação de modelos, tendo como
Figura 3 Ao separar o fundo do restante da imagem, é possível inserir uma figura externa à imagem original.
Cantos
O método de detecção de cantos, por sua vez, pode ser utilizado para rastrear objetos. Essa técnica consiste basicamente na extração da característica a partir de uma determinada imagem para posteriormente submetê-la a comparações de desigualdade. Nesse caso, características do quadro atual são comparadas à imagem base para ser processadas, obtendo assim as diferenças entre os dois e, por conseqüência, localizando os pontos com na figura 2.
Figura 4 A rotulação de imagem binária permite usos interessantes em Realidade Aumentada, como a detecção de figuras pré-definidas em uma imagem apresentada à câmera.
53
TUTORIAL | Visão Computacional
Figura 5 Com a biblioteca Bazar, é possível inserir uma figura como base...
mera por meio do fluxo de cada pixel, ou com base na semelhança e na combinação de amostras.
que o simples uso de fotografias subverta o processo de verificação [4]. O projeto ehci [5] é um bom começo para prova de conceito.
Bazar
Reconhecimento de objetos
A biblioteca Bazar [3] utiliza técnicas de rastreamento e análise de pixels para produzir uma aplicação de realidade aumentada. A instalação dessa biblioteca é simples: bastam os comandos padrão ./configure && make && sudo make install após baixar e des-
compactar o código-fonte. Além disso, ela é bem fácil de utilizar. Ao executá-la, é possível apresentar um objeto à câmera (figura 5) e em seguida usá-lo de forma interativa com uma figura inserida na imagem pelo computador (figura 6).
Figura 6 ...para usá-la como apoio para um objeto virtual.
resultado final o que se denomina detecção de linhas. Em projetos de realidade aumentada, a imagem é realçada usando os processos de detecção de arestas e separação de modelos, seguidos da tarefa de traçado de contornos. A rotulação de imagem binária também é um processo importante dentro do campo da realidade aumentada, pois significa determinar um valor único de cor para cada pixel pertencente a uma determinada região (figura 4).
Fluxo óptico
A técnica de fluxo óptico se baseia no rastreamento dos pixels. Ela permite estimar o deslocamento dos pixels em até três dimensões. Uma das aplicações desse recurso é o reconhecimento facial na autenticação (figura 7), de forma a impedir
Utilizando classificadores, é possível identificar objetos presentes num vídeo ao vivo ou em quadros estáticos. O treinamento é efetuado com a seleção de diversas imagens positivas (objeto presente na imagem), com o objeto presente em diversos ângulos e condições de iluminação. Outro grupo de imagens são agrupadas sem a presença do objeto (imagens negativas). Esse grupo de imagens é utilizado no treinamento com cascata de classificadores para posterior detecção. Exemplos de aplicação para o reconhecimento de padrões treinados são os processos para contagem de pessoas em tempo real. Neles, um processo analisa em paralelo o fluxo de vídeo ao vivo, reconhecendo assim padrões de corpos humanos e rastreando seu movimento durante sua passagem pelo campo de visão da câmera (figura 8). Outro exemplo de aplicação da visão computacional é o projeto kmando [6], um sistema de projetor
Rastreamento
No segmento de visão computacional, o rastreio de objetos (object tracking) é um recurso muito interessante. Com ele, é possível acompanhar o percurso de um objeto em tempo real, isto é, rastrear um objeto em movimento em frente a uma câ54
Figura 8 Usando o reconhecimento de face em três dimensões, não basta apresentar uma fotografia sua para alguém fazer login com o seu usuário.
http://www.linuxmagazine.com.br
Visão Computacional | TUTORIAL
do site do projeto [2], descompacte-o e execute os tradicionais comandos: ./configure make sudo make install
Conclusão
Figura 8 Após o devido treinamento, é possível contar quantas pessoas estão presentes numa imagem e até rastrear seu movimento num vídeo.
interativo baseado em processamento em tempo real. Após o treinamento da câmera junto ao sistema, é possível mover o cursor do mouse por meio de uma caneta hidrocor ou objeto semelhante. O eViacam [7] é um projeto que explora bem os recursos mencionados neste artigo. Voltado à acessibilidade, ele fornece uma interface para interpretar os movimentos da face e convertê-los em movimentos e ações para o cursor do mouse, como mostra o vídeo em [8]. A acessibilidade computacional significa prover a pessoas portadoras de necessidades especiais a capacidade de operar computadores de forma transparente. Para atingir tal objetivo, nada mais lógico e sensato que o aproveitamento da evolução do hardware e software para o desenvolvimento de mecanismos e interfaces, como faz o eViacam [9].
OpenCV
A biblioteca livre OpenCV (Open Source Computer Vision) reúne vários algoritmos de visão computacional para integração a qualquer aplicativo. Para instalá-la a partir do código-fonte, baixe o pacote compactado a partir
Linux Magazine #61 | Dezembro de 2009
A área de visão computacional é tão ampla que talvez seria necessário um livro para explanar todos os tópicos. Este artigo demonstra o potencial dos algoritmos de visão computacional agregados a qualquer dispositivo de videocaptura, pois esses conceitos matemáticos estarão presentes em todos os dispositivos (webcams, celulares, câmeras digitais, filmadoras e outros equipamentos) em curtíssimo prazo. n
Sobre o autor Alessandro Faria é sócio-proprietário da NETi Tecnologia, fundada em junho de 1996 e especializada em desenvolvimento de software e soluções biométricas. Ele é consultor biométrico na tecnologia de reconhecimento facial, atuando na área de tecnologia desde 1986. Leva o Linux a sério desde 1998, desenvolve soluções de código aberto, é membro colaborador da comunidade Viva O Linux, mantenedor da biblioteca de código aberto de vídeo captura, entre outros projetos dos quais faz parte.
Gostou do artigo? Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/3169
Mais informações [1] Mimas: http://vision.eng.shu.ac.uk/mediawiki/index.php/Mimas [2] OpenCV: http://sourceforge.net/projects/opencvlibrary/ [3] Biblioteca Bazar: http://cvlab.epfl.ch/software/bazar/index.php [4] Biometria facial na autenticação do usuário root: http://tinyurl.com/y9jrbk9 [5] Projeto ehci: http://code.google.com/p/ehci/ [6] Projeto kmando: http://vision.eng.shu.ac.uk/mmvlwiki/ index.php/Interactive_Camera-Projector_System [7] eViacam: http://eviacam.sourceforge.net/ [8] Movimentos do mouse com a face: http://tinyurl.com/o5pjb4 [9] Uso do eViacam para acessibilidade: http://www.vivaolinux.com.br/ artigo/Acessibilidade-Movimentos-do-mouse-com-a-face-(eViacam) [10] Jogo Levelhead (Realidade Aumentada): http://tinyurl.com/cwhqrc [11] Zebra Barcode Reader: http://tinyurl.com/ybwwnef [12] ARToolKit: Criação de aplicativos de Realidade Aumentada: http://tinyurl.com/y8hmh4r [13] Acessibilidade para tetraplégicos em Li NETi: http://www.youtube.com/watch?v=kuNlXznWRZ4
55
PrePare-se!
sUN TeCH DaYs 2009-2010 Um evento mundial criado para a comunidade global de desenvolvedores e administradores de sistema. Em sua oitava edição, o Sun Tech Days contará com a presença de um convidado especial: James Gosling, conhecido como o ‘Pai do Java’, além dos principais experts da Sun Microsystems. Venha aprender, compartilhar informações, interagir, criar oportunidades, conhecer outros desenvolvedores e, principalmente, participar. Principais temas:
Java • Scripting • MySQL OpenSolaris • NetBeans • RIA’s
Sun Tech Days 8 e 9 de dezembro de 2009 Amcham Business Center | Rua da Paz, 1431 Chácara Santo Antônio - São Paulo - SP Para mais informações, acesse www.suntechdays.com.br, ligue para 11 2532 8926 ou envie um email para techdays@sun.com.
SUN TECH DAYS 2009-2010
A Worldwide Developer Conference
Introdução ao Parrot
PROGRAMAÇÃO
Louro quer programar O Parrot é uma ferramenta para desenvolvimento e execução de novas linguagens de programação, que já conta com Perl 6 e muito provavelmente com a sua linguagem preferida. por Martin Streicher
C
ansado de trabalhar com o mesmo código dia após dia? Sua linguagem de programação é ultrapassada? Você precisa de mais entusiasmo para entrar na infovia? Não sofra mais. O Reino dos Programadores tem de tudo para você. Venha para cá! Temos PHP 5: ótimo para a web, com uma bela aceleração de bytecode. Ou Ruby 1.9: essa belezura recém-lançada, ainda quentinha da fábrica, acaba com seus problemas de nuvem. Quer economizar um dinheirinho? Tente as linguagens certificadas. O preço do Perl 5.8 vai mudar. Reino dos Programadores: onde todo programador é rei. O Reino dos Programadores pode não existir, mas escolher uma linguagem é muito parecido com comprar um carro. Assim como o carro, cada linguagem de programação é feita com um propósito, quer seja utilidade, velocidade ou tamanho. Da mesma maneira, ela pode oferecer 72
recursos de ponta e exóticos. A escolha de uma linguagem também é um investimento significativo, com consequências possivelmente prejudiciais e desastrosas se realizada sem as devidas considerações. Além disso, cada linguagem inclui partes obrigatórias – literais, variáveis, subrotinas e controle de fluxo no lugar de pneus, direção e para-brisas. De fato, a maior parte do trabalho no desenvolvimento de uma nova linguagem é (desculpe o trocadilho) reinventar a roda. O código da linguagem precisa ser decomposto por um parser, organizado em pequenos elementos, aglomerado em declarações, abstraído em árvores sintáticas e, finalmente, interpretado ou convertido em algo executável, tal como bytecodes ou binários. Além do mais, após seu desenvolvimento, a nova linguagem de programação é limitada, a menos que contenha capacidades suplementares, tais como expressões regulares e
interfaces para chamadas de sistema. É possível evitar certo gasto com a utilização de bibliotecas C, como a biblioteca de expressões regulares compatíveis com Perl (PCRE), mas isso também demanda certo esforço. Ironicamente, várias linguagens seguem esse caminho, pois não há muita escolha. No entanto, há exceções: a duradoura iniciativa .NET da Microsoft permite que várias linguagens – C#, Visual Basic, C++ e algumas de código aberto portadas para a plataforma – compartilhem código, pois todas são compiladas para uma linguagem comum de baixo nível, chamada CIL (Common Intermediate Language) [1]. Mas JRuby é uma exceção: essa linguagem executa código Ruby na máquina virtual Java (JVM). Ainda assim, a grande maioria das linguagens de programação permanece isolada. É como tentar colocar um carro dentro de outro.
http://www.linuxmagazine.com.br
Parrot | PROGRAMAÇÃO
Abordagem unificada
Para acelerar o desenvolvimento de novas linguagens, facilitar o compartilhamento de código entre elas e acelerar a execução de linguagens dinâmicas como Perl, Ruby e Python, o grupo de desenvolvimento do Parrot construiu uma máquina virtual e um conjunto de ferramentas para compilar e executar qualquer linguagem. O Parrot [2] foi inicialmente concebido como “motor” do Perl 6, mas foi expandido pois se adaptava a uma vasta classe de códigos. Como consta no site do Parrot, “Teoricamente, é possível escrever uma classe em Perl, transformá-la numa subclasse Python e depois instanciar e utilizar essa subclasse em um programa Tcl”. Como o Parrot é quase uma fábrica de compiladores, ele fornece todas as ferramentas necessárias para converter o código-fonte em um programa funcional: O Parser Grammar Engine (PGE) define a sintaxe de uma linguagem de programação com regras. Uma regra pode definir a sintaxe de uma declaração de atribuição, enquanto outra pode definir a estrutura de uma sub-rotina. O PGE examina a entrada, produz um bloco e tenta combinar o fluxo de blocos com as regras. Uma combinação indica uma frase válida na linguagem; Cada regra, por sua vez, pode chamar uma ou mais ações. Se você está escrevendo uma nova linguagem de programação, sua semântica é expressa em ações. Cada ação transforma uma combinação em uma estrutura de dados independente da linguagem, chamada Parrot Abstract Syntax Tree (PAST). A PAST representa uma declaração como uma árvore, geralmente com operandos como folhas e
Linux Magazine #61 | Dezembro de 2009
Regras if_statement
if
expressão
else
bloco
then
expressão bloco
(
)
end
bloco
a<b
else (bloco)
“A less... B
“B greater...
Figura 1 Código de uma declaração em C.
operadores – incluindo estruturas de controle – como ramos. De forma cumulativa, o programa como um todo é representado por uma árvore PAST com o nó especial TOP na raiz; A Parrot Intermediate Representation (PIR) pode ser facilmente escrita à mão e é a saída comum
de um compilador Parrot. Ela abstrai alguns detalhes de baixo nível para reduzir o trabalho dos programadores e também dos escritores de compiladores; A Parrot Assembly (PASM) é mais mecânica que a PIR. Pode ser escrita manualmente ou gerada por um compilador, mas
Listagem 1: Regra que define sintaxe 01 rule if_statement { 02 ‘if’ <expression> ‘then’ <block> [‘else’ <else=block>]? ‘end’ 03 {*} 04 }
Blocos
Figura 2 Código agregado em blocos.
73
PROGRAMAÇÃO | Parrot
Fonte
Figura 3 Blocos da figura 2 encaixando-se nas regras.
cada detalhe, como alocação de registros, precisa ser checado; A representação de baixo nível é o Parrot Byte Code (PBC). Embora seja possível vê-lo como código de máquina, ele não é executado no hardware. Em vez disso, o PBC é executado pelo Parrot.
O Parrot pode executar arquivos PBC, PASM, PIR e PAST. A PAST não é adequada à programação manual, mas é ideal para integração entre ferramentas. Normalmente, um compilador tradicional como o onipresente GCC gera uma árvore de sintaxe abstrata que funciona como uma forma intermediária de produzir e aplicar otimizações. Adaptar essa árvore à PAST é simples e, como a PAST é lida pelo Parrot, é fácil conectar um outro compilador ao Parrot. Além desses componentes, o Parrot também fornece alguns nós PAST (pense no nó como um modelo ou objeto) para representar recursos fun-
Listagem 2: Ação associada a uma regra 01 method if_statement($/) { 02 my $cond := $<expression>.ast; 03 my $then := $<block>.ast; 04 my $past := PAST::Op.new( $cond, $then, :pasttype(‘if’), :node($/) ); 05 06 ## se houver uma diretiva else, inclua-a no nó PAST. 07 if $<else> { 08 $past.push( $<else>[0].ast ); 09 } 10 make $past; 11 }
Blocos if_statement
expressão
bloco
else (bloco)
Figura 4 Uma ação prepara os dados associados a uma regra para ser transformados em PAST. Nesta imagem, o if_statement está junto.
74
damentais encontrados em qualquer linguagem de programação. Por exemplo, conceitualmente, o Parrot inclui um nó para if-then-else, uma estrutura presente em todas as linguagens. Para incluir um nó desses na árvore do seu programa, você precisa determinar uma condição, um bloco de código que será executado caso a condição seja verdadeira e, opcionalmente, outro bloco de código que será executado caso a condição seja falsa. O nó if capta a semântica do nó independentemente da sintaxe original usada para declará-lo. Outros nós PAST dedicam-se a outros recursos: uma variável, incluindo escopo e tipo; um loop; e operadores, incluindo aritméticos e chamadas de sub-rotinas. Aí está a verdadeira força do Parrot. Os aspectos da linguagem não precisam ser reinventados, pois ele abstrai cada um, independentemente da sintaxe. No entanto, se uma linguagem possui algum recurso realmente novo, é possível implementar um nó PAST que corresponda à sua semântica. As figuras 1 a 5 ilustram o processo de conversão de uma estrutura if semelhante a C em um nó PAST. A figura 1 mostra o código-fonte; nesta forma, ela é uma sequência de caracteres que pode ou não aderir à sintaxe. A figura 2 mostra o código decomposto em blocos de acordo com as regras do parser. Neste ponto, caracteres individuais não são mais importantes; em vez disso, é o grupo que importa agora. A figura 3 ilustra as regras. Cada uma delas dita uma parte da gramática correta. Quando um grupo de blocos se encaixa numa regra, ele é coletado e formatado em uma regra, outro tipo de amálgama. Cada passo da aglomeração no processo de compilação move o código da sintaxe em direção à semântica. A figura 4 mostra a ação
http://www.linuxmagazine.com.br
Parrot | PROGRAMAÇÃO
da declaração if. Cada amálgama da figura 3 já foi reduzido por sua (sub)ação separada e agora está unido para processamento subsequente. Neste ponto, cada unidade tem seu propósito, mas a lógica da condicional ainda não foi percebida. Na figura 5 vemos a montagem final após a ação da declaração if. O nó PAST captura a intenção e a operação da declaração de uma estrutura de dados. O último passo, que não é mostrado, atravessa o PAST (de cima para baixo e da esquerda para a direita) e gera o código correto. O código carregaria a primeira variável, depois a segunda, e faria a comparação. Esta comparação pode tanto continuar a execução na sequência (com o próximo código, que implementa uma comparação verdadeira, escrevendo “A menor que B”) quanto quebrar a execução com a comparação falsa (escrevendo “B é menor ou igual a A”).
Programação em Parrot A listagem 1 mostra um exemplo concreto do que foi discutido agora. Esse exemplo demonstra a gramática do Squaak, uma linguagem de programação de exemplo incluída no código-fonte do Parrot. A listagem 1 é uma regra que define a sintaxe da declaração if-then-else do Squaak. Uma declaração válida precisa: iniciar com a literal if; de uma expressão, definida em sua própria regra (não mostrada); da palavra-chave then; de um bloco de declarações, também definido em sua própria regra; e da palavra-chave end.
Listagem 3: Programa em PIR 01 .sub main 02 # Define o número de quadrados a somar. 03 .local int maxnum 04 maxnum = 10 05 06 # Vamos usar registradores com nomes. Note que podemos declarar vários 07 # registradores do mesmo tipo em uma linha. 08 .local int i, total, temp 09 total = 0 10 11 # Loop da soma. 12 i = 1 13 loop: 14 temp = i * i 15 total += temp 16 inc i 17 if i <= maxnum goto loop 18 19 # Escreve o resultado. 20 print “A soma dos primeiros “ 21 print maxnum 22 print “ quadrados eh “ 23 print total 24 print “.\n” 25 .end
interrogação, que significa “uma ou zero” ocorrência. Se essa frase aparecer, ela precisa conter a palavrachave else seguida por outro bloco. A notação <else=block> simplesmente atribui um apelido chamado else ao segundo bloco para diferenciá-lo do primeiro. Se essa regra coincidir com o texto, é chamada uma ação no fim, que
PAST node if_statement
$cond
<
a
Esses são os componentes obrigatórios. A frase [‘else’ <else=block>]? é opcional, como mostra o ponto de
Linux Magazine #61 | Dezembro de 2009
é o propósito do estranho marcador {*} no fim da regra. Uma ação é simplesmente uma sub-rotina. Por padrão, o Parrot chama a ação pelo mesmo nome de sua respectiva regra. Além disso, a ação é chamada com argumentos, um argumento por sub-regra. A listagem 2 mostra a ação associada à regra if_statement. Mesmo
b
$then
$else[0]
“A less...”
“B...”
Figura 5 A declaração if gera um PAST pronto para a otimização e geração de código.
75
PROGRAMAÇÃO | Parrot
sem uma descrição elaborada, seu funcionamento é bem óbvio. Dada uma condição e um bloco para executá-la caso seja verdadeira, o código constrói um PAST para a declaração. Se for fornecido mais
um bloco, ele será unido ao PAST. A declaração final make faz o trabalho duro por você. Tendo em mente a listagem 2, o código a seguir é a ação para uma declaração como x = 10:
method assignment($/) { my $rhs := $<expression>.ast; my $lhs := $<primary>.ast; $lhs.lvalue(1); make PAST::Op.new( $lhs, $rhs, :pasttype(‘bind’), :node($/) );
Quadro 1: Compilação do Parrot Compilar o Parrot é surpreendentemente fácil, supondo que você possua as ferramentas comuns para desenvolvimento de software no seu sistema Linux. Se você tem Perl 5, GCC e Subversion (ou Xcode instalado no seu Mac OS X), o processo todo leva apenas alguns minutos. O primeiro passo é obter código-fonte mais recente com o Subversion: $ svn co \ https://svn.parrot.org/parrot/trunk \ parrot $ cd parrot Em seguida, configure a compilação com o script especial Configure.pl do Parrot. Normalmente, os padrões propostos pelo script funcionam bem. No entanto, se você quiser personalizar, digite perl Configure.pl --help para examinar a lista de opções. A maioria delas são opções gerais, como a --prefix, de instalação, mas muitas afetam recursos do Parrot, como qual estratégia de coleta de lixo usar. $ perl Configure.pl Parrot Version 1.2.0 Configure 2.0 Copyright (C) 2001-2009, Parrot Foundation. Hello, I’m Configure. My job is to poke and prod your system to figure out how to build Parrot. The process is completely automated, unless you passed in the --ask flag on the command line, in which case I’ll prompt you for a few pieces of info. Since you’re running this program, you obviously have Perl 5--I’ll be pulling some defaults from its configuration. ... Now you can use make to build your Parrot. After that, you can use make test to run the test suite. Para prosseguir, compile o software e faça sua verificação para garantir a estabilidade: $ make $ make test Supondo que o teste tenha sucesso, instale as ferramentas do Parrot no sistema: $ sudo make install Por padrão, o Parrot será instalado em /usr/local/. Para instalá-lo no seu diretório home, use perl Configure.pl --prefix=$HOME/parrot na configuração. A instalação adiciona oito utilitários ao sistema. O mais importante é o parrot, a máquina virtual do Parrot. Para testá-lo, use as listagens 3 e 4 e os comandos discutidos anteriormente. Com o código-fonte do Parrot já baixado, mantenha-o atualizado com svn update. Mas atenção: use make realclean antes de qualquer atualização. $ make realclean $ svn update Sem usar o realclean, o Parrot pode não funcionar ou exibir falhas estranhas e irreproduzíveis.
76
http://www.linuxmagazine.com.br
Parrot | PROGRAMAÇÃO
A listagem 3 mostra um exemplo de programa PIR retirado do site do Parrot. O aplicativo soma o quadrado dos números de 1 a 10. Nesse código, a identação é usada para facilitar a leitura, não pela semântica (em outras palavras, o espaço em branco não é ativo). A listagem 3 lembra a linguagem assembly, com algumas exceções que são conveniências do PIR. Especificamente, temp = i * i equivale a mul temp, i, i. O código .local int i, total, temp utiliza nomes mais amigáveis no lugar de registradores fixos para as três variáveis, e usa .local para especificar um escopo. O operador de atribuição (=) é um apelido para set, e goto também é uma conveniência. É equivalente a le i, maxnum, loop. Para executar o código da listagem 3, é possível tanto interpretar o código PIR quanto compilar o PIR para PBC e executar o código resultante (confira o quadro 1). $ parrot sum.pir A soma dos primeiros 10 quadrados eh 385. $ parrot -o sum.pbc sum.pir $ parrot sum.pbc A soma dos primeiros 10 quadrados eh 385.
Listagem 4: Fonte PASM 01 main: 02 set I0, 10 03 set I1, 0 04 set I3, 1 05 loop: 06 mul I2, I3, I3 07 add I1, I2 08 inc I3 09 le I3, I0, loop 10 print “A soma dos primeiros “ 11 print I0 12 print “ quadrados eh “ 13 print I1 14 print “.\n” 15 returncc
Ave tagarela
O Parrot ganhou esse nome por causa de sua habilidade de falar várias línguas [3]. O Rakudo Perl 6 [4] é uma implementação de Perl 6 no Parrot. O Cardinal [5] é uma versão de Ruby 1.0, e o Pipp [6] é uma versão de PHP. Outros projetos estão levando Java, Lua e Smalltalk para o Parrot e há mais 40 projetos listados no seu índice.
A última versão do Parrot é a 1.2.0. O programa é estável e pode ser usado tanto como linguagem de programação quanto para pesquisa e desenvolvimento de máquinas virtuais. Se você precisa de uma linguagem de domínio específico ou deseja estender uma linguagem já existente, experimente o Perl 6 por enquanto. Tire o Parrot de seu poleiro e leveo para sua máquina. n
Mais informações [1] Common Intermediate Language (CIL) na Wikipédia (em inglês): http://en.wikipedia.org/wiki/Common_Intermediate_Language [2] Parrot: http://www.parrot.org/
O Parrot pode produzir fonte PASM, caso você tenha curiosidade de saber como o PIR traduz. Para gerar o PASM, substitua -o arquivo. pbc por -o arquivo.pasm:
[4] Rakudo Perl 6 no Parrot: http://www.rakudo.org/
$ parrot -o sum.pasm sum.pir
[5] Cardinal, Ruby para Parrot: http://github.com/cardinal/cardinal/tree/master
[3] Implementações de Linguagens baseadas no Parrot: http://www.parrot.org/languages/
[6] Pipp, PHP para Parrot: http://wiki.github.com/bschmalhofer/pipp/
A listagem 4 mostra o equivalente PASM da listagem 3. O Parrot também pode executar o PASM diretamente:
Gostou do artigo?
$ parrot sum.pasm
Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br
A soma dos primeiros 10 quadrados é 385.
Linux Magazine #61 | Dezembro de 2009
Este artigo no nosso site: http://lnm.com.br/article/3158
77
e n i z a g a M x u n i L a r e t Quer
? a s a c a u s m e s e s e m s o dos
to
09/2009
AMADOR p.30 DE HACKER A PROGR qualidade Maddog explica a de software
p.26 CRESCEU NA CRISE enfrentou Red Hat relata como e venceu a crise
ARE p.22 PATENTES DE SOFTW ente Temporariam EUA suspensas nos
2009 # 58 Setembro
OR p.30
PATENTES
.BR
DE TI
Taurion mais com Para rão aprende
p.28 LINUX PARK 2008 Alegre a temporada Iniciada em Porto Park de 2008 de seminários Linux
de invasão
R$ 13,90 € 7,50
PROFISSIONAL
DE TI
GOVERNANÇA COM
p.47
p.18 ADE 2.0 A: UPGR ar o sistema de atualiz Mas o SEGURANÇ certo fazem. O jeito todos ando. como não é está melhor cenário
p.64
Linux p.70 O: AIR no o Brisa A EDIÇÃ » Adobe é fácil com » UPnP ÉM NESTso p.53 de proces p.58 VEJA TAMB adores artigo
p.67
APACHE! Apache ET NO ASP.N ono, seu ente. l mod_m.NET nativam REDEoS: versáti do
» Escalon laris, sexto » OpenSo
A REVISTA DO
PROFISSIONAL
DE TI
Com conteú servir pode
OM.BR
ZINE.C
MAGA
E UTILIZE AS SEJA UM BOM GESTOR ADOTADAS E MELHORES PRÁTICAS PROFISSIONAIS PELOS RECOMENDADAS NESSA ÁREA p.36 MAIS EXPERIENTES
LINUX
WWW.
» ITIL na prática v3. p.44 » Novidades do ITIL p.39
p.69
VEJA TAMBÉM NESTA
EDIÇÃO:
com o SARG p.60 » Relatórios do Squid on Rails p.74 conheça o JRuby » Java, Ruby e Rails:
preço vale a pena?
REDES: IPV6 p.64
da Conheça as vantagens nova versão do Internet que Protocol, e veja por é difícil adotá-la
GCC 4.3? p.58 » Benchmarks do p.46 de dados com a Libferris » Becape de bancos NIS e DHCP p.52 » LPI nível 2: Servidores
WWW.LINUXMAGAZINE.COM.BR
BASH
p.34
STRACE
OPENSOLARIS
PELICANHPC
10/08/09 17:36
NESTA EDIÇÃO:p.16 VEJA TAMBÉM caçõe s do mercado
» Conheça as certifi nunca é seguro p.18 » Kurt Seifried: Wi-fi p.51 tação de partições » OpenSolaris: forma as mudanças? p.72 » Python 3.0: quais
AZINE.COM.BR
WWW.LINUXMAG
ADOBE AIR
e ganhe + 1 ano grátis Você recebe mais 12 exemplares, totalizando 3 anos de assinatura.
OPENSOLARIS
Assine 2 anos de Linux Magazine
UPNP
6x de R$ 29,80 no cartão
ESCALONADORES
e ganhe + 6 meses grátis Você recebe em sua casa 18 exemplares: 12 edições normais + 6 edições da promoção.
. APRENDA É UM BOM ATAQUE A MELHOR DEFESA COMO S PARA ENTENDER A INVADIR SISTEMA ES. p.33 SISTEMAS E RED DEFENDER SEUS
UPGRADE
Assine 1 ano de Linux Magazine
MOD_MONO
a Distribua o Samb ibilidade e obtenha alta dispon . e melhor desempenho
LIDS
RIBUÍDO p.58 REDES: SAMBAporDIST várias máquinas
20:47
SÃO
DOTGNU
ICAÇÕES PYTHON 3 CERTIF
STRACE
Sua tranquilo. garantem seu sono de medidas que
INVA VISUALIZAÇÃO DE
EB APLICAÇÕES W
OPEN SOLARIS
CHROME OS
CRIPTOGRAFIA
AULA DE INVASÃO
FREEIPA
com o App Engine
» Programe no Google » SEO na fonte p.41
00059
resolução Com o DNSSEC, a de nomes fica protegida seu de ataques. Mas
9 9 771806 94200
SEGURANÇA: DNSSEC
INVASÃO
JAIL SSH
OPENSOLARIS
profissionais » O que dizem os certificados p.24 Quais as » Cobit, CMMI, ITIL. p.36 melhores práticas?
DES p.61 » Seu Apache aguenta? p.46 REDES: IDENTIDA ades de colaborativo p.51 gerenciar identid
WWW.LINUX
p.41
invasão
#59 10/09
A REVISTA DO
A PODEM AJUDÁ-LO MENTAS DE SEO TÉCNICAS E FERRA NA INTERNET. p.33 SONHADO LUCRO CONSEGUIR O TÃO
ira da era digital. você a nova fronte m.br/cloud. a locaweb traz para o Cloud Computing em locaweb.co sobre assista ao vídeo MAGAZINE.COM.BR
p.34
de uma » Aula com LIDS gráfico » Mapa prova de invasão à » Linux
#44 07/08
CMS Use o FreeIPA para . » e muito mais prática forma centralizada ARE E BARATO. O SOFTW GE BOM, BONITO E STORAPROPORCIONA O MELHOR RESULTADO memóriaRANÇA: PEN DRIV LIVRE processamento, SEGU com , POR ISSO. p.31 Linux p.66 or SEM COBRAR NADA CRIPTOGRAFADO administrar seu servid Mantenha para perder. total de omia fáceis . auton Pen drives são r$ 59,00/mês RAID p.32 ÃO: Cloud mini: tenha o máxima. tindo ções. A partir de s que aceleram o seus dados sob proteçã TAMBÉM NESTA EDIÇ para suas aplica quando quiser, garan » Truques simple BD p.40VEJA e disco exclusivos Linux ou Windows 0/mês. r p.58 salvaç p.64ão para , aRIS s de seu servidor SOLA partir de r$ 149,0 » Bash 4: ainda melho OPENached p.74 ! p.68 » Memc o sob demanda. A ajuste as capacidade o Bacula p.45 da com o Strace com veja da série, DO EXCH artigoional OTAMB NESTA EDIÇ»ÃO: p profiss Cloud server: de ponta e cresciment » Depuração profun ÉMANGE No quinto Backu a sua p.32 SUBS adaTITUT dedic VEJA REDE te S: are, desempenho de Cezar Taurion Sun trata os amen todos da hardw p.46 a visão enta de inteir na Agedu sistem ade OS : o e implem como » Chrom disponibilid are Zarafa arquivos velhos a em uma nuvem groupwíficas . » Adeus nge p.48 e lógicos. e pode fácil com o PelicanHPC esO espec sos em larga escal dispositivos físicos s para necessidad os recursos do MS»Excha conte com recur Cluster HPC muito k. no OpenSolaris p.54 e conheça os plano private Cloud: Outloo com s rcial ções cliente come e s aplica » Pacote servir suas eaté nossa equip hospedar seu site bugs p.68 empresa. Consulte dos para m fi ra o , strutu Strace » 04/09/09 melhor infrae R C# p.72 OM.B em ZINE.C aberto ng loCaweb: a » Padrão CAÇÕES WEB p.66 WWW.LINUXMAGA Cloud Computi . lista SEGURANÇA: APLI e tecnologia de ponta segura? Confira uma alta performance aplicação web é
LM59_capa.indd
DA
E. APREN ATAQU COMO BOM DER É UM ENTEN R DEFESA AS PARA REDES. p.33 A MELHO R SISTEM AS E A INVADI SEUS SISTEM DER DEFEN
CEZAR TAURION p.34 O Código Aberto como incentivo à inovação
00044
p.26 CASE ALFRESCO seus A Construcap agilizou projetos com o Alfresco
SL
as
SL para s e empres usuário
# 59
ZARAFA
SMACK
RAID SAMBA BACKUP
SL mostra p.30 isso 40 ANOS como as explica empres Maddog de das a fragilida
UNIX p.26 I 2009 s, CONSEG governo
e
LIFERAY
VIRTUALIZAÇÃO
DISPONÍVEL, MAS A ESTAR SEMPRE DEFENDA-SE SEU SERVIÇO PRECIS AMEAÇA CONSTANTE. ISSO SIGNIFICA UMA p.33 MAIS ADEQUADAS COM AS TÉCNICAS
IBUÍDO SAMBA DISTR MEMCACHED BACKUP BACULA RAID SAMBA
APACHE
AMEAÇA NA NUVEM
NUVEM
PROFISSIONAL
2009 # 59 Outubro
ADE p.32tes de TI NA FACULD, estudan
R$ 14,90 € 7,50
idade
ZINE.COM
UXMAGA
WWW.LIN
A REVISTA DO
Wi-fi o de partições » Conheça ? p.72 Seifried: formataçã » Kurt is: as mudanças » OpenSolar 3.0: quais » Python
UÍDO p.58 DISTRIB SAMBApor várias máquinas
Distribua alta disponibil ho. e obtenha desempen e melhor
, SL para governos resas usuários e emp
TI estudantes de Para Taurion, com SL aprenderão mais
R$ 14,90 € 7,50
: EDIÇÃO NESTAdo mercado p.16 es p.18 é seguro p.51 VEJA TAMBÉM as certificaçõ nunca
Sua aplicação que garantem de medidas
REDES: o Samba
AMEAÇA NA ou vulnerável? p.34 » Virtualização: segura p.40 do kernel: Smack » Proteção dentro com o Jailkit p.44 » Usuários em jaulas
ÕES WEB uma lista Confira NÇA: APLICAÇ segura? sono tranquilo. seu SEGURA web é
09 9 771806 9420
E.COM.BR XMAGAZIN WWW.LINU
p.66
DE TI
# 60
PROFISSIONAL APP ENGINE
# 57
A REVISTA DO
mostra ica como isso Maddog expl das empresas a fragilidade
#60 11/09
E
O SOFTWAR O E BARATO. BONITO MELHOR RESULTAD BOM, O p.31 IONA STORAGE POR ISSO. PROPORC NADA LIVRE p.32 o RAID SEM COBRAR p.45 que aceleram simples l com o Bacula p.40 » Truques profissiona para BD » Backup d, a salvação » Memcache
EDIÇÃO:
NESTA p.46 p.48 Agedu TAMBÉM velhos: o PelicanHPC arquivos fácil com » Adeus HPC muito p.54 » Cluster no OpenSolarisp.68 bugs » Pacotes o fim dos C# p.72 » Strace, aberto em » Padrão
VEJA
R$ 14,90 € 7,50
Pen drives sob proteção dados seus
SL NA FACULDAD
UNIX 40 ANOS p.30
CONSEGI 2009 p.26
Linux Magazin
PEN DRIVE NÇA: p.66 SEGURA RAFADOde perder. Mantenha CRIPTOGsão fáceis máxima.
#57 08/09
Use o centralizada forma
RAID A SAMB UP BACK
00057
p.61
ADESidentidades de IDENTID prática. para gerenciarmais REDES: e mutio FreeIPA
live
Londrina elogios A Unimed tem e só Linux
Smack o: segura do kernel: Jailkit p.44 » Virtualizaçã dentro com o » Proteção em jaulas » Usuários
SEO
ne
, MAS E DISPONÍVEL . DEFENDA-S SEMPRE ESTAR PRECISAAMEAÇA CONSTANTE S p.33 ADEQUADA SEU SERVIÇO UMA MAIS SIGNIFICA p.34 ISSO TÉCNICAS ou vulnerável?p.40 COM AS
PROF
adotou
00060
A REVISTA DO
p.26
9 771806 942009
Linux Magazi
Com loud ComputingEAÇA NA AM e flexibilidade utonomia total NUVEM ção do servidor. na administra
E p.32
TI ISSIONAL DE NA UNIMED
9 771806 942009
» Bash profunda de Cezar Taurion visão » Depuração OS na » Chrome
IO P.28
O DESPERDÍC por que mostra pagos ser Maddog devem CDs
CONTRA
LINUX
10/2009
No quintosistema da lógicos. e o como s físicos dispositivo
des SOURCE OPEN oportunidamento Novas o amadureci com
R$ 14,90 € 7,50
veja LARIS os OPENSOartigo do curso, Sun trata
INE.COM.
UXMAGAZ
WWW.LIN
2009 # 60 Novembro
p.30 MADUROque vêm
#58 09/09
p.64
GE! p.68 DO EXCHAN
UTO a todos SUBSTIT implemente pode Zarafa Exchange O groupware do MS Outlook. os recursosclientes BR até servir
REDES:
nidade Novas oportu recimento com o amadu
por que live Maddog mostra pagos CDs devem ser
00058
EDIÇÃO: NESTA p.58 p.74 melhor Strace VEJA TAMBÉM p.32 com o 4: ainda
kwarup. com
com no Google fonte p.41
» Programe » SEO na aguenta? p.46 Apache » Seu
RO p.30 OPEN SOURCE MADU s que vêm
RDÍCIO P.28
CONTRA O DESPE
p.26
na adotou A Unimed Londri elogios Linux e só tem 2009 # 57 Agosto
Linux Magazine
p.32 abre E O SL CRISE econômica o SL A criseespaço para mais
LINUX NA UNIMED
9 771806 942009
A AJUDÁ-LO p.33 SEO PODEM TAS DE NA INTERNET. LUCRO E FERRAMEN SONHADO TÉCNICAS O TÃO p.34 Engine CONSEGUIR o App
# 58
p.30
CRISE E O SL p.32 abre A crise econômica o SL mais espaço para
11/2009
Linux Magazine
08/2009
O DE CÓDIGO por que REUTILIZAÇÃ explicaa roda Maddog não reinventar
A PROGRAMAD a qualidade DE HACKER explica Maddog de software
p.26 NA CRISE enfrentou CRESCEUrelata como Red Hat a crise e venceu
p.22
ente EUA
CÓDIGO p.30 REUTILIZAÇÃO DE que Maddog explica por não reinventar a roda
SL E ESCOLHAS p.26 liberdade de “Liberdade não é Stallman escolha”, afirma de p.26 liberdade não é Stallman SL E ESCOLHAS “Liberdadeafirma escolha”,
DE SOFTWARE
nos Temporariam suspensas
» Aula de invasão p.34 invasão p.41 » Mapa gráfico de uma são com LIDS p.47 » Linux à prova de inva
RADE 2.0 p.18 SEGURANÇA: UPG lizar o sistema O jeito certo de atua s fazem. Mas o não é como todo horando. cenário está mel
T NO APACHE! p.67 REDES: ASP.NE_mo no, seu Apache Com o versátil mod . .NET nativamente pode servir conteúdo R
AGAZINE.COM.B
WWW.LINUXM
1
6x de R$ 59,60 no cartão
Acesse agora o site: www.linuxmagazine.com.br
NESTA EDIÇÃO: » Adobe AIR no Linux p.64 VEJA TAMBÉM o Brisa p.70 de processo p.53 » Escalonadores o artigo p.58 » OpenSolaris, sext
» UPnP é fácil com
24/09/09 15:23
Linux.local
SERVIÇOS
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 4082-1300 ou anuncios@linuxmagazine.com.br
Fornecedor 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
71 4062-8688
www.imtech.com.br
4 4
4 4
www.f13.com.br
4 4
4 4
Bahia IMTECH
Salvador
Av. Antonio Carlos Magalhaes, 846 – Edifício MaxCenter – Sala 337 – CEP 41825-000
F13 Tecnologia
Fortaleza
Rua Padre Valdevino, 526 – Centro
Nettion Tecnologia e Segurança da Informação
Fortaleza
Av. Oliveira Paiva, 941, Cidade dos Funcionários – CEP 60822-130 85 3878-1900
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
4
4 4
Spirit Linux
Vitória
Rua Marins Alvarino, 150 – CEP: 29047-660
27 3227-5543
www.spiritlinux.com.br
4
4 4
62 3232-9333
www.3way.com.br
4 4 4
4 4
Ceará 85 3252-3836
www.nettion.com.br
4 4
4
Espírito Santo 4 4
4 4
Goiás 3WAY Networks
Goiânia
Av. Quarta Radial,1952. Setor Pedro Ludovico – CEP.: 74830-130
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
4 4 4
4 4 4
Microhard
Belo Horizonte
Rua República da Argentina, 520 – Sion – CEP: 30315-490
31 3281-5522
www.microhard.com.br
4 4 4
4 4
TurboSite
Belo Horizonte
Rua Paraíba, 966, Sala 303 – Savassi – CEP: 30130-141
0800 702-9004
www.turbosite.com.br
4
4 4
iSolve
Curitiba
Av. Cândido de Abreu, 526, Cj. 1206B – CEP: 80530-000
41 252-2977
www.isolve.com.br
Mandriva Conectiva
Curitiba
Rua Tocantins, 89 – Cristo Rei – CEP: 80050-430
41 3360-2600
www.mandriva.com.br
Telway Tecnologia
Curitiba
Rua Francisco Rocha 1830/71
41 3203-0375
www.telway.com.br
81 3223-8348
www.fuctura.com.br
Paraná 4 4
4
4 4 4 4 4 4
Pernambuco Fuctura Tecnologia
Recife
Rua Nicarágua, 159 – Espinheiro – CEP: 52020-190
4
4
Rio de Janeiro Múltipla Tecnologia da Informação Rio de Janeiro
Av. Rio Branco, 37, 14° andar – CEP: 20090-003
21 2203-2622
www.multipla-ti.com.br
NSI Training
Rio de Janeiro
Rua Araújo Porto Alegre, 71, 4º andar Centro – CEP: 20030-012
21 2220-7055
www.nsi.com.br
4
4
Open IT
Rio de Janeiro
Rua do Mercado, 34, Sl, 402 – Centro – CEP: 20010-120
21 2508-9103
www.openit.com.br
4
4
Unipi Tecnologias
Campos dos Goytacazes
Av. Alberto Torres, 303, 1ºandar – Centro – CEP: 28035-581
22 2725-1041
www.unipi.com.br
4up Soluções Corporativas
Novo Hamburgo
Pso. Calçadão Osvaldo Cruz, 54 sl. 301 CEP: 93510-015
51 3581-4383
www.4up.com.br
Definitiva Informática
Novo Hamburgo
Rua General Osório, 402 - Hamburgo Velho
51 3594 3140
www.definitiva.com.br
Solis
Lajeado
Av. 7 de Setembro, 184, sala 401 – Bairro Moinhos CEP: 95900-000
51 3714-6653
www.solis.coop.br
4
4
4 4
4 4 4 4
Rio Grande do Sul 4 4
4 4
4
4 4
4
4 4 4 4 4
DualCon
Novo Hamburgo
Rua Joaquim Pedro Soares, 1099, Sl. 305 – Centro
51 3593-5437
www.dualcon.com.br
4
4
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
4
4
LM2 Consulting
Porto Alegre
Rua Germano Petersen Junior, 101-Sl 202 – Higienópolis – CEP: 90540-140
51 3018-1007
www.lm2.com.br
4 4
4
4 4
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
4
4
4 4
Plugin
Av. Júlio de Castilhos, 132, 11º andar Centro – CEP: 90030-130
51 4003-1001
www.plugin.com.br
4
4
4
Porto Alegre
TeHospedo
Porto Alegre
Rua dos Andradas, 1234/610 – Centro – CEP: 90020-008
51 3286-3799
www.tehospedo.com.br
4 4
Propus Informática
Porto Alegre
Rua Santa Rita, 282 – CEP: 90220-220
51 3024-3568
www.propus.com.br
4 4 4
4 4
São Paulo Ws Host
Arthur Nogueira
Rua Jerere, 36 – Vista Alegre – CEP: 13280-000
19 3846-1137
www.wshost.com.br
4
DigiVoice
Barueri
Al. Juruá, 159, Térreo – Alphaville – CEP: 06455-010
11 4195-2557
www.digivoice.com.br
4 4 4
Dextra Sistemas
Campinas
Insigne Free Software do Brasil Campinas
4 4 4
Rua Antônio Paioli, 320 – Pq. das Universidades – CEP: 13086-045 19 3256-6722
www.dextra.com.br
4
4 4
Av. Andrades Neves, 1579 – Castelo – CEP: 13070-001
www.insignesoftware.com
4
4 4
19 3213-2100
Microcamp
Campinas
Av. Thomaz Alves, 20 – Centro – CEP: 13010-160
19 3236-1915
www.microcamp.com.br
PC2 Consultoria em Software Livre
Carapicuiba
Rua Edeia, 500 - CEP: 06350-080
11 3213-6388
www.pc2consultoria.com
14 3413-1137
Epopéia Informática
Marília
Rua Goiás, 392 – Bairro Cascata – CEP: 17509-140
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
78
4
4 4
4 4
www.epopeia.com.br
4 4 4 4
4 4 4 4
http://www.linuxmagazine.com.br
Linux.local | SERVIÇOS
Empresa
Cidade
Endereço
Telefone
Web
1 2 3 4 5 6
São Paulo (continuação) Async Open Source
São Carlos
Rua Orlando Damiano, 2212 – CEP 13560-450
16 3376-0125
www.async.com.br
4
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
4
2MI Tecnologia e Informação
São Paulo
Rua Franco Alfano, 262 – CEP: 5730-010
11 4203-3937
www.2mi.com.br
4Linux
São Paulo
Rua Teixeira da Silva, 660, 6º andar – CEP: 04002-031
11 2125-4747
www.4linux.com.br
4 4 4
4
4 4
4 4 4 4
A Casa do Linux
São Paulo
Al. Jaú, 490 – Jd. Paulista – CEP: 01420-000
11 3549-5151
www.acasadolinux.com.br
4
4 4
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
4
4 4
ACR Informática
São Paulo
Rua Lincoln de Albuquerque, 65 – Perdizes – CEP: 05004-010
11 3873-1515
www.acrinformatica.com.br
4
4
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
4 4
4
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
4
4
4 4
AS2M -WPC Consultoria
São Paulo
Rua Três Rios, 131, Cj. 61A – Bom Retiro – CEP: 01123-001
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
4
4 4
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
4 4 4
4 4
4
4 4
Bull Ltda
São Paulo
Av. Angélica, 903 – CEP: 01227-901
11 3824-4700
www.bull.com
4
4
4 4
Commlogik do Brasil Ltda.
São Paulo
Av. das Nações Unidas, 13.797, Bloco II, 6º andar – Morumbi – CEP: 04794-000
11 5503-1011
www.commlogik.com.br
4 4 4
4 4
Computer Consulting Projeto e Consultoria Ltda.
São Paulo
Rua Caramuru, 417, Cj. 23 – Saúde – CEP: 04138-001
11 5071-7988
www.computerconsulting.com.br
4
4 4
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
11 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
4
4 4 4 4 4
4 4 4
4
4
4
4 4
4
4 4
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
4
4 4 4 4
IBM Brasil Ltda.
São Paulo
Rua Tutóia, 1157 – CEP: 04007-900
0800-7074 837
www.br.ibm.com
4
4
4 4
iFractal
São Paulo
Rua Fiação da Saúde, 145, Conj. 66 – Saúde – CEP: 04144-020
11 5078-6618
www.ifractal.com.br
4
4 4
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
4 4 4 4
Itautec S.A.
São Paulo
Av. Paulista, 2028 – CEP: 01310-200
11 3543-5543
www.itautec.com.br
Kenos Consultoria
São Paulo
Av: Fagundes Filho, 134, Conj 53 – CEP: 04304-000
11 40821305
www.kenos.com.br
Konsultex Informatica
São Paulo
Av. Dr. Guilherme Dumont Villares, 1410 6 andar, CEP: 05640-003
11 3773-9009
www.konsultex.com.br
São Paulo
Av. Dr. Lino de Moraes Leme, 185 – CEP: 04360-001
11 5034-4191
www.komputer.com.br
4 4
Linux Mall
São Paulo
Rua Machado Bittencourt, 190, Cj. 2087 – CEP: 04044-001
11 5087-9441
www.linuxmall.com.br
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
Locaweb
São Paulo
Av. Pres. Juscelino Kubitschek, 1.830 – Torre 4 Vila Nova Conceição – CEP: 04543-900
11 3544-0500
www.locaweb.com.br
Novatec Editora Ltda.
São Paulo
Rua Luis Antonio dos Santos, 110 – Santana – CEP: 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
Red Hat Brasil
São Paulo
Av. Brigadeiro Faria Lima, 3900, Cj 81 8º andar Itaim Bibi – CEP: 04538-132
11 3529-6000
4 4 4 4
Linux Komputer Informática Livraria Tempo Real
4
4
4 4
4
4 4 4 4 4 4 4
4
4 4 4
4 4
4 4 4 4 4
4 4 4 4
4
4
4
www.e-provider.com.br
4
4 4
www.redhat.com.br
4
4 4
Samurai Projetos Especiais
São Paulo
Rua Barão do Triunfo, 550, 6º andar – CEP: 04602-002
11 5097-3014
www.samurai.com.br
4
4 4
SAP Brasil
São Paulo
Av. das Nações Unidas, 11.541, 16º andar – CEP: 04578-000
11 5503-2400
www.sap.com.br
4
4 4
Savant Tecnologia
São Paulo
Av. Brig. Luis Antonio, 2344 cj 13 – Jd. Paulista – CEP:01402-000
11 2925-8724
www.savant.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
R. Alexandre Dumas 1658 – 6º, 7º e 8º andares – Chácara Santo Antônio – CEP: 04717-004
11 3305-7000
www.unisys.com.br
4 4 4
4 4
4
4 4
4 4
4 4
4
4 4
4
4
4 4
4
4 4
4
4 4
4
4 4
4 4
4
Utah
São Paulo
Av. Paulista, 925, 13º andar – Cerqueira César – CEP: 01311-916
11 3145-5888
www.utah.com.br
4
4 4
Visuelles
São Paulo
Rua Eng. Domicio Diele Pacheco e Silva, 585 – Interlagos – CEP: 04455-310
11 5614-1010
www.visuelles.com.br
4
4 4
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
4
4
4
4
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
4
Systech
Taquaritinga
Rua São José, 1126 – Centro – Caixa Postal 71 – CEP: 15.900-000
16 3252-7308
www.systech-ltd.com.br
4 4
Linux Magazine #61 | Dezembro de 2009
4 4
79
Calendário de eventos
Índice de anunciantes
Evento
Data
Local
Informações
Conisli 2009
4 e 5 de dezembro
São Paulo, SP
www.conisli.org.br
Empresa
Pág.
SERVIÇOS
Senac
Java Enterprise Day
II Encontro Nacional das Comunidades Interlegis
Sun Tech Days 2009
GOPHP Conference 2009
5 de dezembro
7 a 9 de dezembro
8 a 9 de dezembro
12 de dezembro
Goiânia, GO
Brasília, DF
São Paulo, SP
Goiânia, GO
www.javaeeday.com.br
http://colab.interlegis.gov.br/ wiki/IIEncontroGitec
www.developers.sun.com/ events/techdays
www.gophp.com.br/conf
2, 3 5
ISC2 Microsoft
9
Itautec
11
Plus server
13
Rede Host
15
UOL Host
17
Rittal
21
Watchguard
23
LPI
27
Plaza Hotéis
33
Vectory
43
Clube do Hacker
71
Bull
83
Locaweb
84
Nerdson – Os quadrinhos mensais da Linux Magazine
80
http://www.linuxmagazine.com.br
PREVIEW
Na Linux Magazine #62 DESTAQUE
REDES
Windows 7: o que muda para o Linux?
Servidor web leve e seguro
O Windows 7 está aí, e você, na sua rede mista, já está começando a se preparar para enfrentar todas as mudanças e dores de cabeça que certamente virão. A Linux Magazine 62 vai apresentar as mudanças trazidas pela nova versão do sistema da Microsoft nas áreas mais importantes da interoperabilidade: autenticação, diretórios, virtualização, VPNs e Samba. De posse dessas informações, bastarão algumas alterações nos arquivos e procedimentos já usados em todas as redes para adequar as estações e servidores à chegada do novo Windows. n
Continuando nossa demonstração de servidores web alternativos, apresentaremos na Linux Magazine 62 o Hiawatha, um servidor que ocupa apenas 600 KB e tem foco em segurança e velocidade. Com configuração simplificada – realizada inteiramente em um único arquivo de configuração –, o Hiawatha prefere conexões SSL e é repleto de recursos. Será a hora de aposentar o Apache? n
Na EasyLinux #17 Novo Ubuntu
O Ubuntu 9.10 promete trazer importantes novidades no campo da computação em nuvem. A própria escolha do codinome desta versão, Karmic Koala, faz alusão às nuvens, segundo Mark Shuttleworth: “o coala vive com a cabeça nas nuvens”. Será que a próxima versão da distribuição GNU/Linux mais amigável do planeta vai conseguir levar os benefícios da computação em nuvem para todos os seus usuários? Mas as novidades certamente não param por aí. Desde o sistema de arquivos até o gerenciador de inicialização, passando pelo ambiente Gnome e até seu programa de mensagens instantâneas, o Ubuntu está trazendo importantes mudanças e novidades para tornar a experiência de seus usuários cada vez mais prática e agradável em frente a esse sistema livre. A próxima edição da Easy Linux vai trazer uma extensa análise do Ubuntu 9.10, mostrando em detalhes os novos recursos do sistema e como eles podem facilitar a sua vida. n
82
Duelo dos navegadores As ofertas aos navegantes jamais foram tão numerosas e diversas. O GNU/ Linux atualmente dispõe de mais de uma dezena de navegadores web, todos com um bom número de usuários. A Easy Linux 17 vai fazer um comparativo entre os principais navegadores disponíveis no Ubuntu, de forma que você possa escolher o mais veloz, mais competente e, evidentemente, mais elegante para compor a sua área de trabalho. n
http://www.linuxmagazine.com.br