linux magazine community edition 97

30

Upload: nguyentram

Post on 14-Feb-2017

264 views

Category:

Documents


6 download

TRANSCRIPT

3Linux Magazine #97 | Dezembro de 2012

ED

ITO

RIA

L

Atendendo a uma solicitação da bancada dos eleitores livres (Freie Wähler) de sua câmara municipal, a cidade de Munique divulgou que a migra-ção para Linux realizada no âmbito do projeto LiMux poupou a baga-tela de (mais de) 10 milhões de euros aos cofres do município desde sua implantação (cerca de R$ 28 milhões, no fechamento desta edição da Linux Magazine). Isso para uma solução que compreende nada menos que as 11.700 estações de trabalho dos funcionários da administração pú-blica daquela cidade alemã, agora equipadas com uma distribuição Linux desenvolvida especifi camente para essa fi nalidade, com os aplicativos de costume (pacote de aplicativos para escritório, navegador, leitor de e-mails etc.) e outros mimos especiais (como os criados pelo projeto WollMux, que incrementam a versão do OpenOffi ce utilizada pelos funcionários da administração pública da cidade), além de outros 15.000 desktops que ainda usam um sistema operacional proprietário (legado), mas foram equipados com o pacote de aplicativos para escritório de código aberto. A comparação foi realizada usando como base a instalação de sistemas operacionais e do pacote de aplicativos para escritório proprietários da Microsoft, mais especifi camente o Windows 7 e o MS Offi ce 2010.

Não iremos entrar em mais detalhes sobre o relatório publicado pela cidade de Munique neste espaço, já que os números publicados no pará-grafo acima são contundentes o sufi ciente. Nossa intenção nessas breves linhas é muito mais discorrer sobre as possibilidades de economia em geral que pode ser obtida no âmbito de um projeto como o menciona-do acima, tanto em empresas quanto na administração pública. Todo profi ssional de tecnologia já sabe que o Linux e as soluções de código aberto se tornaram o padrão “de facto” do lado do servidor e em dispo-sitivos móveis. O último rincão a ser dominado é o PC propriamente dito. Em alguns segmentos, como o de soluções para frente de caixa de estabelecimentos comerciais, por exemplo, atualmente só me surpre-endo quando vejo qualquer outro sistema que NÃO seja o do pinguim. C&A, Casas Bahia, Lojas Renner, Pão de Açúcar, Carrefour, Walmart, Ponto Frio, Ri Happy, Droga Raia etc., e até a vendinha de doces aqui no centro de São Paulo (que usa um sistema Arius Loja, para Linux), todos já embarcaram na onda da tecnologia de código aberto para economizar e tornar seus sistemas mais estáveis, usando soluções mais competitivas. O Banco do Brasil vai muito bem, obrigado, com seus mais de 200.000 desktops Linux em agências em todas as cidades do país e uma econo-mia estimada de cerca de 100 milhões de reais obtida até o fi nal de 2011.

A Apple já mostrou ao usuário comum que um PC não precisa de Windows para funcionar. Agora que a Microsoft lançou o Windows 8 com uma interface diferente, o Linux no desktop tem nova oportu-nidade para mostrar a que veio. Além da cara nova, o sistema da Mi-crosoft é mais caro que o antecessor e vai demandar aprendizado (e treinamento, dependendo do caso). Que tal aproveitar o momento e dar chance para o novo? O porteiro aqui do prédio da editora migrou e não poderia estar mais feliz... ■

Rafael Peregrino da SilvaDiretor de Redação

Show do milhão (de €)Expediente editorialDiretor Geral Rafael Peregrino da Silva

[email protected]

Editores Flávia Jobstraibizer

[email protected]

Laura Loenert Lopes

[email protected]

Editora de Arte Larissa Lima Zanini

[email protected]

ColaboradoresAlexander Spier, Alexandre Borges, Augusto Campos,

Cezar Taurion, Charly Kühnast, Jon ‘maddog’ Hall, Gilberto

Magalhães, Hannes A. Czerulla, Karsten Günther, Klaus

Knopper, Kurt Seifried, Mirko Dölle, Oliver Frommel,

Thorsten Leemhuis, Tim Schürmann, Zack Brown.

Tradução Laura Loenert Lopes, Sebastião Luiz da

Silva Guerra, Emerson Satomi

Revisão Ana Carolina Hunger.

Editores internacionais Uli Bantle, Andreas Bohle, Jens-Christoph Brendel,

Hans-Georg Eßer, Markus Feilner, Oliver Frommel,

Marcel Hilzinger, Mathias Huber, Anika Kehrer,

Kristian Kißling, Jan Kleinert, Daniel Kottmair,

Thomas Leichtenstern, Jörg Luther, Nils Magnus.

Anúncios: Rafael Peregrino da Silva (Brasil)

[email protected]

Tel.: +55 (0)11 3675-2600

Penny Wilby (Reino Unido e Irlanda)

[email protected]

Amy Phalen (América do Norte)

[email protected]

Hubert Wiest (Outros países)

[email protected]

Diretor de operações Claudio Bazzoli

[email protected]

Na Internet: www.linuxmagazine.com.br – Brasil

www.linux-magazin.de – Alemanha

www.linux-magazine.com – Portal Mundial

www.linuxmagazine.com.au – Austrália

www.linux-magazine.es – Espanha

www.linux-magazine.pl – Polônia

www.linux-magazine.co.uk – Reino Unido

www.linuxpromagazine.com – América do Norte

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

me-se que qualquer correspondência recebida, tal como car-

tas, emails, faxes, fotografi as, artigos e desenhos, sejam for-

necidos para publicação ou licenciamento a terceiros de forma

mundial não-exclusiva pela Linux New Media do Brasil, a me-

nos que explicitamente indicado.

Linux é uma marca registrada de Linus Torvalds.

Linux Magazine é publicada mensalmente por:

Linux New Media do Brasil Editora Ltda.

Rua São Bento, 500

Conj. 802 – Sé

01010-001 – São Paulo – SP – Brasil

Tel.: +55 (0)11 3675-2600

Direitos Autorais e Marcas Registradas © 2004 - 2012:

Linux New Media do Brasil Editora Ltda.

Impressão e Acabamento: Log & Print Gráfi ca e Logística S.A.

Atendimento Assinante

www.linuxnewmedia.com.br/atendimento

São Paulo: +55 (0)11 3675-2600

Rio de Janeiro: +55 (0)21 3512 0888

Belo Horizonte: +55 (0)31 3516 1280

ISSN 1806-9428 Impresso no Brasil

4 www.linuxmagazine.com.br

CAPA

A era dos portáteis 33

Vivemos uma era onde toda a nossa vida cabe na palma de nossas mãos, em dispositivos cada vez menores. O que o futuro nos reserva?

Super ultrabooks 34

Testamos alguns dos mais populares e robustos ultrabooks presentes no mercado brasileiro, para todos os gostos (e bolsos). Faça a escolha certa!

Pinguim para viagem 40

O Linux pode ser instalado em qualquer ultrabook ou notebook – mas alguns processadores destinados a dispositivos móveis têm seu desempenho prejudicado pelo sistema de código aberto. Muitos desses problemas podem ser evitados desde o começo, caso os que procuram por laptops para executar Linux não se deixem enganar pelas primeiras promoções que vêem pela frente.

Populares e acessíveis 46

Nem todo mundo precisa de um telefone top de linha com processador quad-core e uma gigantesca tela. É perfeitamente possível navegar na Internet, jogar e usar inúmeros aplicativos em smartphones mais simples.

O melhor smartphone do mundo 54

Eleito em 2012 como um dos melhores smartphones do mundo, o substituto do Galaxy SII surpreende por sua aparente simplicidade e seus inúmeros recursos inovadores.

ÍND

ICE

5

ANDROIDCentral multimidia para Android 63

As caixas de som para dispositivos móveis da Philips possuem um bom hardware e conexão fl exível para uma variedade de dispositivos que executam Android.

ANÁLISEUtilitário de disco hdparm 58

Usamos o hdparm para ajustar o disco rígido ou drive de DVD , mas com esta ferramenta também podemos defi nir e obter parâmetros diversos, e até mesmo apagar SSDs de forma segura.

PROGRAMAÇÃOSem exageros 74

Projetada para a programação de sistema, a linguagem Go, criada pelo Google, faz o trabalho sem grandes sofi sticações. Uma boa opção para quem é alérgico a exageros.

SERVIÇOSEditorial 03Emails 06Linux.local 78Preview 82

Linux Magazine #97 | Dezembro de 2012

| ÍNDICELinux Magazine 97

COLUNASKlaus Knopper 08

Charly Kühnast 10

Augusto Campos 12

Alexandre Borges 14

Kurt Seifried 16

Zack Brown 20

NOTÍCIASGeral 22

➧ Rootkit infecta servidores Linux

➧ CyanogenMod 10 oferece atualizações “pelo ar”

➧ Lançado o ROSA Enterprise Linux Server 2012

➧ Linguagem de programação Go completa 3 anos

CORPORATENotícias 24

➧ Pioneiro do antivírus, John McAfee é procurado por assassinato

➧ HP investe em Linux e torna-se membro da Linux Foundation

➧ Linux Foundation luta por assinatura do Microsoft Secure Boot

➧ Steven Sinofsky, líder do Windows, deixa a Microsoft

Entrevista com Dov Bigio 26

Coluna: Jon “maddog” Hall 28

Coluna: Cezar Taurion 30

Coluna: Gilberto Magalhães 32

TUTORIALMapeamento rápido 66

Precisa de uma ferramenta para fazer pequenas modifi cações no OpenStreetMap? O Potlatch 2 é uma escolha efi ciente como editor rápido e é fácil de usar.

Operação fi ta de video 71

Evite perder preciosas lembranças e aprenda a digitalizar gravações antigas de video, armazenando-as de forma digital.

12

CO

LU

NA

www.linuxmagazine.com.br

Coluna do Augusto

Linus Torvalds e matrioskas

Qual a relevância de questionarmos a opinião alheia?

Matrioskas são aquelas bonequinhas tipicamente russas, que vêm uma dentro da outra, den-tro da outra, dentro da outra. E às vezes as

discussões sobre a relevância de determinados assuntos lembram bastante um conjunto de matrioskas.

Linus Torvalds, como sabemos, é uma pessoa de opiniões fortes e que não escolhe as palavras – e ges-tos, como fi cou evidente em uma recente manifestação pública dele sobre a qualidade do suporte da Nvidia ao Linux – na hora de manifestá-las.

Um dos temas que ele costuma comentar com algu-ma frequência é o estado dos ambientes gráfi cos dispo-níveis para Linux, sem poupar as críticas que nascem exatamente de onde uma crítica feita por um usuário devem nascer: da comparação entre a sua experiência de uso e as suas expectativas.

Linus costuma ter bastante críticas a fazer ao KDE e ao GNOME , entre os quais ele se alterna, às vezes com um estágio em outro ambiente no meio do caminho. Nos últimos 2 meses ele veio a público (em uma palestra gra-vada em vídeo, e em sua página em um serviço online) dizer que estava usando ou experimentando ambos, e em uma das ocasiões desfi ou o costumeiro rosário de críticas.

