LM_84_CE

download LM_84_CE

of 30

Transcript of LM_84_CE

  • 8/3/2019 LM_84_CE

    1/30

    http://lnm.com.br/article/5997http://lnm.com.br/article/6012http://lnm.com.br/article/6017http://lnm.com.br/article/6034http://lnm.com.br/article/6004http://lnm.com.br/article/5993http://lnm.com.br/article/5986
  • 8/3/2019 LM_84_CE

    2/30

    4

    EDITORIAL

    www. linuxmagazine .com.br

    Muito barulho por nada, em traduo literal, o signifcado do do editorial desta edio, que tambm ttulo da comdia do Bar

    Avon, William Shakespeare (15641616). A mesma expresso po

    usada para descrever a nova celeuma criada em torno de um recurconsidero muito bem-vindo a qualquer sistema que tem a pretensmanter um nvel mnimo de segurana, e ao qual a Microso t recentdeclarou suportar ofcialmente a partir da prxima verso do Wind

    Resumo da pera: os PCs e notebooks passariam a poder bloqinicializao do Linux ou de qualquer outro sistema operacional, Windows 8 estivesse instalado nesse hardware anteriormente. O revel pelo bloqueio seria o recursoSecure Bootdo frmware UEFI (UnifedExtensible Firmware Interface ), doravante disponvel por padro em todos computadores de arquitetura Intel. Assim, de acordo com a 2.3.1 da especifcao UEFI, publicada em 06 de abril deste ano,

    recurso Secure Boot esteja ativado, o frmware UEFI permitir apinicializao de sistemas operacionais que disponham de uma assidigital vlida, seja ela proveniente do abricante da placa-me ou ware UEFI, e que fcaria armazenada em um banco de dados espe

    Que ningum se engane: a ideia boa para todo mundo, poimenta o nvel de segurana dos sistemas e torna mais di cil coos mecanismos de proteo de qualquer sistema operacional. Mque esses mecanismos estejam confgurados do modo mais sepossvel, se um vrus in ectar o setor deboote carregar um aplicativomalicioso na memria, poder tranquilamente desativar qualquefgurao de segurana implementada. Caso o computador s ingerenciadores de inicializao, sistemas operacionais ouhypervisors de ontes confveis, no mais possvel manipular esses sistcontornar suas confguraes de segurana.

    Para iniciar o Linux em uma mquina equipada com esse tipmecanismo de segurana, tanto o gerenciador de boot quanto okernel precisariam ser assinados com uma chave privada, e a chave pdeveria estar disponvel no banco de dados do abricante da plaem um esquema mais ou menos semelhante ao que ocorre hoje os navegadores de Internet. Esses abricantes provavelmente nnenhum problema em armazenar as chaves pblicas de sistemas comerciais, como os da Red Hat, Oracle, SUSE ou Canonical.projetos comunitrios, tais como Debian, Fedora etc, improvv

    os abricantes de hardware disponibilizem as chaves pblicasdistribuies. Para esses casos, entretanto, a especifcao pubpela UEFI prev a solicitao de senha no item 5 do seu par27.7.3.3 caso o frmware se depare com um sistema no assinadoisso, evita-se que um agressor manipule ocultamente o procesboot, sem que seja necessrio desativar totalmente o recurso SBoot. Desse modo, todos os sistemas operacionais modernos apenas o Windows 8 adentrariam o Nirvana do nvel de seguadequado era da computao em nuvem.

    Demorou! No se incomode com o rudo de undo...

    Rafael Peregrino da SilvaDiretor de Redao

    Much ado about nothingExpediente editorialDiretor Geral

    Rafael Peregrino da [email protected]

    EditoresFlvia [email protected]

    Kemel [email protected]

    Editora de ArteLarissa Lima Zanini

    [email protected]

    EstagirioFelipe Brumatti Sentelhas

    [email protected]

    Colaboradores Adriano Matos Meier, Alexandre Borges, AlexandreSantos, Augusto Campos, Charly Khnast, DarioBestetti, Erik Brwaldt, Gavin W. Burris, Hans-PeterMerkel, Jon maddog Ha ll, Klaus Knopper, Kurt Seifried,Michael Uelschen, Tim Schrmann, Zack Brown.

    TraduoEmersom Satomi, Raquel Lucas, Rodrigo Garcia.

    RevisoCristiana Ferraz Coimbra

    Editores internacionaisUli Bantle, Andreas Bohle, Jens-Christoph Brendel,Hans-Georg Eer, Markus Feilner, Oliver Frommel,Marcel Hilzinger, Mathias Huber, Anika Kehrer,Kristian Kiling, Jan Kleinert, Daniel Kottmair,

    Thomas Leichtenstern, Jrg Luther, Nils Magnus.

    Anncios:Rafael Peregrino da Silva (Brasil)

    [email protected].: +55 (0)11 3675-2600

    Penny Wilby (Reino Unido e Irlanda) [email protected]

    Amy Phalen (Amrica do Norte) [email protected]

    Hubert Wiest (Outros pases) [email protected]

    Diretor de operaesClaudio 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 Austrlia www.linux-magazine.es Espanha www.linux-magazine.pl Polnia www.linux-magazine.co.uk Reino Unido www.linuxpromagazine.com Amrica do Norte

    Apesar de todos os cuidados possveis terem sido tomadosdurante a produo desta revista, a editora no responsvelpor eventuais imprecises nela contidas ou por consequnciasque advenham de seu uso. A utilizao de qualquer material darevista ocorre por conta e risco do leitor.

    Nenhum material pode ser reproduzido em qualquer meio, emparte ou no todo, sem permisso expressa da editora. Assu-me-se que qualquer correspondncia recebida, tal como car-tas, emails, faxes, fotograas, artigos e desenhos, sejam for-necidos para publicao ou licenciamento a terceiros de formamundial no-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 So Bento, 500Conj. 802 S01010-001 So Paulo SP Brasil Tel.: +55 (0)11 3675-2600

    Direitos Autorais e Marcas Registradas 2004 - 2011:Linux New Media do Brasil Editora Ltda.Impresso e Acabamento: RR Donnelley Distribuda em todo o pas pela Dinap S.A.,Distribuidora Nacional de Publicaes, So Paulo.

    Atendimento Assinantewww.linuxnewmedia.com.br/atendimentoSo Paulo: +55 (0)11 3675-2600Rio de Janeiro: +55 (0)21 3512 0888Belo Horizonte: +55 (0)31 3516 1280

    ISSN 1806-9428 Impresso no Brasil

  • 8/3/2019 LM_84_CE

    3/30

    6 www. linuxmagazine .com.br

    CAPASuper mquinas 29

    No revolucionrio mundo das super mquinas, o consumo de

    informao mais rpido do que corriam os carros no seriado dos

    anos 80. O que fazer para ganhar desempenho e agilidade?

    Veloz desde o incio 30

    O systemd um conjunto de solues que promete

    revolucionar o processo de boot. Mas toda essa

    tecnologia realmente aumenta a velocidade?

    Processamento em cluster 36

    Como congurar um cluster de computao de alto desempenho

    com Kickstart, SSH, Son of Grid Engine e outras ferramentas livres.

    Nas nuvens com XCP 46

    O uso inteligente de solues de virtualizao,

    como cenrio para o futuro .

    N D I C E

    I

    http://lnm.com.br/article/6019http://lnm.com.br/article/6019http://lnm.com.br/article/6019http://lnm.com.br/article/6019http://lnm.com.br/article/6019http://lnm.com.br/article/6012http://lnm.com.br/article/6012http://lnm.com.br/article/6012http://lnm.com.br/article/6012http://lnm.com.br/article/6012http://lnm.com.br/article/6034http://lnm.com.br/article/6034http://lnm.com.br/article/6034http://lnm.com.br/article/6034http://lnm.com.br/article/6034http://lnm.com.br/article/6034http://lnm.com.br/article/6012http://lnm.com.br/article/6019
  • 8/3/2019 LM_84_CE

    4/30

    7

    PROGRAMAOPequeno notvel 49

    Se voc est procurando uma linguagem de scriptcom interpretador leve e fcil de integrar com seusaplicativos, provavelmente chegar linguagem Lua.No entanto, um concorrente bem convel, chamadoSquirrel, se esconde sua sombra h muitos anos.

    ANLISESolues paralelas 66

    A biblioteca da Intel, Threading Building Blocks (TBB), ajudadesenvolvedores a distribuir tarefas de processamentoparalelo entre mltiplos processadores ou ncleos.Esse elegante conceito de tarefas substitui a irritanterotina de trabalhar com las de processamento.

    Dana dos discos 73

    Discos de alta capacidade usam a tabela de partioGUID ao invs do antigo master boot record, mas osaplicativos fdisk usuais do Linux no conseguem trabalharcom o novo esquema de particionamento. Veja comocontornar isso usando as ferramentas certas.

    REDESUm passo alm do Nagios OSS 62

    A OpService uma empresa brasileira que mostra como possvel criar um negcio a partir de um conhecidosoftware de cdigo aberto, atravs da prestao de servios,personalizao e desenvolvimento de software.

    SERVIOSEditorial 03Emails 06Linux.local 78Preview 82

    Linux Magazine #84 | Novembro de 2011

    | NDICELinux Magazine 84

    COLUNASKlaus Knopper 10

    Charly Khnast 12

    Zack Brown 14

    Augusto Campos 16

    Alexandre Borges 18

    Kurt Seifried 19

    NOTCIASGeral 22Abertas as incries para a LinuxCon 2011

    Bada poder ter seu cdigo aberto

    CORPORATENotcias 22Novos membros ingressam na Aliana para Virtualizao Aberta

    Ameaas sobre dbias patentes

    Google compra mais patentes da IBM

    Coluna: Jon maddog Hall 26

    Coluna: Alexandre Santos 28

    TUTORIALOlho mgico 54

    Vandalismo, danos propriedade e roubo so preocupaessrias para muitas pessoas, mas o Linux e o software livre demonitoramento de video lhe do uma chance de pegar os culpados.

    Se no pode venc-los... 60

    Para a maioria das empresas, o comunicador instantneo inimigo da produtividade, mas podemos torn-lo um aliado.

    http://lnm.com.br/article/5997http://lnm.com.br/article/5997http://lnm.com.br/article/5997http://lnm.com.br/article/5997http://lnm.com.br/article/5997http://lnm.com.br/article/5997http://lnm.com.br/article/5997http://lnm.com.br/article/6035http://lnm.com.br/article/5967http://lnm.com.br/article/5985http://lnm.com.br/article/5962http://lnm.com.br/article/6004http://lnm.com.br/article/5994http://lnm.com.br/article/6018http://lnm.com.br/article/6018http://lnm.com.br/article/6018http://lnm.com.br/article/6018http://lnm.com.br/article/6018http://lnm.com.br/article/6000http://lnm.com.br/article/6000http://lnm.com.br/article/6000http://lnm.com.br/article/6000http://lnm.com.br/article/6000http://lnm.com.br/article/6000http://lnm.com.br/article/6000http://lnm.com.br/article/6000http://lnm.com.br/article/5986http://lnm.com.br/article/5993http://lnm.com.br/article/5994http://lnm.com.br/article/5985http://lnm.com.br/article/6004http://lnm.com.br/article/5962http://lnm.com.br/article/5967http://lnm.com.br/article/6018http://lnm.com.br/article/5986http://lnm.com.br/article/5993http://lnm.com.br/article/6000http://lnm.com.br/article/6035http://lnm.com.br/article/5997
  • 8/3/2019 LM_84_CE

    5/30

    http://events.linuxfoundation.org/events/linuxcon-brasil
  • 8/3/2019 LM_84_CE

    6/30

    18

    COLU

    NA

    www. linuxmagazine .com.br

    Coluna do Alexandre Borges

    Udev: ltimosexemplos Nosso colunista, Alexandre Borges, encerra sua saga pica

    pelo sistema UDEV com alguns exemplos e chave de ouro.

    Como havia prometido, neste ms mostrarei aoleitor alguns conceitos e ormas de como utili-

    zar o ramework do Udev efcientemente. Essesexemplos, como ser acilmente entendido, no so maisdi ceis ou complicados, mas apenas oram deixadospara o fnal por questo da evoluo lgica do assunto.

    Vamos modifcar nosso arquivo de regras/etc/udev/rules.d/99-usb-linuxmagazine.rules (criado para fns deteste nas ltimas colunas) e inserir a seguinte linha:ACTION=="add", SUBSYSTEM=="block", ENV{ID_SERIAL_

    SHORT}=="5B671A000C6A", RUN+="/bin/mkdir -p/media/teste", RUN+="/bin/sh -c '/bin/mount -tvfat /dev/sdb1 /media/teste'"

    Essa linha diz o seguinte: ao inserir (ACTION==add ) odispositivo de bloco (neste caso, um pendrive) com n-mero de srie5B671A000C6A(lembrando que esta varivelpertence ao ambiente do Udev e pode ser obtida comudevadm info --query=all name=/dev/sdb ), crie o diretrio/media/teste (tare a realizada pela diretivaRUN ) e, em se-guida, monte o mesmo no diretrio/media/teste (coman-do executado pela segunda ocorrncia da diretivaRUN ). Aps essa modifcao, necessrio azer uma releituradas regras atravs do comando/etc/init.d/udev restart .

    Se tudo correu bem, o pen drive ser montado em/media/teste como descrito acima (em vez de ser mon-tado em/media/E83D-65C0 , re etindo assim o rtulo in-terno do dispositivo).

    A mesma linha acima poderia ser substituda por:SUBSYSTEM=="block",

    ENV{ID_SERIAL_SHORT}=="5B671A000C6A",ENV{MY_MOUNT_POINT}="/media/teste"

    ACTION=="add", SUBSYSTEM=="block",ENV{ID_SERIAL_SHORT}=="5B671A000C6A",RUN+="/bin/mkdir -p $env{MY_MOUNT_POINT}",RUN+="/bi n/mount -t vfat $env{DEVNAME}$env{MY_MOUNT_POINT}"

    interessante comparar e perceber que, no undo, essas

    duas novas linhas so iguais s do exemplo anterior. A ni-

    ca di erena que estamos criando a varivel de ambMY_MOUNT_POINTno ramework do Udev e depois usando

    mesma na linha de confgurao seguinte. Alis, almvarivelMY_MOUNT_POINT , tambm oi utilizada a varivelDEVNAME , que aponta para o dispositivo inserido/dev/sdb1 .

    claro que possvel impor esta mesma dinmica premover dispositivos. Observe a nova linha de confguraACTION=="remove", SUBSYSTEM=="block",

    ENV{ID_SERIAL_SHORT}=="5B671A000C6A",RUN+="/bin/umount" $env{MY_MOUNT_POINT}" ,RUN+= "/bin/rmdir $env{MY_MOUNT_POINT}"

    Neste caso, as alteraes eitas so que o valor dretivaACTION remove , o dispositivo desmontado (naprimeira diretivaRUN ) e o ponto de montagem apagadoem seguida (segunda diretivaRUN ). O leitor pode azero exerccio: se o pen drive or literalmente removidsistema de arquivos ser desmontado e o diretrio/me-dia/teste tambm ser excludo, desde que no existnenhum processo utilizando tal dispositivo. O que

    eito acima pode ser repetido para o Galaxy Tab damsung, prestando apenas ateno no detalhe de queexistem, em geral, dois dispositivos de armazenamedentro dele (um interno e outro externo um SD carnecessitando o leitor coletar todas as variveis dos dsitivos de armazenamento (atravs dos comandosudevadminfo --attribute-walk --name=/dev/sdb | more ouudevadminfo --query=all --name=/dev/sdb , por exemplo) e criandoregras para que eles sejam identifcados unicamente (meu caso, aparecem como/dev/sdb e /dev/sdc ).

    Espero que o leitor tenha gostado desta srie de lunas a respeito do ramework do Udev e que isso opire a procurar e pesquisar mais sobre este assunto

    acinante que acompanha o antstico mundo Linux

    Alexandre Borges ( [email protected] ) instrutor independente e ministraregularmente treinamentos de tecnologia Oracle, Symantec e EC-Council (CEH eCHFI), alm de estar sempre envolvido com assuntos relacionados ao kernel Linux.

  • 8/3/2019 LM_84_CE

    7/30

    29

    | SEOMatria

    Linux Magazine #XX | Ms de 200X

    | SEOMatria

    Linux Magazine #X M de 200

    Otimizao de desempenho

    Super mquinas No revolucionrio mundo das super mquinas, o consumo de informao mais rpido do quecorriam os carros no seriado dos anos 80. O que fazer para ganhar desempenho e agilidade?

    por Flvia Jobstraibizer

    Embora o ttulo deste artigo nosremonte poca do seriadoA Super Mquina criado em1982, onde um poderoso carro era do-tado de super recursos (para a pocae at a rente de seu tempo), na era

    da in ormao, alamos de compu-tadores otimizados, desempenho demquinas, tempos de resposta e tudoo mais que agilize o armazenamento,a troca de in ormaes e at mesmoo uso do que sero os computadoresdo uturo: cada vez mais conectados,velozes e acessveis.

    Quando alamos de virtualiza-o, clusteres, nuvem, e todos essesjarges da moda, sempre pensamosem duas coisas: desempenho e se-gurana, nesta ordem.

    Em se tratando do segundo item,ns daLinux Magazine j abordamose incansavelmente trazemos novidadessobre o assunto. Mas a questo nestaedio como criar mquinas comexcelente desempenho, pensando

    tambm em questes como consumode energia, aquecimento (afnal m-quinas que superaquecem tendem aser mais lentas), dimensionamento dehardware versus necessidade e muitasoutras questes que abordam os aspectosda otimizao e desempenho de com-putadores e parques computacionais.

    Nesta edio da Linux Maga-zine , voc ir conhecer a compu-tao HPC, sigla em ingls paraComputao de Alto Desempenhoe vai aprender como criar mquinas

    em cluster, dimensionar hardwaree otimizar o ambiente.

    Conhea tambm o systemd, umgrupo de erramentas que juntasso uma soluo revolucionriapara otimizao do processo de

    boot de computadores.Esta edio tambm vem recheadade novidades. Conhea o Zonemin-der, soluo de videomonitoramentoque voc pode criar acilmente comrecursos domsticos.

    Programadores vo se surpreendercom a acilidade de programao dalinguagem Squirrel, utilizada em gran-de parte para a criao de jogos, masque provavelmente, sua mente criati-va ir inventar para ela diversos usos.

    Aproveite esta edio e boa leitura!

    CAPA

    Matrias de capa Veloz desde o incio 30

    Processamento em cluster 36

    Nas nuvens com XCP 46

  • 8/3/2019 LM_84_CE

    8/30

    49

    | PROGRAMAOSquirrel: Linguagem de script

    Linux Magazine #84 | Novembro de 2011

    Introduo linguagem de script Squirrel

    Pequeno notvel Se voc est procurando uma linguagemde script com interpretador leve e fcil de integrar com seus aplicativos, provavelmente

    chegar linguagem Lua. No entanto, umconcorrente bem convel, chamado Squirrel,

    se esconde sua sombra h muitos anos. por Tim Schrmann

    H mais de oito anos, Al-berto Demichelis estavatrabalhando na amosaempresa de jogos Crytek, tendoque lidar com seu primeiro game,o Far Cry, cuja lgica de programa-o seria eita com a linguagem descript Lua. Quando tentou integraros resultados, Demichelis teve umproblema com a automao dogerenciamento de memria (nocoletor de lixo, ou garbage collec-

    tor ). Aps se rustrar com algumassolues alternativas, decidiu darum temido passo e criou sua pr-pria linguagem de script. Ele queriaque seu interpretador osse como odo Lua pequeno, leve e cil deintegrar com qualquer outro apli-cativo. O resultado oi o Squirrel[1] , cujo interpretador atualmentepossui apenas 442KB.

    Velhos amigosO Squirrel uma linguagem descript imperativa e orientada a ob-jetos, cuja sintaxe parece uma mis-tura de C, C++, Java, JavaScript ePython. Ele copia as tabelas da lin-guagem Lua, usando uma estruturade dados exvel em quase tudo, etem um recurso de coleta de lixoque automatiza o gerenciamentode memria.

    O ponto central que o Squir-rel combina uma sintaxe simplese amiliar com os bene cios da lin-guagem Lua. A implementao dosinterpretadores oi colocada sob alicena MIT 3.0. O cdigo- onte,ento, no apenas aberto, mastambm pode ser usado sem custos

    em projetos comerciais.

    Atualmente o Squirrel usadoprincipalmente em jogos de com-putador, os mais conhecidos sendoLe t 4 Dead 2 , Final Fantasy Crys-tal Chronicles: My Life as a KingePortal 2 [2] . Os desenvolvedores doclone doTransport Tycoon Deluxe ,o OpenTTD , tambm escreveramo cdigo de inteligncia artifcialdos jogadores automatizados como Squirrel (figura 1 ).

    Se voc usa o IDE Code::Blocks,tambm j se deparou com o Squir-rel, que usado para expandir osrecursos[3] ( gura 2 ) do programa. Assim, a linguagem recomenda-da tambm para outros aplicativosalm de jogos, como prova o SquirrelShell, que pode ser usado at comosubstituto do Bash[4] .Instalao manualIn elizmente, o Squirrel no est nosrepositrios das distribuies mais po-pulares. Isso geralmente s d ao usu-rio uma alternativa: pegar a re ernciade implementao no site do Squir-rel e compilar o interpretador[1] . Ocdigo- onte est disponvel em duasverses: uma versostandalone, que

    executa os scripts diretamente na linha

    Listagem 1: Mximodenominador comum 01 // mximo denominador comum

    entre a e b02 function mdc(a, b=10)03 {04 if (b == 0) return a;

    05 else {06 if (a > b) returnmdc(a-b, b);

    07 else returnmdc(a, b-a);

    08 }09 }1011 // calcula alguns MDCs12 local x=1;13 while(x < 10)14 {15 print (mdc(x, 27)+\n);16 x = x+1;17 }

    PR O GRAMA

    O

  • 8/3/2019 LM_84_CE

    9/30

    50 www. linuxmagazine .com.br

    PROGRAMAO |Squirrel: Linguagem de script

    de comando, e uma biblioteca esttica,que voc pode incluir em seus programasC++. Como bnus, h ainda aSquirrelStandard Library , com um conjunto de

    unes teis, programas-exemplo e umPDF de re erncia para a linguagem.

    Para compilar o interpretador, vocprecisa de um compilador C++. As-sim voc pode executar o comandomakeno diretrio criado com a des-compactao do pacote. Isso colocao interpretador standalonesq no di-retriobin . Voc pode ento, indicarqual script Squirrel quer executar emconjunto com o interpretador:sq meuscript.nut

    Para acelerar a execuo do script,o interpretador primeiro o convertepara bytecode. Voc pode pedir issoexplicitamente atravs do comando:sq -c meuscript.nut -o

    meuscript.cnut

    Em seguida, execute omeuscript.cnut resultante.sq meuscript.cnut

    Se voc executar osq sem nenhumparmetro, isso inicia o interpretadorem modo interativo, no qual vocpode digitar comandos Squirreldiretamente ( gura 3 ). Para sair doprompt, digite[Ctrl] +[C] .

    Ol mundo!O tradicional Ol mundo!, noSquirrel, tem uma nica linha:print("Ol mundo!");

    A tipagem dinmica acilita o usode variveis que voc pode preenchercom contedo arbitrrio:local a = 3.14;local a = "Tux ama Agnes\n";local a = null;

    As cadeias de caracteres po-dem usar os caracteres de escapeque voc talvez j conhea do C. Apalavra-chavenull esvazia a varivel,

    sendo assim semelhante a, por exemplo,

    o apontadorNULLno C, ounil em Lua.Um ponto-e-vrgula completa cada ex-presso. Se uma expresso or a nica

    coisa em uma linha, como no exemploanterior, voc pode deixar de lado oponto-e-vrgula. O Squirrel sensvela maisculas. Os comentrios fcamentre/* e */ , ou voc pode usar// para comentrios de uma nica linha.

    Controle As estruturas de controle,if ,while efor uncionam como em C ou C++. A listagem 1 usa-os para calcular omximo denominador comum dedois nmeros. Alm disso, o Squirreltem umforeach prtico:local a=[1,2,3,4,5,6]foreach(numero in a)

    print("nmero="+numero+"\n"); Alistagem 1 tambm mostra como

    os programadores defnem umauno no Squirrel: a palavra-chave

    function seguida pelo nome dauno e os parmetros entre parn-

    teses;return retorna os resultados doprocessamento. Nalistagem 1 ,bestdefnido como10 . O interpretadorvai usar isso se o segundo argumentode uma chamada estiver ausente. OSquirrel permite inclusive um nme-ro varivel de parmetros:function foo(x, ...){

    local a = x+1;local b = vargv[0];/* ... */

    }

    Figura 1 Oponentes automatizados no OpenTTD usam inteligncia articialcodicada com scripts Squirrel.

    Listagem 2: Delegao01 Mixer

  • 8/3/2019 LM_84_CE

    10/30

    51

    | PROGRAMAOSquirrel: Linguagem de script

    Linux Magazine #84 | Novembro de 2011

    Voc pode passar o nmero quequiser de argumentos para essa unoe usar a matrizvargvpara acess-los na

    uno principal. As unes so obje-tos de primeira classe no Squirrel: vocpode us-las em variveis ou pass-lascomo argumentos em outras unes.

    Para economizar digitao, asverses 3.0 e posteriores usam ex-presses lambda, ou seja, unesannimas. Elas so muito teis nocaso de ordenao e busca:local numeros = [9,3,2,4,7];numeros.sort(@(a,b) a b);

    Uma outra alternativa seriaazer assim:

    numeros.sort(function(a,b){return a b; } );

    O operador comparativotam-bm oi introduzido na verso 3.0.Ele retorna0 se dois valores oremiguais.sort() uma uno de qual-quer matriz, o que realmente ajudana ordenao.

    Tabelas Alm de matrizes no estilo C ouC++, mostradas no cdigo a seguir,

    o Squirrel tambm permite tabelas.

    local cores = ["vermelho","verde", "azul"];

    Em outras linguagens, essa es-trutura de dados chamada dedicionrio ou campo de dados as-sociativo. Como uma agenda de

    tele ones, ela armazena qualquerdado que voc passar com umachave nica. Voc pode armaze-nar, por exemplo, o valorPaulo soba palavra-chaveNome . No Squirrel,os programadores podem gravar n-meros e unes completas comodadospayload (no apenas texto)e possvel misturar as coisas con-

    orme a necessidade:local teste=

    { cor="vermelho"b=function(x) { return x*x; }

    }

    O Squirrel re ere-se a cada parchave/valor como um slot. O aces-so aos dados armazenados possvelatravs da notao com pontos:print(teste.cor);print(teste.b(2));

    possvel alterar um slot existentecom uma simples designao:teste.b = 20;

    Para acrescentar um novo slot,use o operador

  • 8/3/2019 LM_84_CE

    11/30

    52 www. linuxmagazine .com.br

    PROGRAMAO |Squirrel: Linguagem de script

    ::mdc(1,2);

    Na prtica, os programadoressempre precisam navegar por lis-tas. No Squirrel, voc pode usargeradores para ajudar nisso. Essas

    unes especiais trabalham como

    uma mquina de bolas de chiclete,que solta a prxima bola sempre quevoc a aciona.

    D-me uma!Para criar um gerador, voc s preci-sa marcar o valor de retorno de uma

    uno normal comyield :function fornecedor(n){

    for(local i=0; i

  • 8/3/2019 LM_84_CE

    12/30

    53

    | PROGRAMAOSquirrel: Linguagem de script

    Linux Magazine #84 | Novembro de 2011

    Os programadores C++ estoacostumados com uma abreviaomais comum para isso:function Nova::add(c,d){

    this.x=this.x+c;

    this.y=this.y+d;}

    O preo de se usar as tabelas quetodas as unes e variveis fcampblicas, mas possvel armazenarclasses em variveis, assim como un-es, ou pass-las para uma unocomo parmetros.

    Como no Java 5, o Squirrel per-mite anotaes; os programadorespodem, assim, anexar metadados a

    classes e unes. Esses dados, que oSquirrel chama de atributos (listagem

    5 ) podem ento ser lidos e usadospor um sistema de documentaoou ambiente de desenvolvimento.

    Mtodos metaO cdigo seguinte uma opo de

    abordagem elegante para acrescentardoisPontos rapidamente:local p1 = Ponto(1,2);local p2 = Ponto(4,7);local p3 = p1 + p2;

    Para poder azer isso, bastaria im-plementar a uno_somar() classePonto(listagem 6 ).

    A uno_somar() pertence aogrupo de mtodosmeta . Se sobres-

    crev-los ou implement-los por sis, voc muda o comportamento de

    alguma uno interna do Squirrelou, neste caso, de um operador.Neste exemplo, o Squirrel aprendecomo aplicar o sinal de+aosPontos .

    ConclusoO Squirrel no merece viver comoum patinho eio sombra da lingua-gem Lua. Trata-se de uma linguagemtestada e aprovada, sendo muito mais

    cil de aprender no caso de desenvol-vedores acostumados orientao aobjetos. O ato de ser usada principal-mente em jogos de computador nodeveria desestimular ningum; pelocontrrio, os jogos geralmente exigeminterpretadores muito rpidos e leves.

    O ponto negativo que a docu-mentao bem sucinta na verda-de, trata-se mais de uma re erncia,embora inclua, sim, muitos exemploscurtos, sendo cil de ler e bem abran-gente. Para mais in ormaes, vocpode con erir o wiki (de aparnciameio catica) [5] do Squirrel, ouvisitar o rum caso tenha questesem aberto[6] .

    Mais informaes

    [1] Squirrel: http://squirrel-lang.org/

    [2] Programas que usam o Squirrel: http://wiki.squirrel-lang.org/default.aspx/SquirrelWiki/ProjectsUsingSquirrel.html

    [3] Squirrel no Code::Blocks: http://wiki.codeblocks.org/index.php?title=Scripting_Code::Blocks

    [4] Squirrel Shell: http://squirrelsh.sourceforge.net/

    [5] Wiki Squirrel: http://wiki.squirrel-lang.org/default.aspx/SquirrelWiki/SquirrelWiki.html

    [6] Frum Squirrel: http://forum.squirrel-lang.org/

    [7] Listagens deste artigo: http://www.lnm.com.br/issues/84/squirrel_listagens.zip

    Gostou do artigo?Queremos ouvir sua opinio.Fale conosco [email protected]

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

    os.br/

    emne.c

    e:59

    rtigoinio.

    http://www.netfive.com.br/http://www.netfive.com.br/http://www.netfive.com.br/http://www.netfive.com.br/http://www.netfive.com.br/
  • 8/3/2019 LM_84_CE

    13/30

    54 www. linuxmagazine .com.br

    TUTORIAL | Videomonitoramento

    Monitoramento de video com ZoneMinder

    Olho mgico Vandalismo, danos propriedade e roubo

    so preocupaes srias para muitas pessoas, mas o Linux e o software livrede monitoramento de video lhe douma chance de pegar os culpados.

    por Erik Brwaldt

    Bicicletas roubadas, carros ris-cados, pichao nas paredes tudo na porta da sua casa.Quando uma investigao policialdesse tipo de crime alha por altade provas conclusivas, um sistemade monitoramento de video pode

    azer milagres. Um monitoramentoe etivo de pontos estratgicos noprecisa custar o olho da cara. Apenascom um PC Linux, o so tware livreZoneMinder[1] e algumas cmeraspadro, voc pode mitigar o gasto decentenas de reais.

    PreparaoO valor utilitrio de um sistema demonitoramento de video dependeda qualidade das cmeras utilizadas.Para que as imagens do video tenhamalguma chance de ser aceitas como

    evidncia um em processo, precisamter alta resoluo para que a imagemseja ntida quando or necessrio azerum zoom para ver detalhes importan-tes. Como voc pode imaginar, nemtoda cmera adequada pra monito-ramento de vdeo. Alm disso, deve--se levar em considerao o local. Sequiser monitorar reas ao ar livre, acmera deve ser projetada para uso ex-terno: no existe vantagem se a chuvaestragar o equipamento. Se ocasional-mente houver necessidade de mudara rea observada, ser necessrio usaruma cmerapan/tilt com motor quemovimente a lente em dois eixos paramonitorar reas di erentes. As cmerasPan/Tilt/Zoom (PTZ) suportam umuso ainda mais exvel. Se necessrio,elas lhe permitem aproximar a ima-gem da rea monitorada.

    Se as reas de monitoramento es-tiverem em locais escuros, ou se precisar monitorar noite, tambm sernecessria uma onte de luz in ravemelha. Caras, as cmeras profssionaisde vigilncia requentemente incluemdiversos leds (diodos emissores de luque tm um alcance de at 10 metrosem condies climticas ruins. Se estiver usando as webcams mais baratas normalmente menores para monitorarum ambiente interno, ou se sua cme-ra de vigilncia no tiver led, podemser encontradas luzes in ravermelhaespeciais como componentes avulsos

    Suporte Linux Embora as cmeras especiais pan/tiltpaream todas iguais por ora, elas tgrandes di erenas tcnicas. As lentso praticamente idnticas em todos

    TUTOR

    IAL

    Figura 1 A interface web simplista depois de iniciar o ZoneMinder.

  • 8/3/2019 LM_84_CE

    14/30

    55

    | TUTORIAL Videomonitoramento

    Linux Magazine #84 | Novembro de 2011

    os modelos disponveis hoje, excetopela quantidade de pixels, mas muitascmeras no suportam outros sistemasoperacionais e no uncionam no Li-nux. As que contam com uma placade inter ace para TV (TV tuner ) e ascmeras S Video analgicas podem

    requentemente ser usadas em com-binao com o ZoneMinder, supondoque se tenha os drivers Linux para aTV ou a placa de captura. De qualquer

    orma, deve-se primeiramente checar alista de compatibilidade do programa[2] , especialmente se a inteno ordispr vrias cmeras di erentes em pa-ralelo, tanto internas quanto externas.

    A alta de drivers para Linux (ain-da) pode causar problemas com ascmeras populares USB. Em particu-lar, voc deve fcar longe de cmerasantigas com baixa resoluo. As c-meras desse tipo normalmente noconseguem produzir evidncias teis.Graas a vrios projetos, o suporte dewebcams para Linux tm melhoradosignifcativamente nos ltimos anos.Se or usar uma cmera USB, sua

    primeira tentativa deve ser a GSPCA

    [3] e a UVC Video[4] , onde se podedescobrir se a cmera escolhida real-mente trabalha com Linux. Como okernel incluiu ambos os drivers desdea verso 2.6.27, as cmeras classifca-das como compatveis pelos projetos

    uncionaro no Linux sem necessida-de de interveno manual.

    Finalmente, voc deve se assegu-rar de que o PC de monitoramentotem capacidade sufciente no discorgido. Os vdeos gravados em altaresoluo, com altas taxas de ramese muito coloridos, consomem umaenorme quantidade de espao.

    Instalao do softwareO ZoneMinder um aplicativo al-tamente modular com inter ace decontrole via web. Consequentemente, preciso preencher vrias condiesantes de usar o programa. Alm do Video4Linux para suportar as cme-ras e placas de video, o servidor web Apache com MySQL, e do Perl, tam-bm preciso instalar o FFmpeg e ospacoteslibjpeg para gravar imagens

    estticas e em movimento.

    Felizmente, os distribuidores Li-nux mais populares e seus derivadosagora incluem pacotes para o Zone-Minder que permitem a instalao doprograma diretamente do repositriousando o Synaptic, MCC ou YaST,o que geralmente resolve qualquerdependncia. Testei o sistema emuma variao especial Live CD doZoneMinder, mas no a testei exaus-tivamente porque ela baseada no Xubuntu 8.10, que est descontinu-ado e no tem drivers para muitasdas webcams e das placas de videopor avanadas causa da sua idade.

    Para simplifcar a instalao e aconfgurao do sistema de vigiln-cia de video, que de certa maneira complexo por conta de todos ospacotes e codecs que requer, o Zo-neMinder o erece um script[5] queautomatiza com segurana essa tare ae modifca a memria de confgu-rao. Para comear, copie o scripte salve-o com um editor de textos.Para torn-lo executvel, logue-secomoroot(ou usesudo -s ) e aplique

    chmod +xno script. Depois execute-o.

    Figura 2 A interface do ZoneMinder permite que asconguraes necessrias sejam feitas rapidamente.

    Figura 3 Descubra a congurao corretapara a cmera.

  • 8/3/2019 LM_84_CE

    15/30

    56 www. linuxmagazine .com.br

    TUTORIAL | Videomonitoramento

    O script vai azer todas as alteraesnecessrias de uma vez s.

    Daqui em diante, toda vez que vocinicializar o seu sistema, o Apache vaisubir automaticamente. Voc poderver a inter ace do ZoneMinder acessan-dohttp://127.0.0.1/zmdo seu navegador.

    IncioQuando aberto pela primeira vez, oprograma aparece com uma inter acesimples que ainda precisa ser conf-gurada ( gura 1 ). Preste ateno aovalor mostrado no campoDisk: . Eleindica o espao ocupado no discocomo porcentagem. Se voc pensaem operar vrias cmeras, esse valorprecisa ser o mais baixo possvel paraevitar que as gravaes em alta resolu-

    o ocupem toda a memria do disco,mesmo a taxas de rame aceitveis.Se tiver anexado algumas cmeras

    ao sistema, agora voc precisa inte-gr-las com o ZoneMinder. Testei o

    sistema com trs webcams USB di-erentes da Logitech e da Chicony.

    Para adicionar as cmeras ao Zone-Minder, clique no botoNew Monitor na janela principal. O programa agoraabre outra tela com quatro colunashorizontais no topo. A colunaSource ( gura 2 ) tem os parmetros do discorgido que precisa ser modifcado.

    O ZoneMinder acilita o processograas a uma erramenta que l osdados tcnicos da cmera. Para azerisso entre com o seguinte comandono terminal ( gura 3 ):$ zmu -d nome_do_equipamento

    -V 1 -q -v

    O nome do equipamento normal-mente /dev/videoX , no qual X umnmero que comea com zero. Oprograma agora mostra uma lista deespecifcaes do equipamento. Paradescobrir os parmetros necessrios, vatWindow Attributese preste ateno

    aos valores nas linhasWidth eHeight para resoluo em pixels. Na seoPicture Attributes , veja a linhaPalette e preste ateno na tabela de cores.Finalmente, no fnal do processo doprograma, ir encontrar a entradaFormat que lista os padres de TV(NTSC, PAL, SECAM).

    De posse dessas in ormaes, vocpode completar as lacunas necessriana janela de confguraoSourcedoZoneMinder. Assegure-se de que aentrada do campoCapture Method sejaVideo For Linux version 2 ; elesuporta mais ou menos todas as c-meras recentes. Depois de completaras entradas, clique no botoSave .

    Modo de operaoEm seguida, v at a abaGeneral(gura4 ), onde, na caixa de textoName , vocpode in ormar um nome intuitivo para localizao da cmera antes de def-nir o modo de operao do aparelho.Normalmente no necessrio modi-fcar a entradaSource TypeparaLocal para cmeras conectadas diretamentena mquina. No caso das cmeras IPque voc conecta sua intranet, pormdeve-se selecionarRemote . A opo

    Monitor do menu Function mostra

    Figura 4 A tela de congurao do ZoneMinder. Figura 5 Pr-conguraes facilitam o ajuste das cmeras PTZ e IP.

    Figura 6 Viso geral da atividade das cmeras.

  • 8/3/2019 LM_84_CE

    16/30

    57

    | TUTORIAL Videomonitoramento

    Linux Magazine #84 | Novembro de 2011

    o sinal de vdeo, mas no grava nada.Escolher oModecthabilita a detecode movimentao e gera um eventoquando o ZoneMinder registrar ummovimento. Neste caso a gravao iniciaautomaticamente, e no para at que o

    ZoneMinder decida que os movimen-tos cessaram. O prximo movimentona rente da cmera gera outro eventoe comea a gravar novamente.

    A terceira opo,Record , iniciauma gravao permanente e indepen-dente da movimentao. Se voc norestringir manualmente a durao dagravao, o programa gravar todos ossinais de video dessa cmera, criando,portanto, uma enorme quantidade de

    dados. A opoMocordcombinaRe-cordeModect . O ZoneMinder, ento,

    grava permanentemente e gera umevento sempre que comea a gravar;porm, se detectar algum movimentona rente da cmera, ele o lista emmaisculas na lista de eventos. Aopo fnal,Nodectsuporta o uso de

    detectores de movimentos externosque muitas cmeras incluem por pa-dro. Neste caso a cmera, e no oZoneMinder, que aciona os eventos.

    Aps selecionar o modo de opera-o, verifque a caixa de textoEnabled para ligar a cmera. Para defnir onmero de imagens por segundo queo ZoneMinder deve criar, necess-rio acrescentar entradas nos camposMaximum FPS e Alarm Maximum

    FPS . A primeira entrada se re ere operao normal e a segunda a umcaso de alerta. O nvel mximo dequadros por segundo para uma situ-ao de alerta deve ser mais alto doque para as operaes normais; assim,voc pode acompanhar a ao maisde perto no caso de haver um evento,alm de gravar com mais detalhes.Se seu computador or robusto evoc tiver espao de disco sufcien-te, az sentido usar valores de at 30

    ps aqui. Depois de preencher todosesses detalhes, clique emSave . Agoraa cmera est pronta para uncionar.

    O ZoneMinder tem um grandenmero de dispositivos que tem boasopes para cmeras profssionais IPou PTZ e placas de video suportadaspor ele. Clique emPresetsno cantodireito no alto da janela de confgura-o para encontr-las. No menu emcascataPreset( gura 5 ), selecione omodelo da cmera e as opes bsi-cas e clique emSave . O ZoneMinderusar essas confguraes, porm preciso especifcar o endereo IP paraa cmera e o modo de operao nocampoFunction . Normalmente, noh outras mudanas a serem eitas.

    Fontes e alvosNa janela do navegador, o ZoneMin-der mostra as ontes das imagens emuma lista. Note as entradas na colunaSource ( gura 6 ): os dispositivos emverde esto uncionando corretamente.Se vir uma cmera vermelha, h umproblema normalmente um erro deconfgurao. Nesse caso, clique emName para este campo e a imagemda cmera deve aparecer na janela domonitor. Se a janela estiver preta, ouse aparecer apenas um rame vazio, preciso reconfgurar a cmera. Paramodelos menos potentes, em geral

    unciona azer testes de resoluo evelocidade de rame.

    O janela do monitor ( gura 7 ) mos-tra tanto a imagem da cmera atualcomo a lista de eventos com duraoe nmero de rames. Quando vocclica em um evento na colunaName ,

    ele comea de novo. A seo acimana janela ( gura 8 ) ornece in orma-es gerais para a sequncia especfcade imagens e um menu no qual seprocessam as imagens se necessrio.

    Uma vez que o ZoneMinder, ini-cialmente, armazena os eventos como

    Figura 7 O ZoneMinder fornece umalista de eventos com cenascapturadas pela cmera.

    Quadro 1: Cmeras devigilncia: dicas e truquesPara usar o ZoneMinder ecazmen-te, preciso escolher as cmerase os seus locais cuidadosamente.Como uma capacidade limitada dearmazenamento no permite guar-dar toda a informao do monito-ramento, a maioria das cmeras devigilncia no comea a gravar at

    que se detecte algum movimento.Por isso, o ideal instal-las paramonitorar locais calmos.Em caso de uso em rea externa, preciso evitar rvores ou arbus-tos cobrindo a maior parte da reade vigilncia. Ambos iro se movercom o vento e disparar a lmagemo tempo todo. Se no for possveldeixar objetos mveis no impor-tantes fora do alcance da cmerade vigilncia, ser preciso denir assuas prprias zonas no ZoneMinder(veja a seo Zonas de alarme).

    As cmeras de vigilncia nunca de-vem monitorar uma rea com um n-gulo muito fechado, de cima. Identi-car as pessoas que esto nessa reanum piscar de olhos ser muito difcil.

    Ao invs disso, a cmera deve moni-torar de uma posio lateral elevada.Se usar cmeras de tomada, asse-gure-se que os os no esto vis-veis e de fcil alcance por pessoasno autorizadas. Cortar o o desa-bilitar a cmera de vigilncia, dei-xando o ZoneMinder no escuro. Figura 8 Janela de menu de execuo.

  • 8/3/2019 LM_84_CE

    17/30

    58 www. linuxmagazine .com.br

    TUTORIAL | Videomonitoramento

    uma sequncia de imagens em diret-rio temporrio, preciso executar um

    segundo passo se voc quiser gerar umvideo com eles. Para az-lo, clique emVideo no menu. Na janela que apa-rece ( gura 9 ), escolha as opes deque precisa. O ZoneMinder suportadiversas extenses populares de videoe permite que se escolha o tamanhodo video (no campoVideo Size ) e avelocidade do rame. Para propsitosdocumentais, escolha a opoRealparao campoFrame Rate , que corresponde gravao em tempo real.

    Depois de azer as mudanas ne-cessrias, clique emGenerate Video .Depois de criar o vdeo, ser abertauma tabela com as in ormaes dasequncia. Na coluna da direita sele-cione Actionpara defnir o que acon-tece na sequncia de vdeo. O video

    oi criado, mas no salvo: precisoselecionar o comandoDownloadnocampo Action . O ZoneMinder no-meia e guarda o video na pasta dedownloads do usurio no disco rgido. Zonas de alarmePara evitar disparar eventos no limiteda rea de vigilncia por exemplo,uma rua vizinha com tr ego intensoem uma rea de vigilncia em largaescala pode-se defnir zonas de alar-me baseadas na imagem da cmera.

    Para az-lo, clique na colunaZonespara a cmera na janela prin-

    cipal do ZoneMinder. Isso mostra

    uma janela com uma tabela quein orma as coordenadas nos eixos

    X e Y abaixo da imagem atual dacmera. O ZoneMinder sobrepeuma aixa verde na imagem da c-mera defnida pelas coordenadas natabela. Para modifcar a rea na qualos alarmes esto ativados, apenas ar-raste os pontos, e para modifcar o

    ormato da imagem, adicione maispontos ( gura 10 ).

    A tabela esquerda da cmeraserve para vrias outras confgura-es relacionadas programaode eventos ou alarmes. Ajustar asensibilidade do so tware impedequalquer movimento insignifcantede disparar um evento. O ZoneMin-der mostra alertas em sequncia nalista de eventos para que se possaidentifcar os eventos crticos numrelance. Novamente, preciso clicaremSavepara manter as alteraes.

    ConclusoO ZoneMinder permite que se aauma confgurao profssional desistema de monitoramento de videoque di cil superar nos quesitos su-porte amplo e opes de confgurao

    exveis. O programa o erece um de-sempenho bastante til em projetosgrandes com vrias cmeras. Ele un-ciona em discos rgidos antigos graasao seus recursos de ontes econmicas,apesar de todos os requisitos tpicos

    de processamento de vdeo.

    O nico lado ruim do so twareZoneMinder a alta de traduo

    para aqueles que precisam de umalngua estrangeira e de confguraespara algumas cmeras USB menosdesenvolvidas. Mas pelo ato de oZoneMinder ser um so tware livre em constante desenvolvimento,pode-se esperar dos mantenedoresque as raquezas do produto sejammelhoradas para uma verso utura.

    Mais informaes: [1] ZoneMinder: http://

    www.zoneminder.com/[2] Lista de compatibilidade

    ZoneMinder: http://www.zoneminder.com/wiki/index.php/Hardware_Compatibility_List

    [3] Lista de CompatibilidadeGSPCA: http://lwn.net/Articles/291036/

    [4] Lista de Compatibilidadede video Linux UVC:http://www.ideasonboard.org/uvc/#devices

    [5] Script de Congurao:http://www.zoneminder.com/forums/viewtopic.php?t=16628

    Gostou do artigo?Queremos ouvir sua opinio.Fale conosco [email protected] artigo no nosso site: http://lnm.com.br/article/6024

    rticl

    om.

    24

    oo.

    Figura 10 Zonas de alarme permitem denir as reasde monitoramento.

    Figura 9 Dilogo criado a partir da sequncia de imagensdo vdeo.

  • 8/3/2019 LM_84_CE

    18/30

    59

    | TUTORIAL Videomonitoramento

    Linux Magazine #84 | Novembro de 2011

    http://www.winlinuxday.com.br/http://www.winlinuxday.com.br/http://www.winlinuxday.com.br/http://www.winlinuxday.com.br/http://www.winlinuxday.com.br/http://www.winlinuxday.com.br/http://www.winlinuxday.com.br/
  • 8/3/2019 LM_84_CE

    19/30

    60 www. linuxmagazine .com.br

    TUTORIAL |Comunicador instantneo profissional

    Comunicador instantneo para uso prossional

    Se no pode venc-los... Para a maioria das empresas, o comunicador instantneo

    inimigo da produtividade, mas podemos torn-lo um aliado. por Adriano Matos Meier

    Dentre as di erentes ormas de secomunicar na Internet, passa-

    mos por aplicativos que mar-caram geraes, como o IRC (InternetRelay Chat ) e o ICQ (acrnimo deISeek You , em portugus eu te procu-ro). Na atualidade, os programas MSNMessenger, Google Talk e Skype estoentre os mais utilizados (alm, claro,das pginas de redes sociais).

    Normalmente as empresas e ins-tituies de ensino no permitem autilizao desses programas. De umlado esto os administradores da rede,confgurando frewalls e proxies (e ou-tras erramentas do seu arsenal) parabloquear as tentativas de utilizao.De outro esto os incansveis usu-rios, em busca de ormas de burlar osbloqueios da rede para bater um papocom os amigos em pleno expediente.Porm h um terceiro grupo, que vno IM uma oportunidade de aumen-tar a exibilidade e o dinamismo, eainda reduzir custos operacionais.

    O protocolo XMPPEm 1998, Jeremie Miller iniciou oprojeto Jabber, um protocolo abertopara troca de mensagens instantneasbaseado em XML. O principal rutodo projeto oi o servidor Jabberd. Em2002 o projeto oi ormalizado peloIETF com o nome de XMPP[1] .

    Atualmente outros servios uti-lizam o protocolo XMPP, como o

    Google Talk e o Facebook, e essa

    adeso s tende a crescer, visto quea comunidade continua a defnir

    vrias extenses para o protocolo.O ejabberdO ejabberd[2] um servidor de IMbaseado no protocolo XMPP. escri-to em Erlang/OTP, distribudo sob alicena GPLv2. Possui verses para ossistemas GNU/Linux, *BSD, Mac OS X e Microso t Windows. Possui aindauma inter ace web para a administrao,o que tambm pode ser eito via linhade comando. Tem suporte ao balance-amento de carga e armazenamento dedados distribudo (tolerncia a alhas),criptografa dos dados tra egados (SSL/ TLS), suporte a chat multiusurio e su-porte ao IPv6, alm de outros recursos.

    Instalao econguraoOs binrios do ejabberd podem serobtidos na pgina ofcial do proje-to [2] , mas tambm so encontra-dos nos repositrios das principaisdistribuies. Para uma instalaono Debian (e derivados) basta um

    apt-get install ejabberd . Existetambm um dispositivo virtual que

    ornece um servidor ejabberd, disponvel no site TurnKey Linux[3] .Primeiro deve-se editar o seu prin-

    cipal arquivo de confgurao comvi/etc/ejabberd/ejabberd.cfg . preci-so in ormar o nome do servidor (ncaso de domnios adicionais, deve-ssepar-los por vrgula):{hosts, ["ejabberd.empresa.com.br"]}.

    Nativamente o ejabberd utiliza umabase de dados Mnesia, mas tambm temsuporte ao MySQL e ao PostgreSQLSe or utilizar o PostgreSQL, necesrio instalar o pacoteodbc-postgresql .Para que o ejabberd utilize uma baseMySQL, a confgurao seria:{auth_method, odbc}.{odbc_server, {mysql, "server",

    "porta", "database", "username","password"}}.

    A base de dados pode ser utilizadapor exemplo, para registrar os dilogo

    e para armazenar as contas dos usurios (autenticao); porm, confgu-raremos o ejabberd para autenticar osusurios em uma base LDAP.

    Figura 1 Interface do servidor de IM.

    TUTOR

    IAL

  • 8/3/2019 LM_84_CE

    20/30

    61

    | TUTORIALComunicador instantneo profissional

    Linux Magazine #84 | Novembro de 2011

    Primeiro, preciso desativar omodo de autenticao interno (pa-dro), adicionando dois sinais deporcentagem para comentar a linha,que deve fcar da seguinte orma:%%{auth_method, internal}.

    Posteriormente, deve-se retirar ocomentrio das linhas re erentes autenticao no LDAP, alm de in-

    ormar os parmetros de acesso a ele:{auth_method, ldap}.{ldap_servers,

    ["ldap.empresa.com.br"]}.{ldap_encrypt, none}.{ldap_port, 389}.{ldap_rootdn, "cn=jabber,

    dc=empresa,dc=com,dc=br"}.{ldap_password, "senha123"}.{ldap_base, "ou=users,dc=empresa,

    dc=com,dc=br"}.{ldap_filter, "(Services=jabber)"}.

    Deve-se defnir pelo menos umusurio administrador do servidor.Este usurio ter acesso inter aceweb de administrao. Deve-se tam-bm in ormar o login do usurio (noLDAP) e o servidor:{acl, admin, {user,

    "administrador", "ejabberd.empresa.com.br"}}.

    Agora o servio deve ser reinicia-lizado para que as confguraesentrem em vigor, com/etc/init.d/ejabberd restart . Para acessar a in-ter ace de administrao basta aces-sar a URLhttp://ejabberd.empresa.com.br:5280/admin em seu navega-dor, in ormar o login e senha doadministrador, que neste caso [email protected] e a senha desse usurio. Atravsda inter ace ( gura 1 ) possvel con-fgurar e verifcar o uncionamentodo servidor, como os usurios queesto online e demais estatsticas.

    Comandos de consolePara verifcar os comandos de ad-ministrao disponveis, digiteeja-bberdctl . Por exemplo, se voc no

    or utilizar uma base LDAP para

    autenticar os usurios, ser preci-so registr-los. Para cadastrar umusurio o comando :ejabberdctl register usurio

    ejabberd.empresa.com.br senha

    Para verifcar o status do servidor:ejabberdctl statusPara verifcar os usurios conectados:

    ejabberdctl connected-users

    Para alterar a senha de um usurio:ejabberdctl set-password usurio

    ejabberd.empresa.com.br senha

    As portas padro utilizadas peloservidor ejabberd so a 5222/tcp

    (cliente-servidor), 5269/tcp (servidor--servidor) e a 5280/tcp (inter ace web).Na ocorrncia de problemas, os logsdo servio so registrados em/var/log/ejabberd/ejabberd.log .

    ClienteCom o servidor pronto preciso ins-talar e confgurar os clientes. Muitasso as possibilidades de clientes quesuportam o protocolo XMPP. Den-tre os mais utilizados est o Pidgin[4] , disponvel tambm para o Mi-croso t Windows e com suporte aoutras redes, como MSN, GoogleTalk, Yahoo, ICQ, IRC, entre outras.

    Por isso o Pidgin consideradoum comunicador universal. A suainter ace extremamente amigvel( gura 2 ) e possui uma srie de re-cursos interessantes, como uso detemas, suporte a mltiplas contas deacesso e diversas conversas em umanica janela, conversao com udioe vdeo, entre outros.

    Consideraes nais Aos que quiserem se apro undar noprotocolo XMPP, no site ofcial sobreo protocolo encontram-se bons livrossobre o assunto[5] . Existem outrosprojetos de servidores de mensageminstantnea baseados no protocolo XMPP, como o OpenFire[6] e o Pro-

    sody[7] , so dois bons exemplos.

    Gostou do artigo?Queremos ouvir sua opinio.Fale conosco [email protected]

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

    ssor

    co

    ?o.

    O autor Adriano Matos Meier ([email protected] ) Tecnlogo em Redes de Computadores ePs-Graduando em Gesto de Segurana daInformao. Atualmente analista de redes noSENAI de Santa Catarina. Tambm atua comoinstrutor de treinamento GNU/Linux.

    Mais informaes [1] XMPP: http://xmpp.org/[2] ejabberd: http://www.

    ejabberd.im/[3] Appliance ejabberd:

    http://www.turnkeylinux.org/ejabberd/

    [4] Pidgin: http://pidgin.im/[5] Livros sobre o protocolo

    XMPP: http://xmpp.org/about/books.shtml

    [6] OpenFire: http://www.igniterealtime.org/projects/openfire/

    [7] Prosody: http://prosody.im/

    Figura 2 O cliente Pidgin uma dasopes para redes XMPP

  • 8/3/2019 LM_84_CE

    21/30

    62

    REDES

    www. linuxmagazine .com.br

    REDES | Personalizao de software

    Nagios prossional

    Um passo alm doNagios OSS A OpService uma empresa brasileira que mostra como possvel criar um

    negcio a partir de um conhecido software de cdigo aberto, atravs da prestao de servios, personalizao e desenvolvimento de software. por Dario Bestetti

    Que o Nagios a plata ormade monitoramento de redese sistemas mais popular domundo open source, todo

    mundo j sabe. Mesmo com o surgi-mento de vrias outras solues, tocompletas quanto ou mais ele, aindaassim o Nagios possui mais de 50%do mercado de instalaes desse tipode plata orma nas in raestruturas deTI. A OpServices[1] trabalha como ornecimento de servios baseadosna plata orma Nagios[2] desde 2003e, desde ento, temos percebido umasrie de reas onde o Nagios OSS (averso em cdigo aberto) no aten-de plenamente s necessidades dosclientes. No que isso seja um gran-de problema para a plata orma poisessa nunca oi a proposta do Nagios.Seu oco principal est no desen-volvimento de um ncleo (core ) demonitoramento de alto desempenho,

    exvel e escalonvel. Ainda que o so tware em sua verso

    padro seja uncional para a grandemaioria dos ambientes de TI, e que

    suas necessidades bsicas de monito-

    ramento (quando ele aplicado a umambiente comercial onde exista ummaior nvel de maturidade na ques-to de governana de TI), o Nagiosdeixa a desejar. Percebe-se isso espe-cialmente em algumas reas, como:

    alta de aderncia s melhoresprticas de gesto de TI, como o ITIL;

    alta de relatrios mais complexossobre disponibilidade, planejamentode capacidades e SLAs;

    inter ace grfca bastante tcnicae simplifcada;

    alta de uma erramenta grfcapara confgurao da plata orma;

    alta de suporte inter ace mul-tilinguagem.Depois de vrios anos instalandoo Nagios OSS em clientes, muitosdos clientes da OpServices passarama demandar recursos mais avanadosna plata orma, s quais a comunidadede so tware livre no poderia atenderna velocidade necessria. Dessa orma,iniciamos um projeto de customizaoda plata orma bsica que resultou noOpMon, uma plata orma de geren-

    ciamento de redes e sistemas basea-

    da no core do Nagios OSS, mas queendereava as demandas dos clientesnas reas no atendidas.

    Uma das primeiras questes queabordamos oi a da multilinguagemPorm, como no bastava apenas traduzir o Nagios para o portugus (oque fzemos na primeira implantaodo OpMon), seria importante tam-bm criar uma nova inter ace grfcapara ele, baseada no PHP e no maisem CGIs. Para isso, contratamos umaconsultoria para trabalharmos a usa-bilidade do so tware. O objetivo serno somente ter uma inter ace menostcnica, mas tambm torn-la maisintuitiva no seu uso e con erir-lhe suporte a mltiplas linguagens. Assim, OpMon criou uma camada de inter aceabsolutamente independente e agregoudiversos recursos modernos de usabildade, como a capacidade de criao defltros de pesquisa, avoritos, atalhos simplifcao da navegao (gura 1 ).

    Outro ponto muito importante oi acriao de mdulos de relatrios avanados e de gerenciamento de nveis de

    servios (SLA/SLM). Um dos itens

  • 8/3/2019 LM_84_CE

    22/30

    63

    | REDESPersonalizao de software

    Linux Magazine #84 | Novembro de 2011

    mais importantes endereados nessaase oi a criao de cortes de tempo

    na gerao de relatrios. Por exemplo,se voc desejar um relatrio sobre ataxa de utilizao da sua Internet noltimo ms, talvez se surpreenda ao

    saber que esta esteja em torno de 60%,pois o Nagios contabiliza o tempo emperodos de 24 horas, ou seja: durantea madrugada e nos fnais de semanaa taxa de utilizao de sua rede possi-velmente seja muito menor, podendoassim apresentar, na mdia mensal, umnmero que no traduz a realidade deuso em horrio comercial. Na hora dejustifcar um investimento para o up-grade de seu link de Internet, talvez lhe

    altem dados para justifc-lo. Pode ser,porm, que durante o horrio comer-cial a utilizao esteja sempre perto de100%. Assim, o OpMon estabeleceu apossibilidade da criao de cortes detempo customizados, permitindo que ousurio, ao emitir um relatrio, estabe-lea qual o corte de tempo que deseja,por exemplo, apenas durante o horriocomercial (das 8h s 18h, de segundaa sexta- eira), acilitando a justifcati-va de investimentos de acordo coma realidade de sua empresa ( gura 2 ).

    Com o armazenamento de in or-maes de desempenho dos itens co-letados em uma base dados MySQL,o OpMon permite a gerao de rela-trios de capacidades complexas, in-cluindo a gerao da previso uturado esgotamento de recursos ( futureprojection ), o monitoramento de li-nhas de tendncias (trend lines ) e acapacidade de prover a gerao do

    monitoramento atravs de linhas debase (baseline ). Este modelo permiteque o monitoramento seja eito de or-ma adaptvel e no somente baseadoemthresholdsfxos. Explico: em ummonitoramento tradicional, o envio dealarmes baseado em limites estabele-cidos de orma esttica. Por exemplo,ao se chegar a uma utilizao de 80%de CPU, um alarme gerado automa-ticamente; no monitoramento adap-

    tvel, porm, podem-se utilizar dados

    histricos para estabelecer o limite de

    orma dinmica. Pode ser que todas assextas- eiras, das 18h s 22h, a utilizaode CPU esteja realmente acima de 80%em uno de algum processamentohabitual e absolutamente normal. Nomonitoramento tradicional, portan-to, os alarmes seriam gerados todasas sextas- eiras, entre 18h e 22h. J nomonitoramento adaptvel, baseada nosdados histricos, esse comportamentoseria considerado normal e nenhum

    also alarme seria gerado. claro quenenhuma das abordagens per eita,mas ambas podem ser combinadas como objetivo de reduzir drasticamente agerao de alsos positivos.

    Ainda no terreno do monitoramen-to inteligente, o OpMon possui ummdulo auxiliar para a correlao de

    eventos. Este um tpico at mais

    avanado do que o monitoramentoadaptvel, pois permite a criao deregras complexas para correlacionaros eventos que so centralizados naplata orma e gerar alarmes para eles.Partindo do pressuposto que o OpMon um grande repositrio de eventos,o EventGuard permite a criao deregras complexas para a correlaode eventos atravs de uma inter acegrfca intuitiva. Talvez uma de suasmaiores aplicaes seja na correlaode eventos de segurana, nos quaisacessos aparentemente desconexospodem na verdade ser correlacionadoscom um ataque externo de hackers emsua rede ( gura 3 ).

    Talvez o mdulo mais interessantedo OpMon visualmente seja o editor

    Figura 2 O OpMon exibe anlises segundo cortes de tempo.

    Figura 1 A interface do Nagios foi toda recriada, e pode ser iutilizada mesmosem o OpMon.

  • 8/3/2019 LM_84_CE

    23/30

    64

    REDES

    www. linuxmagazine .com.br

    REDES | Personalizao de software

    de dashboards (painis de contro-le), o OpServices DaVINCI. Esteoi criado com o intuito de permitir

    ao usurio da plata orma OpMoncriar, de orma grfca e interativa,dashboards(painis) representativosdos itens monitorados. Com a erra-menta de edio do DaVINCI pos-svel elaborar dashboards complexosque exibem em tempo real o statusde seus elementos de in raestruturae, principalmente, de processos denegcios, o que representa um pas-so alm do monitoramento de itensbsicos de in raestrutura de TI. O Da- VINCI per eito para dar visibilidadea seu ambiente de TI e de negciosem grandes monitores de LCD. Ele

    permite criar estes dashboards sema necessidade de escrever nenhumalinha de cdigo, apenas utilizandosua inter ace grfca avanada. Esseaplicativo pode ainda ser baixado,adquirido e utilizado em qualquerambiente Nagios, sem a necessida-de de se possuir o OpMon ( gura 4 ).

    Um dos pontos racos do Nagios sua confgurao complexa, todaela baseada em diversos arquivos detexto. Ainda que bastante abrangen-te, o Nagios requer um pro undoconhecimento de seus arquivos deconfgurao. Existem vrios proje-tos de so tware livre que abordam, deuma orma ou outra, essa raqueza daplata orma. A OpServices desenvol-

    veu uma erramenta de confgurao100% web para viabilizar a confgurao do OpMon sem a necessidadede se conhecer os vrios arquivos deconfgurao do Nagios, alm dearmazenar estas confguraes em

    bases de dados, o que con ere maioacilidade ao armazenamento e recuperao das confguraes ( gura 5 ).

    Outro ponto importante do Op-Mon em relao ao Nagios sua aderncia s melhores prticas de gestoespecifcadas pela ITIL (InformationTechnology Infrastructure Library ).Ele possui erramentas que permitemcriar Catlogos de Servio, alm dagerao e monitoramento de acordos

    de nveis de servio (SLA/SLM) deorma nativa, representveis no Da VINCI, exibindo o impacto em umdeterminado Servio de TI quandoda alha de um dos elementos quecompem aquele servio no catlogoO OpMon possui ainda uma orte integrao com plata ormas deServiceDeske CMDB, agregando melhoresprticas de gerncias de do ITIL, taiscomo Cumprimento de Requisiode Servio, Gerenciamento de Proble-mas, Gerenciamento de Incidentes,Gerenciamento de Confgurao e Ativos, Gerenciamento de Mudanase Gerenciamento do Conhecimento.

    Um servidor de rede descoberto pe-los mtodos de discovery do OpMonpor exemplo, pode ser importado parao monitoramento, tornando-se um itemde confgurao gerenciado e includono CMDB, e mantendo um vnculode integrao entre os dados coletadono monitoramento, as in ormaesde hardware e so tware provindas dprocesso ativo de inventrio e as aee etuadas no Service Desk durantetodo o ciclo de vida dos itens de confguraes e servios do OpMon. Aqualquer momento possvel consul-tar no CMDB o histrico de versesdeste e de outros itens de confguraoque esto ou oram gerenciados pelOpMon, obtendo conhecimento de

    in ormaes vinculadas, tais como:

    Figura 3 O EventGuard permite criar novas regras avanadas de maneira fcil.

    Figura 4 A interface DaVINCI pode ser baixada e usada sem o uso do OpMon.

  • 8/3/2019 LM_84_CE

    24/30

    65

    | REDESPersonalizao de software

    Linux Magazine #84 | Novembro de 2011

    dependncias entre os prprios itensde confgurao e servios, requisiesatendidas, resoluo de incidentes,mudanas e etuadas, resoluo deproblemas, entre outras in ormaesdisponveis na base de conhecimento.Isto possvel porque todos esses insu-mos continuam registrados no CMDBmesmo que os itens de confguraotenham sido removidos do OpMon,provendo in ormaes importantes queauxiliaro o desenho de novos servios.

    O OpMon implementou, ao longodos anos, diversas melhorias na ques-to da escalonabilidade e desempe-nho do Nagios, sendo que vrias delas

    oram enviadas como contribuiespara a equipe que mantm o core doNagios. Algumas dessas melhorias

    oram incorporadas ao cdigo fnaldo Nagios OSS; outras fcaram res-tritas plata orma OpMon. Talvez amaior delas, em termos de escalona-bilidade e desempenho do OpMon,resida na utilizao do Gearman[3] como plata orma de distribuio doprocessamento do Nagios. Com aincorporao do Gearman na pla-ta orma OpMon oi possvel obterganhos de at 73% na capacidade degerenciamento de itens de confgura-o da plata orma, alm de garantiruma escalonabilidade muito alm doque seria possvel com a utilizao

    da plata orma padro.

    Resumindo, o Nagios OSS umaexcelente plata orma para gerenciarredes e sistemas, mas como todo so t-ware, no a panacia para todasas necessidades das empresas, mes-mo com uma imensa variedade deprojetos aderentes ao Nagios. Comas estruturas de TI cada vez maisenxutas, a necessidade de acilitaras tare as dos CIOs e administrado-res de redes ez com que o OpMonevolusse no sentido de o erecer a-cilidades de uso, implementao erecursos avanados e integrados, aindaassim mantendo a compatibilidadecom o core do Nagios e sendo 100%compatvel com a imensa bibliotecade plugins disponveis livremente noNagios Exchange.

    Figura 5 A interface grca permite alterar as conguraes do Nagios semlidar com arquivos de texto.

    Mais informaes [1] OpServices: http://

    www.opservices.org/

    [2] Nagios: http://www.nagios.org/

    [3] Gearman: http://gearman.org/

    Gostou do artigo?Queremos ouvir sua opinio.Fale conosco [email protected]

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

    soart

    .co

    97

    gio.

    PROTEJA SUA REDECONTRA ATAQUES

    INTERNOS,EXTERNOS E OUTRAS

    AMEAAS QUE

    COLOCAM EM RISCOOS SEUS DADOS.

    ADQUIRA O SEUNAS MELHORES BANCAS

    OU EM NOSSALOJA VIRTUAL

    LNM.COM.BR/SHOPPING

    http://lnm.com.br/shoppinghttp://lnm.com.br/shoppinghttp://lnm.com.br/shoppinghttp://lnm.com.br/shoppinghttp://lnm.com.br/shoppinghttp://lnm.com.br/shoppinghttp://lnm.com.br/shoppinghttp://lnm.com.br/shoppinghttp://lnm.com.br/shoppinghttp://lnm.com.br/shoppinghttp://lnm.com.br/shoppinghttp://lnm.com.br/shoppinghttp://lnm.com.br/shoppinghttp://lnm.com.br/shoppinghttp://lnm.com.br/shoppinghttp://lnm.com.br/shopping
  • 8/3/2019 LM_84_CE

    25/30

    73

    | ANLISEParties GUID

    Linux Magazine #84 | Novembro de 2011

    Substituio do MBR pela tabela de partio GUID

    Dana dos discos Discos de alta capacidade usam a tabela de partio GUID ao invs

    do antigo master boot record, mas os aplicativos fdisk usuais do Linux no conseguem trabalhar com o novo esquema de particionamento.

    Veja como contornar isso usando as ferramentas certas. por Hans-Peter Merkel

    Esbarrar em um limite. Esse um tema constante na histriados discos rgidos. Primeirooi a BIOS, depois as controladoras

    [1] e at os sistemas operacionais.Nmero mximo de setores e ca-beas, limites no particionamentoe no nmero de parties, reas deboot... a lista no tem fm.

    Nos anos 1980, o MS DOS 3.2orou os usurios a dividir seus ca-

    ros discos em parties de 32 MB.Naquela poca, um disco rgido de85 MB precisaria de pelo menos trsparties ( gura 1 ).

    Dois discos modernos Seagate ST

    33000651 AS, gentilmente cedidosLinux Magazine pelo ornecedorpara os testes deste artigo, contamcom 3 TB cada, o que ultrapassa oatual limite da tabela de partio dotipomaster boot record(MBR) paraPCs ( gura 2 ) [2] .

    O antigo esquema usado no parti-cionamento MBR CHS (cilindros,cabeas e setores; na sigla em ingls) chegou ao fm da estrada h muitas

    primaveras, aos 8 GB (mximo de 1.024

    cilindros x 255 cabeas x 63 setores).Desde ento, a BIOS e o sistema ope-racional tm usado o padro de 254cabeas, 63 setores e 1.023 cilindros,usando 4 bytes na tabela de partiopara defnir posio e tamanho dossetores (endereamento de blocolgico, ou LBA, na sigla em ingls).

    O mundo dos PCs vinha seguindotranquilo com esse truque, mas ostempos esto mudando (ou j mu-daram), pois um tamanho de (232-1setores) X 512 bytes resulta em ummximo de 2,2 TB para uma partioe 4 TB para um disco[3] [4] .

    Em outras palavras, se voc quiser

    usar todo o espao de um disco deltima gerao com 3 TB, precisarrealizar algumas mudanas grandes.Bem-vindo ao mundo da tabela departio GUID!

    A tabela de partio GUID (GPT, nasigla em ingls) a sucessora da tabelaMBR, sendo parte da EFI (ExtensibleFirmware Interface )[5] . A especifcaoEFI a verso independente de orne-cedores conhecida como Unifed EFI

    (UEFI) substitui e padroniza as partes

    da BIOS responsveis por inicializar eprocessar programas pr-boot. A GPTusa tabelas MBR do tipo LBA, mas comvalores de 64-bits, permitindo assim at8 ZB (1 zettabyte = 1 bilho de terabytes)para um disco com setores de 512 bytes. Alm disso, a GPT pode gerenciar at128 parties ( gura 3 ) [6] .

    Quadro 1: Inicializao apartir de discos GPTOs servidores-padro, mainframese computadores Apple mais recen-tes cumprem a especicao EFI einicializam a partir de um disco par-ticionado com GPT. Diferentementedisso, as placas-me de desktopspara CPUs Intel ou AMD atualmenteinicializam quase que exclusivamen-te atravs das rotinas MBR da BIOS.

    Felizmente, os usurios Linux contamcom uma soluo no GRUB 2 pararesolver esse problema. O carrega-dor de boot fornece um ambiente EFIpara o computador, e o Linux podeassim inicializar a partir de um discoGPT sem problemas. Mas tenha cui-dado: verses anteriores do GRUBno contam com esse recurso.

    ANLI SE

  • 8/3/2019 LM_84_CE

    26/30

    74 www. linuxmagazine .com.br

    ANLISE |Parties GUID

    Mo na massaO kernel Linux compatvel coma atual gerao de discos de alta ca-pacidade e GPTs a partir da verso2.6.25, embora Linus Torvalds tenhadepreciado a EFI como sendo uma

    leso cerebral da Intel[7] . Nossosistema de testes enderea o discoSeagate como/dev/sdh ; a listagem1 mostra a sada do comandodmesg .

    Se tentar particionar uma GPTcom as populares erramentasfdisk ou cfdisk , voc no chegar mui-to longe, mas o aplicativo grf-co GParted trabalha com GPTs( gura 4 ). Aqui, usarei esse aplicativopara criar uma nica grande partio

    no primeiro disco.No GParted, voc primeiro se-leciona Dispositivo / Criar Tabelade Partio . Isso leva a uma janelacom um grande aviso de que todosos dados sero perdidos. Na mesmajanela, clique no tringulo ao ladode Advanado , e no menu drop-downao lado deSelecione o tipo da novatabela de partio , e escolhaGPT .

    A opoPartio / Novaabre cami-nho para a criao de uma partioprimria com sistema de arquivosext4. Depois de clicar em Adicionar ,uma mensagem avisa que isso pode

    levar algum tempo, dependendo donmero e do tamanho das operaes.

    Em nosso laboratrio, isso oi umapausa para o ca de 10 minutos. Nofnal, fquei com 3 TB de espao, me-nos um overhead de gerenciamento

    signifcativo, de 44,05 GB (listagem 2 ). Alistagem 3 mostra o MBR 512-bytes,que a GPT usa e corretamente pre-enche por questes de compatibili-dade. O0x55AAnalinha 5 indica o fmdo MBR. O segundo setor da GPTcontm os dados de cabealho para oparticionamento GUID (linhas 7 a 12 ). As entradas de partio aparecem naposio0x400 , contendo:

    Tipo de partio (16 bytes)

    Partio GUID (16 bytes) Incio da partio (8 bytes) Fim da partio (8 bytes) Atributos (8 bytes) Nome da partio (72 bytes)O GUID (Globally Unique Identi-

    fer ) cuida dos nomes na GPT, sendouma codifcao 16-bytes, de tipo nico,do tipo de partio. O sistema de testesagora tem uma partio de dados graasao GParted. O GUID correspondenteEBD0A0A2-B9E5-4433-87C0-68B6B72699C7 . A implementao nalinha 14 alternaalguns itens no ID (isso lembra umpouco a arquitetura do tipoBig Endian-

    Little Endian). Consequentemente, aEFI armazena uma cpia da GPT nofnal da mdia de dados como backup. Assim, voc pode restaurar uma GPTprimria danifcada a partir dessa cpiaSe voc precisar converter um disco dGPT para MBR, tambm precisarapagar a GPT secundria, seno o sistema vai continuar a identifcar o discocomo uma partio GPT.

    Figura 1 Velho e novo lado a lado: um

    disco rgido grande no tama-nho mas com apenas 85 MB,e um HD SATA 3 TB de ltimagerao da Seagate.

    Figura 2 Estrutura do master boot record. A tabela de partio com quatro entradas tem apenas 4 bytes por nmero de setor.

  • 8/3/2019 LM_84_CE

    27/30

    75

    | ANLISEParties GUID

    Linux Magazine #84 | Novembro de 2011

    Outras ferramentasOs administradores de servidoresque dependem da linha de comandono acharo o GParted muito til. Atualmente h poucos substitutos do

    disk que aceitam GPT. O mais in-

    teressante o GPT disk project[8] ,que depende dos programasgdisk ,sgdisk e fixparts . A verso atual doUbuntu tem apenas ogdisk em seurepositrio, ento az mais sentidopegar todos os pacotes diretamentedo openSUSE Build Service[9] .

    Depois de instalar esse conjuntode erramentas, voc pode verifcare modifcar o disco. O comandogdisk /dev/sdh

    retorna o seguinte em relao a umnovo disco:Partition table scan:

    MBR: not presentBSD: not presentAPM: not presentGPT: not present

    No menu de texto, a opop retorna atabela de partio (listagem 4 ), enquan-to a opoo primeiro exibe um alertade segurana, depois cria uma tabelaGPT. A oponpermite que voc crieuma nova partio do tamanho do dis-co, como fz com o GParted antes. OGdisk tambm d acesso a algumasopes GUID que o GParted no tem.

    Usei o valor-padro de0700para da-dos Linux/Windows e tecleiw("Writetable to disk and exit" ). No nosso labo-ratrio, usei omkfs.ext4para ormatara partio. Na linha de comando, todoo processo levou trs minutos menosdo que com o GParted. A GPT cria-da fcou idntica do GParted, comorevelou um teste comddexxd .

    MBR para GPT O Gdisk pode converter discos parti-cionados com MBR para GPT, o queacaba com a necessidade de copiar erestaurar o contedo. A opor levaao menu de recuperao e conver-so. Neste teste, usei um disco antigo

    de 200 GB com uma partio MBR.

    Listagem 4: Informaes de parties do gdisk01 Disk /dev/sdh: 5860533168 sectors, 2.7 TiB02 Logical sector size: 512 bytes03 Disk identifier (GUID): 0AE667A2-818F-4670-A328-500021C76A7304 Partition table holds up to 128 entries05 First usable sector is 34, last usable sector is 586053313406 Partitions will be aligned on 2048-sector boundaries07 Use l on the experts menu to adjust alignment08 Last sector (2048-5860533134, default =5860533134)

    or {+-}size{KMGTP}:09 Current type is Linux/Windows data10 Hex code or GUID (L to show codes, Enter =0700):

    Listagem 3: dd if=/dev/sdh | xxd (trecho)01 [...]02 00001c0: 0100 eefe ffff 0100 0000 ffff ffff 0000 ................03 00001d0: 0000 0000 0000 0000 0000 0000 0000 0000 ................04 00001e0: 0000 0000 0000 0000 0000 0000 0000 0000 ................05 00001f0: 0000 0000 0000 0000 0000 0000 0000 55aa ..............U.06 [...]07 0000200: 4546 4920 5041 5254 0000 0100 5c00 0000 EFI PART....\...08 0000210: 0e0f 49ee 0000 0000 0100 0000 0000 0000 ..I.............09 0000220: afa3 505d 0100 0000 2200 0000 0000 0000 ..P]...........10 0000230: 8ea3 505d 0100 0000 cbb9 6e3f 0765 a746 ..P]......n?.e.F11 0000240: a7c2 70a1 3db8 25c4 0200 0000 0000 0000 ..p.=.%.........12 0000250: 8000 0000 8000 0000 6afb 3a17 0000 0000 ........j.:.....13 [...]14 0000400: a2a0 d0eb e5b9 3344 87c0 68b6 b726 99c7 ......3D..h..&..15 0000410: 6903 b666 b91c 7646 a8dd e9d1 d7c6 bc5a i..f..vF.......Z16 0000420: 0008 0000 0000 0000 ff9f 505d 0100 0000 ..........P]....

    Listagem 2: fdisk -lu depois do particionamento 01 Disk /dev/sdh: 3000 GB, 3000590369280 bytes02 255 heads, 63 sectors/track, 364801 cylinders, total 5860528065 sectors03 Units = sectors of 1 * 512 = 512 bytes04 05 Device Boot Start End Blocks Id System06 /dev/sdh1 2048 5860532223 2930272033 83 Linux07 Warning: Partition 1 does not end on cylinder boundary.

    Listagem 1: O kernel detecta discos de 3 TB01 [782663.410960] ata6: SATA link up 6.0 Gbps

    (SStatus 133 SControl 300)02 [782663.445923] ata6.00: ATA-8: ST33000651AS, CC44, max UDMA/13303 [782663.445931] ata6.00: 5860533168 sectors,

    multi 0: LBA48 NCQ (depth 31/32)04 [782663.446811] ata6.00: configured for UDMA/13305 [782663.446830] ata6: EH complete06 [782663.447076] scsi 7:0:0:0: Direct-AccessATAST33000651ASCC44

    PQ: 0 ANSI: 507 [782663.447507] sd 7:0:0:0: Attached scsi generic sg9 type 008 [782663.447585] sd 7:0:0:0: [sdh] 5860533168 512-byte logical

    blocks: (3.00 TB/2.72 TiB)09 [782663.447780] sd 7:0:0:0: [sdh] Write Protect is off10 [782663.447788] sd 7:0:0:0: [sdh] Mode Sense: 00 3a 00 0011 [782663.447928] sd 7:0:0:0: [sdh] Write cache: enabled, read

    cache: enabled, doesnt support DPO or FUA12 [782663.448846] sdh: unknown partition table13 [782663.474623] sd 7:0:0:0: [sdh] Attached SCSI disk

  • 8/3/2019 LM_84_CE

    28/30

    76 www. linuxmagazine .com.br

    ANLISE |Parties GUID

    Depois da converso, o comandogdisk /dev/sde retornou o seguinte:

    Partition table scan:[...]

    Found valid GPT with protectiveMBR; using GPT.

    A listagem 5 mostra a sada daerramenta orensemmlsdo pacote

    sleuthkit [10] . A linha 2 confrmaque a converso oi bem sucedida. A entrada de partio dalistagem 6 interessante: o tipo de dados estdisponvel tanto no GUID quanto ementrada de texto, entre aslinhas 4 e 6 .

    GPT para MBR O Gdisk tambm pode converter deGPT para MBR. Como, em algunscasos, isso no vai uncionar, bom sercuidadoso. Aps reconverter o discoque tinha trans ormado em GPT, ogdisk retornou a sada dalistagem 7 .Neste ponto, o programasgdisk dopacote GPT disk til para reparosde baixo nvel.

    ClustersOs discos rgidos convencionais arma-zenam dados em setores de 512 bytes.Os sistemas operacionais e seus sistemasde arquivos agrupam mltipos setorespara ormar um cluster. Normalmente,sero agrupados oito setores, resultandoem 4.096 bytes. Para um desempenhomelhor, os discos de alta capacidadeagora usam setores de cluster de 4.096bytes internamente (os ornecedoresgeralmente se re erem a eles comodiscos "4k"). Os discos Seagate usa-

    dos em nossos testes eram desse tipo.Para manter a compatibilidadeexterna com a BIOS, a lgica inter-na do disco converte os clusters devolta para setores de 512-bytes. Paraevitar lentido devido a essa adapta-o de unidades de medida entreo sistema operacional e o disco osclusters de 4 KB do disco e do siste-ma de arquivos precisam coincidirper eitamente, tanto para parties

    MBR quanto para GPT.

    Se esse no or o caso, os resulta-dos podem ser desastrosos: se voctiver uma poro de 2.048 bytes e osistema operacional quiser gravarum cluster no disco, o disco preci-sa gravar dois clusters pela metadefsicamente, ocupando assim doisclusters inteiros. Os discos SSD somais a etados por esse problema dealinhamento, pois os ciclos de gra-vao sobrepostos vo disparar umciclo de leitura-modifcao-gravaono drive ash.

    Incio da partioEsse problema de desalinhamentode unidades de medida entre disco

    e sistema operacional mais umaexceo do que a regra. A Microso t a responsvel por essa situao,j que as erramentas de particio-namento desde o MS DOS at oWindows XP comeam o particio-namento imediatamente depois doMBR, no setor 63. Os discos parti-cionados com esse mtodo estarosempre desalinhados. Se a primeirapartio comear no setor 64, serpossvel obter grupos completos de 4.096 blocos. Assim, o Fdisk no Li-nux imita esse comportamento porquestes de compatibilidade.

    A Microso t fnalmente colocouum fm no problema com o Windows Vista e agora permite que a primeirapartio comece no setor 2.048 emvez do 63. Dependendo da versodo disk que voc usa no Linux, ser

    preciso desabilitar a compatibilida-de DOS atravs de uma opo delinha de comando. Felizmente, as

    erramentas que podem criar umaGPT usam todas o padro de 2.048como setor inicial.

    Esse comportamento exatamen-te o que percebi durante os testespara este artigo: alinha 6 dalistagem2 mostra2048como setor inicial, o

    Figura 3 Estrutura GPT. Um cabe-alho de 100 bytes segueo padro MBR para com-patibilidade com sistemasoperacionais anteriores. Atabela de partio usa 32blocos para armazenar osdados de um mximo de128 parties de 128 bytes.

    Figura 4 O GParted detecta um disco no particionadode 3 TB sem problemas.

  • 8/3/2019 LM_84_CE

    29/30

    77

    | ANLISEParties GUID

    Linux Magazine #84 | Novembro de 2011

    que indica que o alinhamento estper eito para o primeiro disco de 3TB. Mas preciso ter cuidado comdiscos que tenham sido usados antes. Alinha 10 da listagem 5 revela queuma GPT tambm pode comear no

    setor 63 em vez de 2.048. Deve-se terem mente que converti o segundodisco a partir de um esquema MBRpara GPT; isso no alterou os limitesda partio no setor 63.

    H muita discusso sobre se esseproblema to ruim na prticaquanto parece em teoria, j que osdiscos modernos usam tcnicas demapeamento secretas e especfcase tambm porque os sistemas opera-

    cionais e seus sistemas de arquivosusam diversos bu ers e otimizaes.Dito isso, defnir setores de 4 KBna partio uma coisa boa. Osadministradores devem habilitaro recurso.

    Concluso A era da GPT defnitivamente come-ou. Os discos modernos precisamdessas novas tabelas para ir alm dos2,2 TB. Assim, os administradoresdevem manter distncia do disk porora, enquanto erramentas como oGParted ajudam a tapar o buraco.

    As placas-me de desktops notm problema para inicializar o Li-nux a partir de um disco GPT, como carregador de boot GRUB 2. Emtermos de desempenho, precisomanter os olhos abertos: a maioriados discos de ltima gerao usaclusters de 4 KB internamente emvez de setores de 512 bytes, sendoalgo que voc no vai notar com oesquema LBA; contudo, isso podea etar a velocidade da partio nopior das hipteses.

    Gostou do artigo?Queremos ouvir sua opinio.Fale conosco [email protected]

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

    rticl

    co .

    92

    io.

    Listagem 7: gdisk /dev/sde01 GPT fdisk (gdisk) version 0.7.10203 Partition table scan:04 MBR: MBR only05 BSD: not present06 APM: not present07 GPT: not present0809 ************************************************************10 Found invalid GPT and valid MBR; converting MBR to GPT format.11 THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by typing q if12 you dont want to convert your MBR partitions to GPT format!13 ************************************************************1415 Exact type match not found for type code A400; assigning type code for16 Linux/Windows data

    Listagem 6: dd if=/dev/sde | xxd (trecho) 01 0000400: a2a0 d0eb e5b9 3344 87c0 68b6 b726 99c7 ......3D..h..&..02 0000410: 42c4 6d88 c9f9 c84c a33d a0a6 ceb3 2bf3 B.m....L.=....+.03 0000420: 3f00 0000 0000 0000 c0dd 4917 0000 0000 ?.........I.....04 0000430: 0000 0000 0000 0000 4c00 6900 6e00 7500 ........L.i.n.u.05 0000440: 7800 2f00 5700 6900 6e00 6400 6f00 7700 x./.W.i.n.d.o.w.06 0000450: 7300 2000 6400 6100 7400 6100 0000 0000 s. .d.a.t.a.....

    Mais informaes: [1] Interface ST506 de 1982: http://en.wikipedia.org/wiki/ST506[2] MBR: http://en.wikipedia.org/wiki/Master_Boot_Record[3] Tabela de partio MBR: http://en.wikipedia.

    org/wiki/Partition_table[4] FAQ: Drive Partition Limits: http://www.uefi.org/

    learning_center/UEFI_MBR_Limits_v2.pdf[5] EFI e UEFI: http://developer.intel.com/technology/

    efi/ ; http://www.uefi.org/home/[6] GPT: http://en.wikipedia.org/wiki/GUID_Partition_Table[7] Linus e o Extensible Firmware Interface: http://

    kerneltrap.org/node/6884[8] GPT fdisk: http://www.rodsbooks.com/gdisk/[9] GPT fdisk do openSUSE Build Service: https://build.opensuse.

    org/package/show?package=gptfdisk&project=home%3Asrs5694[10] Sleuthkit: http://sleuthkit.org/

    Listagem 5: mmls /e3v/sde 01 GUID Partition Table (EFI)02 Offset Sector: 003 Units are in 512-byte sectors04 05 Slot Start End Length Description06 00: Meta 0000000000 0000000000 0000000001 Safety Table07 01: -- 0000000000 0000000062 0000000063 Unallocated08 02: Meta 0000000001 0000000001 0000000001 GPT Header09 03: Meta 0000000002 0000000033 0000000032 Partition Table10 04: 00 0000000063 0390716864 0390716802 Linux/Windows data11 05: -- 0390716865 0390721967 0000005103 Unallocated

  • 8/3/2019 LM_84_CE

    30/30

    http://www.bull.com.br/