Não é preciso ter uma licença especial para criti-car: todo usuário pode fazê-lo, e muitas vezes a crítica, quando bem colocada, ajuda a produzir avanço. Mas a posição que Linus ocupa frequentemente faz suas críticas ganharem destaque maior do que o seu con-teúdo objetivo poderia merecer, especialmente quan-do se baseiam (corretamente, aliás) no que o usuário em questão prefere, e não em algum critério externo, padrão ou outro aspecto publicamente reconhecido.

Faz parte do jogo e, francamente, embora quase sempre me interesse saber o que Torvalds pensa sobre qualquer soft-ware, custo a acreditar que alguém no mundo use a opinião torvaldiana como critério de escolha de ambientes gráfi cos.

Mas ao longo da última rodada de críticas, tivemos um fator a mais: Aaron Seigo, líder de um dos projetos de ambiente gráfi co mencionados, escreveu um longo artigo sobre a importância de por um fi m aos “cultos de personalidade no software livre”, referindo-se à re-levância atribuída ao que Linus acha ou deixa de achar sobre qualquer software, e sobre estar enjoado da inefi -ciência e auto-destrutividade que percebe no software livre devido a divisões internas.

Particularmente acredito que Aaron Seigo (também uma personalidade do software livre) tem tanto direito de criticar a relevância dada às opiniões de Linus Tor-valds, quanto o próprio Linus tem de expor as suas po-sições sobre os softwares que usa. São opiniões, e cabe a cada um decidir se as ouve ou não.

Mas ao ler a peça, não pude deixar de dar um pas-so para fora do círculo e me perguntar: e qual seria a relevância de uma pessoa como o Seigo questionar a relevância atribuída ao que Linus Torvalds diz?

É o terceiro nível da Matroska, como se vê. E agora você, caro leitor, tem em mãos o poder de dar mais um passo para fora do círculo e acrescentar o quarto nível, questionando qual a relevância do Augusto questionar a relevância do Seigo questionar a relevância do Torvalds gostar ou não de determinado software.

E a resposta, para todos, é: a relevância é dada por quem lê, e às vezes é amplifi cada até mesmo pelas crí-ticas feitas ao longo do processo. Exatamente como deveria ser! Augusto Campos. *Augusto César Cam-pos* é administrador de TI e, desde 1996, mantém o site BR-linux.org, que cobre a cena do Software Livre no Brasil e no mundo. ■

Augusto César Campos é administrador de TI e, desde 1996, man-

tém o site BR-linux.org, que cobre a cena do Software Livre no Brasil

e no mundo.

Agora você tem muitomais liberdade para escolher o visual da Webstore.

Se você é desenvolvedor, agora pode

editar o CSS da Webstore Locaweb

e oferecer lojas muito mais personalizadas

para seus clientes.

Locaweb.com.br/Webstore

kwarup

.com

14

CO

LU

NA

www.linuxmagazine.com.br

Coluna do Alexandre Borges

NMAP -quinta parte Avance em seus conhecimentos sobre a

poderosa ferramenta NMAP .

Nas últimas colunas examinamos as opções mais conhecidas de escaneamento usando a ferra-menta NMA e agora exploraremos outras al-

ternativas interessantes que podem, em determinadas situações e ambientes, nos auxiliar para o reconheci-mento de um potencial alvo de ataque.

De início, a primeira e mais óbvia opção é a do esca-neamento do tipo TCP connect . Caso o leitor execute o comando como root , deve especifi car os fl ags -sT como no exemplo abaixo:

# nmap -sT 192.168.1.1

Infelizmente este modo de escaneamento apresen-ta dois problemas graves: primeiro, estabelece uma conexão com o alvo realizando completamente o three-handshake e somente envia um pacote com o fl ag de reset (RST) depois da conexão, tornando assim muito simples a tarefa de detecção da operação por um IDS. Segundo (e pior) esta maneira de usar o NMAP é muito lenta e, com um grande número de máquinas, pode tor-nar a operação inviável. Então, quando o TCP scan deve

ser usado? De maneira resumida, ou quando o usuário executa o NMAP como usuário regular (sem privilégios) pois neste caso a opção -sT é padrão ou ainda tenho vis-to em alguns escaneamento de máquinas usando IPv6.

Outra alternativa que o leitor pode usar é realizar um escaneamento com o protocolo UDP pois, afi nal, existem muitos serviços (como DNS e SNMP) que são executados sobre este protocolo. O comando mais sim-ples para usar este método é:

# nmap -sU 192.168.1.1

Como pode-se perceber, não há difi culdade na exe-cução do comando, entretanto há uma série de deta-lhes que devem ser examinados antes de prosseguirmos:

➧ O processo de escaneamento é lento com UDP➧ O header UDP enviado é vazio, ou seja, isto pode

alertar um IDS ou ainda ser descartado por ser con-siderado inválido por muitos aplicativos

➧ O status das respostas são:➧ Qualquer resposta (o que pode ser raro em serviços

UDP) signifi ca porta aberta➧ Nenhuma resposta: aberto ou fi ltrado (fi rewall)➧ Resposta com pacote ICMP tipo 3/code3 ( port

unreachable ): porta fechada➧ Qualquer outro pacote ICMP do tipo 3: porta fi l-

trada (fi rewall) O leitor já pode perceber que a análise tende a

fi car bastante complicada pois parece que, quase sempre, as portas estão inacessíveis quando traba-lhando com o escaneamento UDP. Inobstante isso, é impressionante como muitas portas apresentam o status open/fi ltered justamente pelo fato que mencio-nei acima: como em muitas ocasiões, o pacote UDP com cabeçalho vazio é considerado inválido, nada é respondido e esta ausência de resposta nos retorna um status open/fi ltered. Talvez uma saída para tentar distinguir o status open do status fi ltered seja acres-

Listagem 1: Resultado do comando nmap 01 Starting Nmap 5.21 ( http://nmap.org ) at 2012-11-12 04:11 BRST

02 Nmap scan report for 192.168.1.103 Host is up, received arp-response (0.0079s latency).

04 Not shown: 195 closed ports05 Reason: 195 port-unreaches06 PORT STATE SERVICE REASON07 53/udp open|filtered domain no-response08 67/udp open|filtered dhcps no-response09 137/udp open|filtered netbios-ns no-response10 1900/udp open|filtered upnp no-response11 5355/udp open|filtered unknown no-response12 MAC Address: 1C:7E:E5:FE:99:B0 (Unknown) 13 Nmap done: 1 IP address (1 host up) scanned in 212.71 seconds

15Linux Magazine #XX | Mês de 200X

centar a opção -A ou ainda -V , todavia já alerto que isto nem sempre funciona como o esperado e, pior, deixa o processo muito mais lento:

# nmap -sUA 192.168.1.1# nmap -sUV 192.168.1.1

Só que os problemas ainda não terminaram pois, como afi rmei antes, o escaneamento com UDP é len-to. E por quê? Como explicitado, com serviços UDP há uma grande chance de não recebermos resposta quando usamos o NMAP e isto sempre levará o mesmo a fazer retransmissões pois ele acredita que o pacote se perdeu e o reenvia novamente, atrasando muito o escaneamento. A própria opção -A ou -V sugerida no último exemplo representa um transtorno que pode ser atenuado com:

# nmap -sUV --version-intensity 0 192.168.1.1

A opção --version-intensity 0 força o NMAP a fazer uso apenas dos métodos mais certeiros na tentativa de avaliar a versão dos serviços na máquina alvo. Outro alívio à lentidão pode ser fornecido explicitando a opção -F , que apenas realiza o escaneamento das 100 portas mais importantes; outra opção ainda é dizer ao NMAP por quanto tempo estamos dispostos a esperar o escane-amento de cada máquina com a opção --host-timeout (tempo dado em milisegundos). Vejamos:

# nmap -sUV -F --host-timeout 600000 192.168.1.1-5

Ou ainda uma combinação das últimas sugestões:

# nmap -sUV -F --version-intensity 0 --host-timeout 600000 192.168.1.1-5

Neste exemplo, para o escopo de máquinas partindo de 192.168.1.1 e indo até 192.168.1.5, o tempo limite de escanea-mento em cada uma é de 10 minutos e estamos interessados em apenas buscar o status das 100 portas mais comuns. Se o leitor quiser as 300 portas mais comuns, aí ele poderá fazer:

# nmap -sUV --top-ports 300 192.168.1

Para concluir, como grande parte do dilema até aqui é saber exatamente qual tipo de resposta recebemos da má-quina alvo e, com isto, tentar aferir qual o real status de suas portas, existe uma opção muito interessante no NMAP que pode ser usada em qualquer escaneamento, que é a --reason ; como o nome diz, ela traz para cada porta o motivo do status:

# nmap -sU --reason --port-ports 200 192.168.1.1

Alexandre Borges ([email protected]) é instrutor independente e ministra

regularmente treinamentos de tecnologia Oracle (áreas de Solaris, LDAP, Clus-

ter, Containers/OracleVM, MySQL, e Hardware), Symantec (Netbackup, Veritas

Cluster,Backup Exec, Storage Foundation e SEP) e EC-Council (CEH e CHFI), além

de estar sempre envolvido com assuntos relacionados ao kernel Linux.

33

| SEÇÃOMatéria

Linux Magazine #XX | Mês de 200X

SE

ÇÃ

O

Ultrabooks e Smartphones

A era dos portáteis Vivemos uma era onde toda a nossa vida cabe na palma de nossas

mãos, em dispositivos cada vez menores. O que o futuro nos reserva?

por Flávia Jobstraibizer

Atualmente nossa vida cabe na palma de nossas mãos, em dispositivos cada vez menores e que nos auxiliam em quase todas as tarefas do dia a dia. Não

é de se estranhar que a nova geração Z (indivíduos nasci-dos a partir dos anos 2001 até os dias de hoje) tenham tido pouco contato com papel em espécie. São adolescentes e crianças que já conhecem fotografi as em formato digital, lêem e-books e usam tablets, já tem e-mail e perfi s em redes sociais e levam seus celulares para a escola.

Estas novas gerações e as que estão por vir, serão as gerações que revolucionarão o mercado digital e da computação, assim que como as gerações que as an-tecederam e as atuais gerações que dedicam suas vidas à inovações e descobertas para o futuro.

Mais avançados ainda estão se tornando os disposi-tivos que utilizamos atualmente. Cada vez menores, mais leves, mais fi nos e mais bonitos, smartphones e ultrabooks atualmente servem para tudo: trabalhar, jogar jogos, navegar na Internet, conectar-nos com o mundo, fazer ligações, ler livros, tirar e armazenar fotografi as e videos e muitos outros usos. Raras são as pessoas que possuem um telefone celular que não tire fotos ou não reproduza músicas. Mais raras ainda são as pessoas que possuem um notebook ou ultrabook e que não os utilize para assistir videos provenientes de sites de streaming online ou mesmo reproduzir uma seleção de fi lmes durante uma viagem.

Nesta edição da Linux Magazine , trouxemos os mais modernos equipamentos do mercado e os campeões nos

quesitos usabilidade, recursos e, claro, preços acessíveis. Você vai conhecer alguns dos dispositivos mais famosoos do mercado, como o novíssimo smartphone Samsung Galaxy S III e os motivos pelos quais este aparelho faz tanto sucesso. Trazemos ainda um comparativo entre os smartphones mais vendidos do mercado e suas rela-ções custo-benefício para auxiliá-lo na melhor escolha.

No quesito ultrabooks, testamos alguns dos modelos mais populares do mercado brasileiro e os elencamos por ordem de preço, pois além de possuir os recursos de que você precisa, o equipamento precisa caber no seu bolso.

Fizemos ainda uma análise dos ultrabooks e note-books disponíveis no mercado e seu funcionamento com Linux. Saiba como evitar dores de cabeça no momento da compra do seu equipamento e como so-lucionar pequenos problemas de incompatibilidade.

Esta edição está imperdível e esperamos que você faça bom uso das informações a seguir!

Boa leitura! ■

har, om nar o astire são

ok es de

uma

mais nos

faça bom uso das informações a seguir! Boa leitura! ■

Matérias de capaSuper ultrabooks 34

Pinguim para viagem 40

Populares e acessíveis 46

O melhor smartphone do mundo 54

58 www.linuxmagazine.com.br

ANÁLISE | Utilitário de disco hdparm

Utilitário hdparm

Utilitário de disco hdparm Usamos o hdparm para ajustar o disco rígido ou drive de DVD , mas

com esta ferramenta também podemos defi nir e obter parâmetros

diversos, e até mesmo apagar discos SSD de forma segura.

por Tim Schürmann

Em 2005, o canadense Mark Lord desenvolveu o peque-no utilitário hdparm [1] para

testar drivers Linux para discos rígi-dos IDE. Desde então, o programa tornou-se uma ferramenta valiosa para o diagnóstico e ajuste de discos rígidos. Por exemplo, ele testa a velo-cidade de discos rígidos e discos de estado sólido, coloca os dispositivos em suspensão e ativa ou desativa o modo de economia de energia. Com equipamentos modernos, o hdparm pode ativar o modo acústico e limpar unidades de estado sólido ( solid-state drive ou SSDs). Antes das primeiras

experiências com o hdparm, é impor-tante ler sobre questões relacionadas à segurança no quadro 1 .

Necessidade de comunicação Todas as distribuições razoavelmente novas já incluem o hdparm na insta-lação básica. Só é preciso abrir um terminal e digitar o comando:

hdparm -I /dev/sda | more

como administrador ( fi gura 1 ). A ferramenta fornecerá todos os dados disponíveis sobre a unidade escolhida

– neste caso, o primeiro disco rígido sda . A opção | more garante que a grande quantidade de informação não seja mostrada na tela do termi-nal sem que possa ser lida.

O hdparm aceita qualquer dispo-sitivo de armazenamento em massa que esteja conectado a uma interface (E)IDE, SATA ou SAS, incluindo drives, DVD e SSDs. Adaptado-res USB-IDE muitas vezes causam problemas por não transmitirem co-mandos ATA (completos) ou ATAPI para a unidade. A informação que o hdparm proporciona é dependen-te do dispositivo. A designação e o número da versão do fi rmware são sempre listados no topo logo abaixo de Model Number (número do mo-delo) e Firmware Revision (revisão de fi rmware). Proprietários de um SSD em sua maioria podem descobrir rapidamente se estão executando a versão atual do fi rmware.

Em novos discos rígidos, o usuário deve verifi car se o Native Command

Quadro 1: Atenção! O hdparm manipula uma unidade diretamente, é por isto que sua utilização

pode facilmente conduzir a uma perda de dados e, no pior dos casos, a um

defeito no dispositivo. Além disso, a documentação do programa pontua que

muitos de seus recursos são experimentais ou perigosos. Portanto, antes de

trabalhar com o programa, o usuário deve sempre realizar um backup com-

pleto do disco. Além disso, só deverá usar recursos cujas ações compreenda

perfeitamente. O editor e o autor deste artigo não aceitam qualquer respon-

sabilidade por danos ou perda de dados.

AN

ÁLIS

E

59

| ANÁLISEUtilitário de disco hdparm

Linux Magazine #97 | Dezembro de 2012

Queuing (NCQ) (enfi leiramento de comandos internos) pode ser encon-trado em Commands/features . Esta tecnologia torna possível ao disco rí-gido classifi car as consultas a partir do sistema de tal forma que as cabeças tomam o caminho mais curto possível. Os SSDs, por outro lado, distribuem o acesso de escrita de forma mais efi -ciente em blocos de armazenamen-to. Idealmente, isto conduz a um aumento da velocidade. Se o NCQ está desativado, verifi que a BIOS para descobrir se a unidade está funcionan-do em modo AHCI, que também é necessário para outras funções como gerenciamento de energia.

Velocímetro Para determinar o quão rápida uma unidade entrega os dados, utilize o comando :

hdparm -t /dev/sda

Depois de alguns segundos, a taxa de transferência de dados é exibida (em MBps, ou megabytes por segundo). O pequeno programa lê diretamente da unidade por um tempo, indepen-dentemente do sistema de arquivos. A velocidade medida é portanto um pouco mais rápida do que na prática. Para receber um resultado não vicia-do, nenhum outro programa deve ser executado durante a medição, e a memória principal sufi ciente deve estar livre. Repita a medição pelo me-nos três vezes e em seguida calcule o valor médio. Para um modelo atual, o resultado deve atingir pelo menos 80 MBps ( fi gura 2 ).

O kernel Linux coloca os dados obtidos do disco rígido em um bu-ffer. Para determinar a velocidade da unidade sem adornos, utilize o comando :

hdparm -t --direct /dev/sda

O hdparm lê os dados diretamen-te do disco. Os valores medidos as-sim serão um pouco mais lentos do que sem --direct , mas pelo menos

é possível ver a taxa de transmissão pura do disco ( fi gura 3 ).

O hdparm sempre lê os dados a partir do início do dispositivo de ar-mazenamento. Os discos rígidos, no entanto, tendem a entregar dados das áreas exteriores de discos magnéticos um pouco mais lentamente; portanto, o hdparm permite defi nir um offset (a partir da versão 9.29 do software):

hdparm -t --direct --offset 500 /dev/sda

Onde 500 indica o número de gigabytes que iremos pular. Em um disco rígido de 1TB, o comando aci-ma deve, portanto, fornecer dados a partir do meio do disco. Como mostra a fi gura 3 , a velocidade de leitura cai de forma acentuada nas áreas exteriores de um disco rígido.

Todos os testes de velocidade intro-duzidos aqui só fornecem uma primei-ra impressão de possíveis problemas de desempenho. No entanto, para uma referência completa, o usuário

também precisará determinar, por exemplo, a velocidade de gravação.

Mais e mais rápido Algumas propriedades da unidade podem ser alteradas enquanto o dis-positivo estiver em funcionamento; por exemplo, a maioria das unidades permite que o usuário ligue ou desli-gue a gestão de energia. Desta forma, recursos do hdparm que mudam e ativam em um disco rígido podem ser chamadas com :

hdparm -I /dev/sda

e são encontradas em Commands/features ( fi gura 1 ). Todos os recur-sos encontrados lá e marcados com asterisco estão atualmente ativos, e o hdparm pode usar o resto, ou pelo menos ativá-los.

A fi m de acelerar a transmissão de dados, um disco rígido normalmente lê vários setores ao mesmo tempo. Quantos é capaz de entregar ao mes-mo tempo é revelado pelo comando:

Figura 1 O hdparm lista as propriedades de hardware de um disco rígido de

seis anos de idade com capacidade de 320GB.

60 www.linuxmagazine.com.br

ANÁLISE | Utilitário de disco hdparm

hdparm -I /dev/sda

e está listado após R/W multiple sec-tor transfer: Max = . Este valor deve ser também encontrado na mesma linha depois de Current = . Se este não for o caso, podemos aumentar o valor com:

hdparm -m16 /dev/sda

Isto instrui o disco rígido a sempre entregar 16 setores ao mesmo tempo.

Curiosamente, alguns discos rígidos executam mais lentamente com valores mais elevados: a página de manual do hdparm menciona principalmente os discos Caviar mais antigos, da Western Digital. Em tais casos, devemos redu-zir o número de setores novamente ou até mesmo desativar o recurso por completo, o que é feito com:

hdparm -m0 /dev/sda

Além disso, unidades modernas podem obter alguns setores com antecedência (“read ahead”). Para defi nir quantos, utilize a opção -a ( fi gura 4 , no topo) – por exemplo:

hdparm -a256 /dev/sda

Aqui, a unidade lerá de forma an-tecipada os 256 setores mais propen-sos a serem solicitados em seguida. Valores mais elevados acima de tudo aceleram a leitura de arquivos grandes – ao custo, no entanto, de que a leitura dos menores demore mais tempo. A confi guração atual é mostrada com:

hdparm -a /dev/sda

Muitas unidades também possuem um recurso adicional de leitura an-tecipado embutido. Portanto, como regra geral, podemos deixar a confi -guração no valor padrão.

O quão rápidas as consultas do siste-ma operacional chegam à controladora do disco rígido podem ser vistas com:

hdparm -c /dev/sda

O valor deve ser de 32 bits; é possí-vel forçar este valor com a opção -c3 .

À toda velocidade Muitos discos rígidos modernos permitem abrandar o movimento da cabeça, embora isso aumente o tempo de acesso, o que também irá reduzir o nível de ruído. Para saber se o seu disco rígido oferece este “modo acústico”, utilize o comando:

hdparm -M /dev/sda

Se um número aparecer após o sinal de igual, como mostrado na parte de baixo da fi gura 4 , o disco pode ser colocado em um modo silencioso com:

hdparm -M 128 /dev/sda

Para alcançar a velocidade máxi-ma, use o valor máximo:

hdparm -M 254 /dev/sda

Valores entre 128 e 254 são per-mitidos, resultando em uma com-pensação entre o nível de ruído e a velocidade. Aliás, o kernel Linux também deve fornecer suporte ao gerenciamento acústico, o que deve ser o caso de todas as principais dis-tribuições atuais.

Algumas unidades de CD e DVD acabam por ser mais parecidas com turbinas: a rotação de alta velocidade pode difi cultar o aproveitamento de áudio/vídeo. O comando : hdparm -E 4 /dev/sr0

provê um alívio nessa parte. O pa-râmetro 4 determina a velocidade e /dev/sr0 especifi ca a unidade de DVD.

Este exemplo diminui a velocidade de leitura da unidade nove vezes.

Cache de reescrita Com o cache de reescrita, o disco rígido primeiro armazena os dados a serem escritos em um buffer. Des-te modo, ele pode aceitar os dados muito mais rapidamente, o que no fi m leva a uma maior velocidade de gravação. O comando :

hdparm -W /dev/sda

mostra se o cache de reescrita está ativo com um 1 depois do sinal de igual; caso contrário, podemos ativar o recurso com a opção -W1 .

Se o hdparm não permitir esta al-teração, precisaremos ter certeza de que o cache de reescrita foi ativado na BIOS. No entanto, este recurso não é recomendado para todas as si-tuações: no caso de falta de energia, os dados no buffer seriam perdidos de forma permanente.

Se um programa sensível à perda de dados – como um banco de da-dos – está em execução no sistema, devemos desligar o cache de rescrita com a opção -W0 . A documentação do banco de dados PostgreSQL explicita-mente recomenda que isto seja feito.

Cheio de energia Se um disco rígido ou SSD não tem nada a fazer em um certo período de tempo, ele entra automaticamente no modo de suspensão. Este recur-so de economia de energia pode ser

Figura 2 Este disco rígido SATA alcançou uma velocidade média de leitura de

80,48 Mbps.

61

| ANÁLISEUtilitário de disco hdparm

Linux Magazine #97 | Dezembro de 2012

infl uenciado com o parâmetro -B . Dessa forma, utilizar

hdparm -B255 /dev/sda

iria desativar o gerenciamento de energia; no entanto, nem todas as unidades permitem isso.

No lugar de 255 , os valores entre 1 e 254 são permitidos. Um valor mais alto signifi ca que mais energia é uti-lizada, mas também promete maior desempenho ou velocidade. Valores entre 1 e 128 permitem que a unidade seja deligada, enquanto os valores de 129-254 impedem que isto aconteça.

Mais energia pode ser economi-zada com um valor 1 ; a mais elevada taxa de transmissão de dados (de-sempenho de I/O) é obtida com 254 . Podemos verifi car o valor atual com: hdparm -B /dev/sda

O efeito específi co que os diferen-tes valores terão depende do próprio disco. No entanto, devemos ter em mente que muitos desligamentos não são bons para discos rígidos de desktops: cada vez que ele desliga, a unidade deve estacionar as ca-beças, o que aumenta o desgaste. Consequentemente, não devemos despertar o disco rígido a cada dois segundos – o que sempre leva mais do que isso para ser feito.

Podemos defi nir quantos segundos de ociosidade o disco rígido deve es-perar antes de dormir com a opção:

hdparm -S 128 /dev/sda

No entanto, este valor não é só em segundos, mas um número entre 1 e 253. O disco rígido multiplica esse valor

por outro. O valor escolhido no exem-plo, 128 , encontra-se entre 1 e 240, para o qual a unidade utiliza um fator de cinco. Consequentemente, seria desli-gado após 640 segundos de ociosidade.

De 241 para acima, o fator de mul-tiplicação aumenta constantemente. Em 251, o período de espera é au-mentado para 5,5 horas. Em 253, o valor é predefi nido pelo fabricante, usualmente entre 8 e 12 horas. O va-lor 254 é deixado de fora; em 255 , a unidade vai esperar 21 minutos e 15 segundos. Um valor 0 irá desativar o modo de suspensão completamente. Para enviar o disco rígido para sus-pensão imediatamente, digite:

hdparm -y /dev/sda

Com um Y , a unidade entrará em um estado ainda mais profundo de suspensão. Dependendo da unida-de, ela só poderia acordar de uma suspensão profunda após a reinicia-lização de todo o sistema.

Limpeza Os SSDs controlam a localização dos dados alocados neles de forma independente do sistema operacio-nal. Isso pode levar à uma situação curiosa em que um arquivo foi apa-gado, mas o SSD ainda tem a sua antiga localização marcada como ocupada. Para remediar tais confl itos, novas versões do hdparm incluem o script wiper.sh . Digitar :

wiper.sh /dev/sda

determina quais blocos estão sendo usa-dos e quais não estão e reporta isso ao SSD. No entanto, este script deve ser

utilizado com cautela: a documentação adverte explicitamente que os dados podem ser perdidos e desaconselha a utilização com o sistema de arquivos Btrfs. Unidades com ext2/3/4 , Reiser3 , e XFS devem ser montadas em modo somente leitura antes de usar o coman-do wiper . Seria melhor desmontar a unidade completamente ou iniciar o wiper.sh a partir de um sistema Live . Qualquer que seja o caso, o usuário deve fazer um backup do SSD de antemão e usar o script apenas em caso de emergência. Aliás, pelo fato de o wiper ser tão perigoso, algumas distribuições nem mesmo o incluem.

Exclusão segura Para conseguir maiores taxas de trans-ferência e propagar o uso por igual nos chips de armazenamento, os SSDs também reservam algumas áreas de armazenamento (nivelamento de desgaste), de modo que simplesmente formatar um SSD raramente irá apa-gar todo o disco. Por isso a maioria dos SSDs oferecem um recurso cha-mado secure erase (exclusão segura), que faz com que a unidade esvazie todas as células de armazenamento. Isto é especialmente útil se o usuário decidir se desfazer de um SSD usado.

A exclusão segura tem duas ar-madilhas: o hdparm só pode iniciar uma exclusão segura quando a BIOS também permite isso. Além disso, o método é considerado experimental. A documentação adverte explicita-mente sobre o uso do procedimen-to porque, na pior das hipóteses, a exclusão segura poderia tornar o SSD inutilizável por completo. Se quiser usar o recurso de exclusão de qualquer maneira, primeiro solicite a informação de identifi cação com:

hdparm -I /dev/sdb

Em Security , a linha supported: enhanced erase deverá aparecer em algum lugar; caso contrário, o SSD não suportará a exclusão segura. Em seguida, ative o recurso de seguran-

Figura 3 Sem o buffer, a taxa de transmissão cai drasticamente. No meio do

disco rígido de 320GB, mais perdas de velocidade são observadas.

62 www.linuxmagazine.com.br

ANÁLISE | Utilitário de disco hdparm

ça da unidade, (temporariamente) defi nindo uma senha como 123456 :

hdparm --user-master u --security-set-pass 123456 /dev/sdb

Quando solicitarmos as informa-ções de identifi cação novamente, encontraremos a opção enabled em Security . Para apagar o SSD, digite:

hdparm --user-master u --security-erase 123456 /dev/sdb

No processo, o hdparm também remove a senha. Todo o processo leva alguns minutos, dependendo do ta-manho do SSD; durante o mesmo, nenhuma informação é fornecida.

Depois, quando solicitarmos a in-formação de identifi cação, a área em Security deve voltar a parecer como era antes da defi nição da senha.

Relíquias No caso de discos rígidos mais velhos com um conector IDE (também cha-mado de PATA – Parallel ATA), de-vemos observar a linha using_dma na saída de identifi cação. Com a ajuda da tecnologia de acesso direto à memória ( Direct Memory Access ou DMA), o próprio disco rígido deposita dados diretamente na memória principal. Se o fl ag respectivo é 0 (desligado), ele vai abrandar a transferência de dados. Ao longo dos anos, padrões cada vez mais rápidos de DMA foram introduzidos; o mais rápido pode ser ativado com o comando:

hdparm -d1 /dev/hda

No entanto, em alguns sistemas muito antigos, o modo DMA pode causar problemas. Depois de ativá-lo, devemos copiar alguns arquivos de teste grandes para a unidade. Se surgirem problemas ou a unidade falhar, desa-tive o modo DMA novamente com:

hdparm -d0 /dev/hda

Aliás, unidades modernas SATA sempre usam DMA.

Enquanto o disco rígido está trans-ferindo os dados solicitados, o resto do sistema pode concluir outras ta-refas – mas apenas se um on apare-cer depois de unmaskirq na saída de informações de identifi cação.

Podemos forçar este modo com a opção -u1 .

Valores duradouros Depois de reiniciar o sistema, todas as alterações feitas com o hdparm são per-didas. Para ativá-las permanentemente, os respectivos comandos do hdparm devem ser colocados em scripts de ini-cialização. Como isto é feito depende da distribuição que está em execução, mas normalmente a inclusão deve ser feita no arquivo /etc/rc.local .

Sistemas baseados em Debian, por outro lado, leem o arquivo de confi guração /etc/hdparm.conf na inicialização do sistema. Nele há uma seção para cada disco rígido com o seguinte formato:

/dev/sda {...}

Sistemas Linux modernos atri-buem nomes de dispositivos alea-toriamente ( sda , sdb ). Para atribuir as confi gurações do hdparm per-manentemente para uma unidade específi ca, use o UUID específi co:

/dev/ disk/ by-id/ ata-SAMSUNG_ HD103SJ_S246J1RZB00034 { … }

As confi gurações aparecem entre as chaves. Cada parâmetro tem o seu próprio nome. O gerenciamento acústico é defi nido, por exemplo, para o valor 128 com:

acoustic_management = 128

Qual nome pertence a qual parâ-metro do hdparm é revelado pelos comentários no início do arquivo.

Conclusão O hdparm também inclui muitos outros parâmetros que podem ser bas-tante perigosos. Por exemplo, muitos SSDs podem ser protegidos com uma senha, o que pode levar a perda de dados em algumas situações. Não é uma coincidência que a página do manual ( man hdparm ) possua uma ad-vertência sobre esses perigos.

Aliás, o hdparm é apenas uma ferramenta útil entre muitas; por exemplo, o smartmontools também é utilizado para determinar o estado de saúde de um disco rígido [2] . ■

Mais informações [1] hdparm: http://hdparm.

sourceforge.net [2] smartmontools: http://

sourceforge.net/apps/trac/smartmontools/wiki

Gostou do artigo?Queremos ouvir sua opinião.

Fale conosco em

[email protected]

Este artigo no nosso site:

http://lnm.com.br/article/7952

o site

ticle

ne.com.b

52

o?opinião.

Figura 4 Aqui, a leitura antecipada está defi nida para 256, e o gerenciamento

acústico está atualmente desativado.

66 www.linuxmagazine.com.br

TUTORIAL | OpenStreetMap com Potlatch 2

OpenStreetMap com Potlatch 2

Mapeamento rápido

Precisa de uma ferramenta para fazer

pequenas modifi cações no OpenStreetMap?

O Potlatch 2 é uma escolha efi ciente

como editor rápido e é fácil de usar.

por Karsten Günther

O Potlatch 2 (ou simplesmen-te “P2”) é um pequeno edi-tor para o OpenStreetMap .

Quando vemos uma área no OpenS-treetMap [1] e observamos que certos percursos ou pontos de interesse (POIs) estão em falta, não precisamos neces-sariamente executar um editor da liga principal como o Merkaator [2] ou o JOSM [3] . Ao invés disso, podemos fazer alterações diretamente no mapa através do recurso Edit ( fi gura 1 ).

O que o usuário precisa para al-terar os mapas é obter uma conta no OpenStreetMap. Isto é feito ra-pidamente e não requer nada além de um endereço de email. Depois que iniciar o editor [4] , surgirá uma breve introdução ( fi gura 2 ).

Diversas variantes do editor Po-tlatch 2 estão disponíveis, como por exemplo o “riding and hiking map” (mapa de equitação e caminhada) [5] , graças a uma variante persona-lizada. Um recurso útil deste editor são os planos de fundo automáticos ( fi gura 3 ), o que pode ajudá-lo a en-contrar os locais corretos no mapa.

Edição Quando executado, o editor mostra a área exibida anteriormente no mapa. Podemos mudar esta área a qualquer

momento com o botão esquerdo do mouse. Neste caso, certifi que-se de não clicar em quaisquer objetos ou percursos. Esta função logo nos mostra os limites do editor: como uma solução baseada em servidor, ele realmente precisa de uma boa conexão de Internet. Além disso, um processo em execução em outra janela/aba do navegador pode prejudicar o processamento. Podemos usar o scroll do mouse para ajustar a resolução, ou utilizar os dois botões no canto superior esquerdo no mapa.

Se acidentalmente ativarmos um objeto ou criarmos um novo ponto, basta pressionar a tecla [ Esc ] para cancelar a ação. Alterações aciden-

tais também podem ser desfeitas usando tecla [ Z ] (o atalho [ Ctrl ]+[ Z ] também funciona) ou o botão Undo (desfazer). Não há nenhum atalho para Redo (refazer) atualmente, mas pelo menos existe um botão.

Quando clicamos em um percur-so ou objeto, este objeto é ativado; aí então é permitido movê-lo ou editá-lo ( fi gura 4 ). Esta ação fun-ciona para percursos, bem como objetos criados a partir deles, e para os objetos POI inseridos, descritos detalhadamente abaixo.

Percursos existentes podem ser complementados com novos pontos rapidamente. Para fazer isso, clique no

TU

TO

RIA

L

Figura 1 O OpenStreetMap oferece aos usuários uma oportunidade direta de

fazer mudanças ou inclusões, a começar pelo editor Potlatch 2.

67

| TUTORIALOpenStreetMap com Potlatch 2

Linux Magazine #97 | Dezembro de 2012

percurso a qualquer momento. Então, mantenha a tecla [ Shift ] pressionada para criar um waypoint (ponto de pas-sagem) adicional para cada clique do mouse. Podemos ampliar percursos de forma semelhante: depois de ativar o ponto fi nal no percurso, simples cliques do mouse adicionam novos pontos. Apertar [ Esc ], [ Enter ] ou [ Return ] fi naliza esta ação. Para criar uma nova ramifi cação fora de um percurso, pres-sione [ Shift ] e clique em um ponto de passagem que pertença a um caminho existente. Isto funciona para todos os objetos do tipo “caminho” – isto é, para rios, fl orestas (ou suas margens), lagos, e assim por diante.

Selecionar vários objetos também é possível. Para fazer isso, pressione e segure a tecla [ Ctrl ] e clique em todos os objetos desejados. O Potlatch 2 habilita, então, os objetos.

Provavelmente a ação mais im-portante do Potlatch 2 é a habilidade de adicionar novos objetos POI. Um exemplo poderia ser de turbinas de ven-to que foram recentemente colocadas em um parque eólico ou – algo que é útil para os ciclistas e os que fazem caminhadas – abrigos meteorológicos.

Em cada caso, primeiro selecione uma resolução adequada para edi-

Categoria Signifi cado

Compra Lojas e armazéns

Comida e Bebida Restaurantes, lanchonetes, quiosques etc.

Serviço Abrigos, hospitais, cabines telefônicas, creches, etc.

Turismo Locais para turistas, como museus, sítios arqueológicos etc.

Acomodação Hotéis, pousadas, acomodações para pernoite e café da manhã, parques de campings

Transporte Estações ferroviárias, aeroportos, postos de gasolina, estacionamento

Água Açudes, ancoradouros, portos

Barreiras Portões, postes, elevadores, cabines de pedágio

Energia Geração de energia, usinas

Construções Edifícios de tipos diferentes, postos de correios, jardins de infância

Uso do solo Cemitérios, também campos, fl orestas etc. (não foram adequadamente suportados até agora)

Locais (no sentido de

locais de moradia)Cidades, vilas, aldeias etc.

Esporte e Lazer Instalações desportivas, centros esportivos, parques

Feito pelo homem Monumentos feitos pelo homem, tais como torres de rádio, silos, faróis

Atalhos de Teclado Função

Visualização

d(dim) Ofuscar a transparência das

imagens de plano de fundo

t(toggle) Alternar entre entrada de

tag avançada e tag simples

/ ou # Ativar formas sobrepostas, uma após a outra

Pg Up/ Pg Dn Zoom

Setas Mover a visualização do mapa

Edição

p (parallel) Criar formas através de clonagem

r(repeat) Aplicar tags do último

objeto no objeto atual

v (inverse) Inverter o caminho selecionado

w (way) Habilitar caminho

x (split) Ramifi car caminho

y (simplify) Simplifi car automaticamente o caminho

+ (add) tag Dia

- (remove) Exclui o ponto de passagem atual

z (undo) Desfaz uma ação

Delete/ Backspace Remove o ponto de passagem atual

Shift+Delete/ Backspace Remove o ponto de passagem atual

Geral

c Fechar o conjunto de alterações

s Salva

Esc/ Enter Cancela uma ação

Espaço Ajusta o plano de fundo

h Mostra o histórico para o objeto atual

Tabela 1 Categorias no OSM Standard Editor.

Tabela 2 Atalhos de teclado.

68 www.linuxmagazine.com.br

TUTORIAL | OpenStreetMap com Potlatch 2

ção. Clicar em um espaço vazio no mapa diz ao Potlatch 2 para exibir os

objetos POI disponíveis na margem esquerda do mapa ( fi gura 5 ).

Em seguida, podemos “pegar” o objeto com o mouse e arrastá-lo para o mapa para integrar o objeto. Alternativamente, podemos usar o mouse para arrastar um objeto exis-tente para a posição correta.

Objetos e percursos no OpenS-treetMap (OSM) usam “tags” com informação explicativa adicional. Estas tags são divididas em “tags cha-ve” (tipos de objetos) e outras tags para fazer distinções mais fi nas. As tags chave suportadas pelo Potlatch 2 estão listadas online [6] .

Depois de posicionar o objeto POI, o Potlatch 2 muda automaticamente para o modo tag. Se o usuário inserir uma turbina eólica – use Plant (Station) em Power – o editor altera o modo para pedir que seja especifi cado qual tipo de planta será adicionada. O Potlatch 2 suporta duas interfaces nesta parte: o modo básico é mostrado na fi gura 6 . Ini-cialmente, esta é a escolha certa. Pode-mos selecionar Wind em Energy source .

Todas as outras tags são de menor importância e podem ser adicionadas conforme a necessidade – ou para se divertir – com a tecla [ + ]. A wiki [7] mostra quais tags fazem sentido para turbinas eólicas.

A abordagem é semelhante para a adição de um abrigo meteorológico. Abrigos de qualquer tipo são marca-dos como Shelter e estão localizados no grupo Amenity . Abrigos projetados como proteção meteorológica devem ser marcados como Weather Shelter [8] .

Este procedimento também é utilizado para estradas e percursos. Descrever objetos POI e percursos tão precisamente quanto for possível com as tags pode ser de grande be-nefício para usuários do mapa. Por exemplo, pode ser importante para os ciclistas saber se um percurso é ou não pavimentado – ou eventualmen-te reservado para o uso de pedestres.

Podemos também usar a wiki do OSM [9] para encontrar tags apro-priadas. Nem todas as informações digitadas aqui e nem todos os objetos

Figura 4 Clicar em um objeto em um mapa o “habilita” para movimentação e

permite que sejam especifi cadas novas tags ou alteradas as existentes.

Figura 2 Primeiro passos com o Potlatch 2. Uma boa conexão de Internet

e um servidor do OSM que não esteja muito sobrecarregado

são pré-requisitos.

Figura 3 O Potlatch 2 exibe planos de fundo com fotografi a aérea (infelizmen-

te, muitas vezes desatualizada) do Bing. Eles são úteis como um

guia para a edição ou a inclusão de mais objetos.

69

| TUTORIALOpenStreetMap com Potlatch 2

Linux Magazine #97 | Dezembro de 2012

POI inseridos na carta irão realmente para o OpenStreetMap padrão. Mui-tas vezes, os objetos só serão mostra-dos em mapas personalizados, como mapas de equitação e caminhada.

Regras da estrada Para manter o OpenStreetMap con-sistente, existem algumas regras para edição que devemos seguir.

Estruturas lineares, como estradas, percursos e contornos de superfícies devem ser criadas como formas, ao contrário de objetos. Com um sim-ples clique do mouse, podemos iniciar um novo caminho em qualquer área livre do mapa. Cada clique adicional do mouse acrescenta um ponto de passagem; um clique duplo termina a linha. Se o usuário notar caminhos no mapa que não existem fi sicamente, é recomendado removê-los. Selecione o caminho clicando sobre ele e exclua-o pressionando o atalho de teclado [ Shift ] + [ Del ]. A tecla [ X ] permite ramifi car uma forma depois de ter habilitado o ponto de ramifi cação. Para criar per-cursos paralelos facilmente, aperte [ P ] para duplicar o caminho selecionado.

Adicionar tags pode ser muito difícil para os novatos. Mas usar o editor para mapas de equitação e caminhada ( fi gura 7 ) vai facilitar as coisas – caso o leitor consiga ler em alemão – especialmente para pe-quenos percursos que são difíceis de distinguir. Esta ferramenta oferece boas predefi nições que simplifi cam o processo de adicionar tags.

Todas as mudanças feitas com o editor são armazenadas em um “conjunto de alterações”. Esses conjuntos são envia-dos para o servidor do OpenStreetMap quando salvarmos o projeto ou sairmos do editor. Em ambos os casos, o Potla-tch 2 oferece a opção de adicionar uma breve descrição das mudanças – algo como um título para o conjunto de alterações – de preferência em inglês ( fi gura 8 ). Isto só faz com que seja mais fácil para os editores humanos corrigi-rem erros, mas não é algo obrigatório.

O Potlatch 2 oferece ainda mais: o menu History (histórico) leva a um

registro diário, que mostra as últimas alterações no mapa. É possível en-

Figura 5 O Potlatch 2 exibe os objetos POI disponíveis na margem esquerda

da janela. Eles são classifi cados por categorias e organizados em

subgrupos ( tabela 1 ). O botão Show all (mostrar todos) diz ao

Potlatch 2 para exibir todos os objetos existentes em uma categoria.

Figura 6 Objetos POI podem ser classifi cados com mais precisão usando tags.

Figura 7 Os mapas de equitação e caminhada usam uma versão especial

de Potlatch 2, o que torna mais fácil marcar formas pequenas.

Infelizmente, ele só está disponível em alemão.

70 www.linuxmagazine.com.br

TUTORIAL | OpenStreetMap com Potlatch 2

contrar aqui muitas mudanças feitas por processamento automático.

O menu Export (exportar) oferece a opção de usar uma parte do mapa que está sendo visualizada de um modo diferente ( fi gura 9 ). Podemos armazenar os dados do mapa em um formato de dados XML e continuar a editar com programas externos. Também é possível armazenar o pró-prio mapa como um arquivo gráfi co com uma escala ajustável, ou gerar o código para uma página HTML embutida mostrando parte do mapa.

Os quatro menus no canto superior direito permitem personalizar o mapa para atender às necessidades do usuário: Background (planos de fundo) especifi -ca se o Potlatch 2 deve exibir um fundo e, se sim, como fazê-lo. Na maioria dos

casos, a confi guração padrão de imagens aéreas do Bing é uma boa escolha. As opções de Dim (ofuscar) e Sharpen (au-mentar a nitidez) gerenciam os detalhes do plano de fundo. A última opção me-lhora substancialmente a visualização.

O menu Options (opções) inclui um item de menu para alterar a apa-rência do mapa. Normalmente, não precisamos da caixa de ferramentas, e muitas vezes faz sentido escondê-lada visualização. O editor também tem uma série de atalhos de teclado ( tabela 2 ) para várias funções.

Conclusão O Potlatch 2 é o editor do OpenStreet-Map ideal para iniciantes. É fácil de usar e oferece apenas o que este público-alvo precisa. Para usuários mais experientes,

no entanto, as limitações podem supe-rar os benefícios. Além de precisar do Flash Player, ele também requer uma conexão de Internet rápida. De qualquer forma, o programa é adequado apenas para pequenos projetos.

Exibir a imagem do mapa pode ser uma desvantagem – apenas uma pe-quena parte fi caria visível, enquanto o resto estaria ocultado por botões. Lon-gos tempos de carregamento quando é feita movimentação e opções de escala limitada tornam a edição de áreas maiores quase impossível. Mas, para adicionar POIs rapidamente, o Potlatch 2 é incomparável, pois não requer instalação, sendo executável no próprio navegador. ■

Mais informações [1] Site do Potlatch 2: http://

wiki.openstreetmap.org/wiki/Potlatch_2/

[2] Site do Merkaator: http://merkaartor.be/

[3] JOSM: http://josm.openstreetmap.de/

[4] Wiki do editor: http://wiki.openstreetmap.org/wiki/Potlatch_2/

[5] Mapa de equitação

e caminhada (em

alemão): http://www.wanderreitkarte.de/

[6] Tags chave: http://wiki.openstreetmap.org/wiki/Map_Features/

[7] Tags para turbinas de

vento: https://wiki.openstreetmap.org/wiki/Tag:generator:source%3Dwind

[8] Tags para abrigos: https://wiki.openstreetmap.org/wiki/Key:shelter_type

[9] Wiki do OSM: http://wiki.openstreetmap.org/wiki/

Gostou do artigo?Queremos ouvir sua opinião. Fale conosco em [email protected]

Este artigo no nosso site: http://lnm.com.br/article/7773

sso sr/artic

sua om

ne.com

e:777

igo?nião.

Figura 8 O usuário pode adicionar um breve resumo das suas alterações ao

salvar o conjunto delas.

Figura 9 O recurso de exportação possibilita usar diferentes partes do mapa

de formas distintas.

71

| TUTORIALConversão de VHS para DVD

Linux Magazine #97 | Dezembro de 2012

Conversão de VHS para DVD

Operaçãofi ta de video Evite perder preciosas

lembranças e aprenda a

digitalizar gravações antigas

de video, armazenando-as

de forma digital.

por Mirko Dölle

Fitas de video não foram feitas para durar para sempre. De-pendendo do tipo de fi ta e da

forma de armazenamento, já é possí-vel perceber os danos nos videos de família com mais de dez anos. Hora de digitalizar os tesouros antigos e, assim, mantê-los protegidos contra a inevitável degradação. Serviços como esse são oferecidos por lojas especializa-das, porém o preço para a realização da tarefa costuma ser relativamente alto, dependendo do tempo de gravação e do estado de conservação da fi ta.

Para a digitalização dos videos antigos será necessário possuir um videocassete ou uma câmera de video antiga (que suporte o tamanho da fi ta a ser convertida) ou um equipamen-to de captura de video ou ainda um receptor DVB equipado com uma entrada de vídeo analógica adicional.

Equipamentos de captura de vi-deo USB baratos já existem a partir R$150,00 na Internet, mas receptores DVB com entradas de sinal analógico saem por volta de R$500,00. Testamos no Linux 14 dispositivos atualmente disponíveis comercialmente. Observa-mos especialmente os dispositivos sem marca e nos quais o suporte ao Linux é raramente informado. Além disso, os chipsets montados mudam com fre-quencia, de modo que ninguém pode

saber o nome do modelo, tornando difícil a busca por relatórios de uso atualizados na Internet. Como diz o ditado popular, é bem capaz de você comprar gato por lebre. No caso dos produtos de marca, as mudanças dos requisitos técnicos durante a produção raramente acontecem, mas caso exista alguma, normalmente o fabricante de-signa o produto de forma ligeiramente diferente. Para quem acha muito o esforço de comprar o equipamento de captura, testar em casa e, se não funcionar, retornar o equipamento, é melhor comprar logo um dispositivo de alguma marca conhecida.

O Linux cria para cada equipamen-to de captura de video um dispositivo /dev/videoX , que pode ser acessado pelo VLC Player, por exemplo. Para isso, inicie o VLC e selecione a op-ção Abrir dispositivo de gravação no menu Mídia . O modo de gravação correto para quase todos os equipa-mentos de captura é Video para Li-nux 2 . Como Dispositivo de Video , digite o nome do equipamento de captura, normalmente /dev/video0 .

Com o dispositivo de audio a his-tória é um pouco mais complicada: neste caso o VLC espera pela típca notação Alsa , algo do tipo hw:2,0 para a primeira saída da placa 2. O comando arecord -l lista o número

da placa que foi atribuída à entrada de audio do seu equipamento de cap-tura de video: como podemos ver na fi gura 1 , o Linux conectou a TerraTec Grabby como placa de audio 2 – sen-do assim, a especifi cação correta do equipamento no VLC seria, neste exemplo, hw:2,0 . Se a entrada de audio do seu equipamento de captura não funcionar, simplesmente conecte o cabo de audio na placa de som e di-gite seu nome de dispositivo no VLC.

Como nosso teste mostra, o suporte ao Linux pelos equipamentos de cap-tura e receptores DVB com entradas de video analógico é bastante misto: mesmo os modelos disponíveis há tem-pos no mercado são por vezes apenas parcialmente ou não suportados. As causas de problemas mais frequentes são a falta de arquivos de fi rmware e versões do núcleo do sistema desatu-alizados. Todos os receptores DVB e equipamentos de captura USB atual-mente disponíveis exigem arquivos de fi rmware especiais, que precisam ser carregados na inicialização do micro-processador no dispositivo para que ele possa sempre trabalhar corretamente. No Windows, isso é feito durante a ins-talação dos controladores de dispositi-vo, que também contém o fi rmware.

No Linux, o núcleo assume essa tarefa – dependendo da distribuição

TU

TO

RIA

L

72 www.linuxmagazine.com.br

TUTORIAL | Conversão de VHS para DVD

a oferta de arquivos de fi rmware varia bastante. Particularmente o Debian tem poucos disponíveis, já que o projeto só recebe fi rmwares livres na distribuição. Por outro lado, no Ubuntu é possível instalar o pacote linux-firmware , que disponibiliza uma grande variedade deles. Uma vez que ambos usam pa-cotes .deb , usuários do Debian podem simplesmente baixar o pacote a partir de um repositório do Ubuntu e instalar no Debian. Também no OpenSuse a instalação de arquivos de fi rmware é bem transparente, portanto mesmo nes-ta distribuição você deveria recorrer ao pacote do Ubuntu. Como o OpenSuse usa o formato de pacote .rpm , é possí-vel simplesmente instalar o pacote dev . Será preciso descompactá-lo primeiro com o comando ar x linux-firmware.deb – os arquivos de fi rmware poderão então ser encontrados no arquivo data.tar.gz e deverão ser copiados para o diretório /lib/firmware .

Entretanto a coleção de fi rmwares do Ubuntu também está longe de ser completa. A primeira pista para um pacote de fi rmware que está faltando é quando não há nenhum dispositivo de video em /dev/video0 ou quando recursos individuais não funcionam, como, por exemplo, a entrada de audio. Então, é necessário verifi car os arqui-vos de relatório de erros em /var/log/syslog ou /var/log/messages e procurar pelo termo fi rmware . Mensagens como Could not load fi rmware fi le , fi rmware seems to be missing ou re-quest_fi rm-ware unable to locate são sinais claros de que um arquivo de fi rmware está

mesmo faltando. O nome do arquivo indisponível normalmente aparecerá imediatamente antes ou depois da mensagem de erro, como abaixo:

drxk: could not load firmware file dvb-usb-Hauppauge-hvr930c-drxk.fw.

Procure pelo nome do arquivo do fi rmware em um mecanismo de busca e você vai encontrar quase sempre de forma rápida uma fonte para baixá-lo. As vezes será preciso extrair o fi rm-ware, no entanto, do controlador do Windows. Você pode achar instruções apropriadas para praticamente todas as placas receptoras padrão DVB e muitos outros dispositivos de video no Wiki LinuxTV [1] .

Algumas vezes, a razão para que o dispositivo não funcione não é exatamente o fi rmware, mas a fal-ta de controladores atualizados ou insufi cientes no núcleo do sistema. Para dispositivos USB, isso pode ser detectado de forma muito simples: primeiro digite em um terminal, como usuário root , o comando tail -f /var/log/syslog , e então se conecte ao dispositivo. O núcleo deverá si-nalizar um novo dispositivo USB e deve começar a inicialização do con-trolador – o que normalmente gera dúzias de novas mensagens de log.

Se, ao invés disso, surgirem apenas algumas linhas simplesmente anun-ciando um novo dispositivo USB, é bem provável que esse equipamento específi co ainda não seja suportado pelo núcleo em execução. Isto acon-tece porque, entre outros motivos, o

projeto LinuxTV dos desenvolvedores do Video-4-Linux sempre fi cam para trás na lista de prioridades do desenvol-vimento do núcleo principal. Portanto, pode valer a pena baixar os controlado-res mais recentes do LinuxTV direto do Git e compilar você mesmo. Isso não é muito difícil graças aos guias existentes, mas requer que o computador esteja com pelo menos algum ambiente de desenvolvimento instalado – no Debian e no Ubuntu você precisa instalar pelo menos os pacotes build-essentials e git-core , junto com todas as depen-dências e, posteriormente, todos os pacotes de desenvolvimento restan-tes como usuário root pelo comando apt-get build-dep linux . Finalmente, descarregue os códigos-fonte para seu computador, compile-os e instale-os com as seguintes linhas de comando: git clone git://linuxtv.org/ media_build.git

cd media_build && ./buildmake install; make load

A última chamada do comando make garante que o módulo controla-dor que acabamos de compilar seja carregado. Isso nem sempre funciona, como quando uma versão desatuali-zada do mesmo controlador já esteja em execução. Para ter certeza de que tudo estará em funcionamento, o me-lhor é reiniciar o computador. Tam-bém é recomendado que você faça uma cópia de segurança dos módulos controladores originais do núcleo do sistema antes de sua troca. Para isso, simplesmente crie uma cópia do dire-tório inteiro de módulos do núcleo em curso no âmbito /lib/modules – desta forma você poderá mais tarde reaver os controladores antigos e reinstalá-los caso um dos módulos experimentais do LinuxTV contenham um erro e seu trabalho fi que paralisado devido a um dispositivo ainda não suportado.

Interno ou externo? A principal vantagem dos equipamen-tos de captura de video USB é que eles estão a alguns centímetros do campo de

Figura 1 O programa arecord mostra uma lista com todos os dispositivo de

audio e seus respectivos números de placa. Com ele é possível

determinar o nome do dispositivo a ser usado com o VLC.

73

| TUTORIALConversão de VHS para DVD

Linux Magazine #97 | Dezembro de 2012

interferência do PC e, por isso, não há emissões de radiação de alta frequen-cia de outros componentes do sistema na parte receptora analógica do equi-pamento de captura. Um cabo USB curto entre o equipamento de captura e a câmera de video ou o videocassete também garantem que haverá pouca interferência por radiação no ambien-te, o que pode afetar a qualidade fi nal da imagem. Pela mesma razão, você também não deve necessariamente colocar o telefone próximo aos cabos de video enquanto estiver gravando. A não ser que você precise necessa-riamente de receptores DVB para o seu computador pessoal e que digi-talize videos apenas ocasionalmente,recomenda-se a compra de um equi-pamento de captura USB.

Se sua fonte de video possuir uma saída S-Video, você deveria sem sombra de dúvida dar preferência a ela, pois a imagem é muito melhor do que o sinal de video composto do conector RCA. O sinal de audio é enviado, em todos os casos, por conectores RCA através do equipa-mento de captura de video ou por um plugue P2 através da placa de som.

Depois de conectar o videocassete e o computador com um cabo, você precisa endereçar o equipamento de captura de video à entrada de video utilizada. Depois de reiniciar o sis-tema, todos os equipamentos usam por padrão a primeira entrada, que normalmente é o sintonizador de TV analógico ou entrada composta. Uma lista das entradas de video disponíveis pode ser fornecida pelo comando v4l2--ctl -n . Para mudar o equipamento de captura ( fi gura 2 ) para a entrada 1, digite o seguinte comando:

v4l2-ctl --set-input 1

Restam agora apenas alguns cliques até o ato de digitalizar os videos com o VLC: escolha a opção Controle Avan-çado a partir do menu Visualizar , a fi m de que o VLC mostre seus botões com recursos adicionais, incluindo o

recurso de gravação. A clicar nele, o VLC mostrará o fl uxo de dados para o disco de armazenamento.

É possível escolher uma pasta de gravação personalizada nas confi gu-rações do VLC, caso necessário. O padrão é a pasta de videos dentro da pasta pessoal do usuário. O VLC sal-va, para cada gravação, um arquivo AVI separado nomeado de vlc-record seguido da data, hora e fonte de gra-vação. Os videos salvos não são com-primidos e por isso usam cerca de 20 MB de dados para cada segundo de video. Para cortar, editar ou converter os videos, os melhores programas são o AviDemux, o Kdenlive e o PiTiVi. Para compilar vários videos em um DVD, recomenda-se o programa DeVeDe.

É importante que, antes de digita-lizar todos os videos seja verifi cado se há possíveis problemas de audio, como um zumbido no fi lme, e que você precisará resolver antes de continuar.

Este zumbido pode ser causado por diferentes potências de massa entre os vários dispositivos, por serem ligados a circuitos diferentes na casa ou operados em pontos muito distantes, mas ligados por um cabo a partir de um para o ou-tro. Na prática, é geralmente sufi ciente colocar o videocassete ou a câmera no mesmo fi ltro de linha do PC. Além dis-

so você deve também remover todos os cabos do dispositivo de captura de video ligados a outros equipamentos, que também podem estar causando o zumbido. No entanto, algumas ve-zes os próprios transformadores de lâmpadas halógenas são a causa; ao desligá-los, o zumbido desaparece e você pode começar a reproduzir os videos em seu computador.

Ao digitalizar suas antigas fi tas de video você afasta o perigo iminen-te de perda, mas os DVDs e discos rígidos também não armazenam os dados para sempre. É preciso fazer cópias desse material de tempos em tempos para garantir sua longevida-de. Ainda assim, é muito mais fácil manter seus fi lmes de forma perma-nente após digitalizá-los, afi nal agora você pode criar quantas cópias quiser sem qualquer perda de qualidade. ■

Mais informações [1] Wiki LinuxTV: http://

linuxtv.org/wiki/

Gostou do artigo?Queremos ouvir sua opinião. Fale conosco em [email protected]

Este artigo no nosso site: http://lnm.com.br/article/7962

sso sr/artic

sua om

ne.com

e:796

igo?nião.

Figura 2 A mudança da fonte de video no dispositivo de captura pode ser

feita através da linha de comando. É possível conferir as entradas de

video disponíveis com o comando v4l2-ctl .

74 www.linuxmagazine.com.br

PROGRAMAÇÃO | Linguagem Go

Linguagem Go

Sem exageros Projetada para a programação de sistema, a linguagem Go,

criada pelo Google, faz o trabalho sem grandes sofi sticações.

Uma boa opção para quem é alérgico a exageros.

por Oliver Frommel

A linguagem Go não faz falsas promessas. Talvez seja exata-mente o que a torna tão in-

teressante a longo prazo. Em 2007, Robert Griesemer, Ken Thompson e Rob Pike inventaram o Go por estarem descontentes com as lin-guagens de programação de siste-mas existentes. Eles não cederam a qualquer das tendências atuais como programação online assíncrona ou computação em nuvem; ao invés disso, aprenderam com a experiência de 30 anos com o C e criaram uma linguagem de programação capaz de se tornar sua sucessora. Como o C, o Go [1] mostra a sua força na programação do sistema, embora a linguagem possa ser implemen-tada para praticamente qualquer fi nalidade. Os inventores da lin-guagem são funcionários do Goo-gle, e o Go fez o seu caminho até oGoogle App Engine assim como o Java e o Python; no entanto, o su-porte ao Go está atualmente em fase experimental [2] .

Promessa futura No início de 2008, Thompson com-pletou seu primeiro compilador experimental, que gera o código C. Ian Taylor começou um pouco mais tarde, trabalhando em uma inter-face Go para o compilador GCC . Perto do fi m daquele ano, Russ Cox juntou-se ao projeto Go e o trabalho caminhou um pouco mais rápido. Em novembro de 2009, a equipe fi nalmente apresentou a primeira versão pública do compilador Go. Em março de 2012, a versão 1.0 e a especifi cação foram liberados, pro-metendo compatibilidade com as futuras versões do Go [3] . Portanto, a linguagem agora é adequada para projetos de software genuíno e não apenas experiências.

Os objetivos declarados do pro-jeto Go são: compilação efi ciente, execução rápida e programação simples. As linguagens existentes não conseguem combinar os três, dizem os inventores do Go, que se propõe a combinar a programação

simples oferecida por linguagens cada vez mais populares como Python e Ruby com a efi ciência e confi abi-lidade de outras mais “veteranas” como C, C++ e Java. Ao fazer isso, a compilação não vai demorar tanto tempo como em projetos Java, por exemplo. Além disso, a linguagem Go visa lidar com dependências entre bibliotecas externas de uma forma superior.

A simplicidade é uma das prin-cipais características do Go; seus inventores a criaram sem muitas construções. Em primeiro lugar, o Go tem como premissa uma sintaxe consistente e inequívoca. O mesmo não pode ser dito de linguagens como Perl, Ruby ou Scala, que usam uma variedade de construções sintáticas ou métodos para um único e mes-mo propósito.

O Go é orientado em C mas omite muitos elementos que, de forma redundante, cumprem a mesma fi nalidade. Por exemplo, o Go utiliza apenas a variante Postfi x

PR

OG

RA

MA

ÇÃ

O

75

| PROGRAMAÇÃOLinguagem Go

Linux Magazine #97 | Dezembro de 2012

do operador de incremento ++ , que fi ca atrás da variável. Ao mesmo tempo, esta é apenas uma indicação e não uma expressão que pode ser usada imediatamente abaixo. Em-bora isto leve a um pouco mais de tipagem, garante semânticas claras e menos confusão.

Programas Go são feitos de modo ainda mais claro por meio de empréstimos de linguagens es-truturadas como Pascal, Modula e Oberon. Em parte, a sintaxe Go foi feita em Newsqueak e limbo . Esta última é a linguagem de pro-gramação do sistema operacional Inferno que, por sua vez, é uma ramificação do sistema Plan9 , no qual Thompson e Pike trabalha-ram anteriormente.

Claramente formatada Por exemplo, o Go trabalha sem ponto e vírgula para completar instruções ( figura 1 ). Embora vír-gulas sejam parte da especifi ca-ção da linguagem, o analisador as adiciona de forma independente, da forma como a especifi cação do JavaScript faz. Para que isto fun-cione, os programadores precisam manter o estilo de abertura de chaves especifi cado, a qual afi rma

que a abertura de chaves em um bloco aparece sempre no fi nal de uma linha e não no início da li-nha seguinte. A ferramenta gofmt fornece com os pacotes a verifi ca-ção desta formatação, eliminando a necessidade de o programador fazê-la e garantindo que o código Go tenha a mesma aparência em todos os projetos.

As variáveis são declaradas com a palavra-chave var , seguida do nome da variável e do tipo, isto é, na ordem contrária do C, C++, ou Java:

var x float64

Os nomes de variáveis podem co-meçar com qualquer caractere con-siderado como uma letra no padrão Unicode. O operador := permite defi nir e inicializar variáveis de uma só vez. A palavra-chave var pode ser omitida aqui, como na maioria das especifi cações de tipo:

i := 1pi := 3.142

Os desenvolvedores Go também optaram por uma radical limpeza quando se trata de loops – se olharmos mais de perto, normalmente todos os whiles , do untils , foreachs , e assim por diante podem ser reformulados.

O Go tem apenas um ciclo: o bom e velho loop for .

Tipos A partir da crescente popularida-de de linguagens como Python e JavaScript, os desenvolvedores deduziram que um sistema de ti-pos simples tende a promover a popularidade de uma linguagem de programação. Como Robert Griesemer coloca: “os sistemas de tipo desajeitado conduzem as pessoas para linguagens com tipa-gem dinâmica” [4] . No entanto, eles não estavam preparados para sacrifi car a confi abilidade que as linguagens fortemente tipadas ofe-recem. O compromisso clássico no Go é que tipagem forte seja imple-mentada com a inferência do tipo – isto é, qualquer variável tem um tipo fi xo, mas o programador não precisa especifi cá-lo se o compila-dor naturalmente entender o tipo.

Ao mesmo tempo, o Go não tem uma hierarquia de tipo rigorosa. Na visão dos desenvolvedores, isso torna a implementação de compiladores e ferramentas mais complicado e leva a discussões intermináveis sobre a confi guração concreta da hierarquia. Em vez disso, o Go oferece tipos

Figura 1 Um tour no site oferece aos usuários uma boa primeira impressão da linguagem Go.

76 www.linuxmagazine.com.br

PROGRAMAÇÃO | Linguagem Go

importantes, como arrays e mapas ( hashes ) no núcleo da linguagem. Ponteiros também existem, mas são mais parecidos com aqueles em Pas-cal (isto é, sem a aritmética típica do ponteiro da linguagem C).

Tipos genéricos que se tornaram populares no C++, Java, e Python não são suportados no Go, mesmo que os desenvolvedores admitam que possam ser úteis, e sua im-plementação não está inequivo-camente descartada em algum momento no futuro distante. No entanto, o Go suporta programa-ção orientada a objetos; a abstra-ção para isto são interfaces, mas a interface em Go difere de suas contrapartes em Java ou Objective C. Uma interface especifica um conjunto de métodos que imple-mentam “objetos” para cumprir uma determinada função, sem pertencer a uma classe comum.

Além disso, o Go não tem exce-ções porque elas causam mudanças incontroláveis no fl uxo do progra-ma. Como alternativa, a linguagem oferece valores de retorno múltiplos para funções, que podem usar um mecanismo curinga para capturar valores de erro. A linha 2 da lista-gem 1 mostra uma chamada para os.Create() , que ao mesmo tempo retorna o identifi cador de arquivo e um código de erro.

Ferramentas O interessado em programar na lin-guagem Go normalmente só precisa instalar o compilador; as distribuições mais recentes do Linux já o possuem em seus sistemas de gerenciamento de pacotes. Para instalar no Ubuntu 12.04, digite:

apt-get install golang

Outros sistemas operacionais, in-cluindo Windows e Mac OS X, têm distribuições binárias do pacote Go.

Após a instalação, seu disco rí-gido irá conter (dependendo da

arquitetura do processador) os co-mandos 6a , 6c , 6g e 6l - ou os seus homólogos com os dígitos 5 ou 8 . As seis ferramentas são para proces-sadores AMD64, a série 5 são para processadores 368, e a série 8 são para processadores ARM. Os nomes estranhos são herdados do Plan9, que utiliza esses dígitos para identifi car as arquiteturas de processadores.

Convenientemente, na prática, não temos que nos preocupar com esses detalhes e podemos simples-mente utilizar o frontend go . Tam-bém vale a pena mencionar que objetos gerados pelo compilador com a extensão .6 contêm referên-cias a todos os módulos utilizados, que o vinculador segue depois.

Isto evita o problema de ter de en-contrar as bibliotecas adequadas, além dos arquivos de cabeçalho, e especifi cá-los durante o processo de vinculação, como é o caso do C e do C++. Se um programa Go é construído, o compilador pode também vinculá-lo. Isto signifi ca que os problemas de vinculador bem conhecidos são coisa do pas-sado. O Go também lida com a tarefa de makefiles .

Se o usuário tiver instalado o Go corretamente, deve ser ca-paz de executar o comando go no console:

$ go versiongo version go1

Listagem 1: Tratamento de erros 01 for try := 0; try < 2; try++ {02 file, err = os.Create(filename)03 if err == nil {04 return05 }06 if e, ok := err.(*os.PathError); ok && e.Err == syscall.ENOSPC {07 deleteTempFiles() // Recover some space.08 continue09 }10 return11 }

Figura 2 Alguns dos pacotes Go.

77

| PROGRAMAÇÃOLinguagem Go

Linux Magazine #97 | Dezembro de 2012

Se a instalação do Go não foi adicionada automaticamente ao PATH para arquivos executáveis, devemos apontar a variável de am-biente GOROOT para o diretório pai e em seguida adicionar $GOROOT/bin ao PATH .

Pelo fato de programas Go com-pilarem muito rapidamente, eles são bem adaptados para chamar scripts, com certas limitações – isto é, como uma espécie de “faça-você-mesmo”, compilação no tempo exato. A ferra-menta Gorun oferece suporte a este processo [5] .

Avançado Apesar de remover muitas caracterís-ticas encontradas em outras lingua-gens, o Go acrescenta características modernas desejadas pelos programa-dores, tais como fechamentos, que no Go são funções anônimas que salvam o ambiente.

A linguagem atinge o objetivo declarado de programação simples para sistemas multicore – o Go foi desenvolvido na era pré-nuvem, quando processadores multicore eram o considerados o “Santo Gra-al” – com uma abstração chamada goroutines , que segue o modelo de processos de comunicação sequen-ciais ( communicating sequential processes , ou CSP) para facilitar a programação sujeita a erros com threads [6] .

Para ler mais, confi ra o documen-to online “Go Efetivo”, que mostra algumas soluções “idiomáticas” [7] . Uma variedade de livros sobre Go foram publicados, e mais ajuda está disponível na lista de discus-são golang-nuts (a lista golang-dev é destinada a desenvolvedores do

compilador). Por fi m, uma dica para a pesquisa online para recursos Go: em vez de digitar “go” como o termo a ser pesquisado, use sempre “golang”. Localmente, poderemos ler toda a documentação no nave-gador se iniciarmos o servidor de documentação, digitando

godoc -http=:8000

O Go vem com uma variedade de bibliotecas ( fi gura 2 ); é possível encontrar a lista completa em vários sites [8] [9] [10] . Os maiores projetos implementados em Go incluem o servidor online Falcore [11] e o soft-ware StatHat [12] .

Conclusão A linguagem Go é madura e, gra-ças à compatibilidade futura pro-metida pelos desenvolvedores, é adequada para projetos de software profi ssionais. Além disso, os tem-

pos curtos de compilação são úteis para grandes projetos. A redução no escopo da linguagem a torna relativamente fácil de aprender e mantém código de terceiros fácil de ler, o que acabará por benefi ciar a manutenção de qualquer parte do software.

O preço para essa redução ao essencial é a ausência de recursos como classes baseadas na orienta-ção a objetos, que muitos progra-madores estão acostumados a ter. O Go oferece vários recursos que permitem desenvolvimento orien-tado a objeto, mas requer alguma acomodação de novos conceitos. O Go está previsto para ser implemen-tado em um número crescente de projetos, especialmente na área de programação de sistema, mas supor-te no Google App Engine também pode torná-la interessante para uso em programação online. ■

Mais informações

[1] Go: http://golang.org/

[2] Go no Google App Engine: https://developers.google.com/appengine/docs/go/

[3] Post sobre o lançamento da primeira versão do Go: http://blog.golang.org/2012/03/go-version-1-is-released.html

[4] Robert Pike no GoogleTechTalks: http://www.youtube.com/watch?v=rKnDgT73v8s

[5] Gorun: http://wiki.ubuntu.com/gorun/

[6] CSP: http://www.usingcsp.com/cspbook.pdf

[7] Go Effective: http://golang.org/doc/effective_go.html

[8] Bibliotecas escritas em Go puro: http://go-lang.cat-v.org/pure-go-libs/

[9] Biblioteca bindings para Go: http://go-lang.cat-v.org/library-bindings/

[10] Projetos externos Go: http://godashboard.appspot.com/

[11] Falcore: http://ngenuity.ngmoco.com/2012/01/introducing-falcore-and-timber.html

[12] Construindo StatHat com Go: http://blog.golang.org/2011/12/building-stathat-with-go.html

Gostou do artigo?Queremos ouvir sua opinião.

Fale conosco em

[email protected]

Este artigo no nosso site:

http://lnm.com.br/article/7949

so sit

articl

zine.com.

949

o?a opinião.

80

SE

RV

IÇO

S

www.linuxmagazine.com.br

Índice de anunciantesEmpresa Pág.

IBM 02

Senac 07

Central Server 11

Locaweb 13

Impacta 15

Plusserver 18, 19

TeHospedo 31

UOL Host 45

Vectory 57

c’t 80

WatchGuard 83

Locaweb 84

Calendário de eventos

Evento Data Local Informações

Campus Party 201328 de janeiro a3 de fevereiro

São Paulo, SPhttp://www.campus-party.com.br/2013/index.html

/sys/dev 2 e 3 de março São Paulo, SPhttp://www.linuxnewmedia.com.br/sysdev/

Web Expo Forum 3 e 4 de abril São Paulo, SPhttp://www.webexpoforum.com.br/

Gartner Data Center Summit 9 e 10 de abril São Paulo, SP

http://www.gartner.com/technology/summits/la/data-center/

BITS 2013 14 a 16 de maio Porto Alegre, RShttp://www.bitsouthamerica.com.br/

computaçãoe tecnologia

Adquira o seu exemplar pelo site

www.lnm.com.br/shopping

Já chegou ao Brasila maior revista da Europade informática e tecnologia

g

paogia

Luciano Antonio Siqueira

Máquinas virtuais com VirtualBox

Administração de infraestrutura de máquinas virtuais com Sun VirtualBox®. Como trabalhar com sistemas operacionais – Windows, Linux etc – na mesma máquina e simultaneamente.

Criação de diferentes modalidades de conexões virtuais, exportação/importação de máquinas virtuais e criação de pontos de recuperação (snapshots).

Luciano Antonio Siqueira

Infraestrutura de Redes

Passo a passo da montagem de uma rede de computadores, desde o cabeamento e roteadores até a confi guração das máquinas clientes.

Confi guração e manutenção de serviços essenciais como DNS, compartilhamento de arquivos e acesso remoto.

Paulo Henrique Alkmin da Costa

Samba: com Windows

e Linux

Como permitir a comunicação de diferentes sistemas operacionais em rede: Windows, Linux, Mac OS X etc. Defi nição de compartilhamentos de arquivos, impressoras – incluindo a instalação automática de drivers – e utilização do Samba como controlador de domínio

(PDC) também para clientes Windows Vista e Windows 7.

O conteúdo e o formato dos livros foram desenvolvidos a partir da experiência prática e educacional de seus autores, com foco principal no desenvolvimento de competências, através de conceitos, exemplos detalhados e dicas de quem realmente entende do assunto.O material é indicado tanto para autodidatas que desejam se aperfeiçoar quanto para utilização em escolas. O professor irá se sentir confortável para desenvolver as atividades a partir do livro, que procura atender tanto à expectativa do aprendiz quanto à demanda profissional do mercado de TI.

Disponível no site www.LinuxMagazine.com.br

Conheça a coleção Academyda Linux New Media

Os livros da Coleção Academy são roteiros práticos e objetivos, com didática adequada tanto ao profissional

quanto ao estudante da área de TI.

82 www.linuxmagazine.com.br

Linux Magazine #98

PR

EVIE

W

Admin Magazine #09

Windows 8A Microsoft está lançando uma nova versão do Windows e nós estamos lançando uma nova edição da Linux Magazine , que ajudará o administrador de redes e sistemas a interoperar entre o novo sistema operacional da Microsoft e o Linux. Aprenda a trabalhar com Windows 8 e Samba em redes mistas, criar um ambiente dual boot com Linux e Windows 8 e saiba ainda como utilizar sistemas de arquivos Linux com esta nova versão do Windows. ■

OpenStackCapaz de gerenciar os componentes de múltiplas instâncias virtualizadas, o OpenStack é um dos queridinhos dos profi ssionais de infraestrutura e virtualização da atualidade. É li-vre, não possui restrições quanto à quantidade de instâncias e é uma plataforma robusta, extremamente útil nestes tempos onde o adven-to da computação em nuvem já é uma realidade. Na próxima edi-ção da Admin Magazine você vai conhecer tudo o que essa incrível ferramenta pode fazer por você! Não perca!