MADDOG p.26
CEZAR TAURION p.29
AUGUSTO CAMPOS p.18
Memórias de uma longa carreira em computação
Conheça os 50 anos de história dos mainframes
Canonical rumo à carreira solo
NÚ ED M IÇÃ ER O O MEDIALINX 10 0 # 100 Março 2013
A REVISTA DO PROFISSIONAL DE TI
MAINFRAMES CASE ALFRESCO p.26 A Construcap agilizou seus projetos com o Alfresco
LINUX PARK 2008 p.28 Iniciada em Porto Alegre a temporada de seminários Linux Park de 2008
CEZAR TAURION p.34 O Código Aberto como incentivo à inovação
#44 07/08
00044
R$ 13,90 € 7,50
A REVISTA DO PROFISSIONAL DE TI
9 771806 942009
HÁ 50 ANOS NO MERCADO, AS MÁQUINAS DE GRANDE PORTE ESTÃO MAIS ATUAIS DO QUE NUNCA, E SE RENDERAM À MODERNIDADE DO SOFTWARE LIVRE. p.32 GOVERNANÇA COM
SEJA UM BOM GESTOR E UTILIZE AS MELHORES PRÁTICAS ADOTADAS E RECOMENDADAS PELOS PROFISSIONAIS MAIS EXPERIENTES NESSA ÁREA p.36 » O que dizem os profissionais certificados p.24
» O poder da virtualização nos mainframes p.33 » Cobit, CMMI, ITIL. Quais as melhores práticas? p.36 » ITIL na prática p.39
» Novidades do ITIL v3. p.44
SEGURANÇA: DNSSEC p.69
VEJA TAMBÉM NESTA EDIÇÃO:
Com o DNSSEC, a resolução de nomes fica protegida de ataques. Mas seu preço vale a pena?
» Relatórios do Squid com o SARG p.60
REDES: IPV6 p.64
» Becape de bancos de dados com a Libferris p.46
» Java, Ruby e Rails: conheça o JRuby on Rails p.74 » Benchmarks do GCC 4.3? p.58
» Linux no System z: a revolução p.40 Conheça as vantagens da nova versão do Internet Protocol, e veja por que é difícil adotá-la
» LPI nível 2: Servidores NIS e DHCP p.52
WWW.LINUXMAGAZINE.COM.BR
NAGIOS p.45 Utilize recusros VoIP para gerar alertas de falhas de forma eficiente SEGURANÇA p.51 O Tripwire evita que invasores infectem computadores com cavalos de tróia ANDROID p.66 Conheça cinco aplicativos que facilitam a vida do gestor de TI PULSE 2 p.70
Mandriva apresenta nova versão do seu sistema de gestão integrada de parque computacional
VEJA TAMBÉM NESTA EDIÇÃO: » Monitoramento de redes com ngrep p.48 » Whenjobs: alternativa elegante ao cron p.57 00100
» Entenda o funcionamento do boot com UEFI p.73 9 771806 942009
WWW.LINUXMAGAZINE.COM.BR
#100 03/13 R$ 14,90 € 7,50
“Quem conta um conto...
Expediente editorial
Editores Flávia Jobstraibizer fjobs@linuxmagazine.com.br Laura Loenert Lopes llopes@linuxmagazine.com.br Editor de Arte Hunter Lucas Fonseca hfonseca@linuxnewmedia.com.br Colaboradores James Stanger, Jürgen Quade, Klaus Knopper, Charly Kühnast, Tim Schürmann, Frank Hofmann, Kurt Seifried, Bruce Byfield, Timo Schöler, Zack Brown, Jon “maddog” Hall, Alexandre Borges, Cezar Taurion, Gilberto Magalhães, Augusto Campos. Tradução Laura Loenert Lopes Revisão Flávia Jobstraibizer 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) anuncios@linuxmagazine.com.br Tel.: +55 (0)11 3675-2600
Penny Wilby (Reino Unido e Irlanda) pwilby@linux-magazine.com
Amy Phalen (América do Norte) aphalen@linuxpromagazine.com
Hubert Wiest (Outros países) hwiest@linuxnewmedia.de
Diretor de operações Claudio Bazzoli cbazzoli@linuxmagazine.com.br Na Internet: www.linuxmagazine.com.br – Brasil www.linux-magazin.de – Alemanha www.linux-magazine.com – Portal Mundial www.linuxmagazine.com.au – Austrália www.linux-magazine.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. Assume-se que qualquer correspondência recebida, tal como cartas, emails, faxes, fotografias, artigos e desenhos, sejam fornecidos para publicação ou licenciamento a terceiros de forma mundial não-exclusiva pela Linux New Media do Brasil, a menos que explicitamente indicado. Linux é uma marca registrada de Linus Torvalds. Linux Magazine é publicada mensalmente por: Linux New Media do Brasil Editora Ltda. 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: EGB 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
Linux Magazine #100 | Março de 2013
Impresso no Brasil
… aumenta um ponto”, é um ditado popular aqui na terra brasilis, que ilustra a característica básica do ser humano de fornecer uma guarnição extra ao prato de histórias e “causos”, sempre que relatados. Com isso, a quantidade de dados repassada a cada novo interlocutor cresce e ganha novos contornos, à medida que a informação se alastra dentro de um meio. A veracidade dessa informação é uma outra história, mas a mensuração e a possibilidade (e velocidade) de obtenção dessa informação é algo que vale a pena observarmos mais atentamente. Albert Einstein (1879 --- 1955) postulou que nem tudo aquilo que pode ser contado, conta, e que nem tudo que conta pode ser contado. Em miúdos, isso significa que o importante é olhar para os dados que realmente interessam e cuja recorrência possa ser efetivamente medida. Estamos falando atualmente de uma quantidade astronômica de dados, que precisam ser rapidamente transformados em informação. Eric Schmidt, presidente do Google, declarou recentemente que estamos produzindo atualmente a cada dois dias a mesma quantidade de dados produzida pela humanidade em toda a sua história até o ano de 2003: 5 exabytes, e o ritmo de produção desses dados está acelerando! Como quem transforma os dados em informação é o receptor --- ou seja, quem dá significado aos dados é quem separa o que interessa do que não interessa ---, vivemos hoje em um frenesi de fornecimento de dados que podem ser “estruturados” pelo receptor: seja através das redes sociais ou das máquinas de busca, dados que escolhemos receber clamam por nossa atenção constantemente. Michael S. Malone, colunista e produtor de televisão estadunidense e autor de 15 livros cobrindo o mundo dos negócios e da tecnologia, postulou com acerto que “nós temos agora a oportunidade de nos transformarmos no centro do nosso próprio universo de conhecimento, um universo que se reconfigura constantemente para se adaptar às nossas necessidades”. A infraestrutura que permite que tanto esse volume de dados quanto a configuração daquilo que chega ao receptor aconteçam é totalmente fundada em tecnologia desenvolvida de modo aberto e compartilhado. NADA do que temos hoje funcionando no segmento que ganhou o nome sazonal de Big Data, filho primogênito da computação em nuvem (esta uma expressão transitória), disponíveis em tempo real a partir de uma grande quantidade de dispositivos da armazenamento (um aparato de tecnologia perene) distribuídos pela grande rede, assenta em outras bases tecnológicas que não sejam Open Source. Isso deverá nortear os passos dos profissionais de sucesso do presente e definir os novos milionários e poderosos do futuro. Quem controla o código, controla o mundo: a boa notícia, é que o código está disponível para quem quiser ler, entender, modificar e compartilhar. Basta ter competência técnica para isso. Assim, a possibilidade de uma única pessoa afetar a vida de muitas (positiva ou negativamente) está atingindo níveis estratosféricos, e esse é, sem dúvida, um movimento democrático e anarquista (no sentido original da palavra), que está modificando e vai definir o modo como a nossa sociedade tende a evoluir. E isso conta. E conta ponto. Na sua carreira. Não durma no ponto.n
EDITORIAL
Diretor Geral Rafael Peregrino da Silva rperegrino@linuxmagazine.com.br
Rafael Peregrino da Silva Diretor de Redação 3
ÍNDICE
CAPA Os pais da computação moderna
32
Já imaginou o mundo sem os mainframes? O poder da virtualização nos mainframes
33
Conheça a história por trás dos poderosos mainframes e como o Linux agregou valor a estas já incríveis máquinas. Linux no System z: a revolução
40
A história e a evolução dos mainframes, que após a adoção do Linux, se tornaram ainda mais flexíveis para diversas finalidades.
4
www.linuxmagazine.com.br
Linux Magazine 100 | ÍNDICE
COLUNAS
O novo xerife da inicialização
Klaus Knopper
08
Charly Kühnast
10
73
A especificação do boot UEFI oferece novas capacidades – e novas dores de cabeça também – se o usuário não estiver preparado para isso.
SEGURANÇA
Alexandre Borges 12 Zack Brown
14
Augusto Campos 18 Kurt Seifried
19
NOTÍCIAS Geral 22 ➧ Red Hat realiza a nona edição do Red Hat Summit
Detecção de ataques com o Tripwire IDS
CORPORATE Notícias 23 ➧ Big Data: grande potencial, grande prioridade Coluna: Jon “maddog” Hall
26
Coluna: Gilberto Magalhães
28
Coluna: Cezar Taurion
29
51
O simples mas eficaz Tripwire fornece um serviço discreto e silencioso, evitando que invasores infectem computadores com trojans, backdoors ou arquivos modificados, e identificando anomalias despercebidas pelo usuário.
REDES
ANDROID Gestão na palma da mão
66
Conheça cinco ferramentas indispensáveis para a gestão de projetos de TI e resolva seus problemas Alô? É o Nagios!
de controle de tarefas, tempo e recursos.
O Nagios pode alertá-lo por e-mail quando um serviço falha, mas estas mensagens estão ficando no passado: uma chamada de voz é mais garantida e eficiente.
TUTORIAL Alternativa elegante
45
57
Tarefas no estilo cron jobs são essenciais para a gestão de sistemas Linux e Unix. No entanto, sua sintaxe é muito limitada e sujeita a erros. Um moderno substituto visa eliminar essas fraquezas.
Rede sob vigilância Raspberry Pi aplicado a projetos do mundo real
60
O Raspberry Pi, pouco maior que um cartão de crédito, torna mais fácil adquirir experiência com sistemas embarcados Linux. Apresentamos alguns exemplos práticos de como usá-lo em ambientes comuns do dia a dia.
SERVIÇOS Editorial 03
ANÁLISE Administração Centralizada
Emails 06 70
Aplicativos e processos raramente revelam o que fazem em segundo
Linux Magazine #100 | Março de 2013
48
O ngrep é uma ferramenta útil aos administradores de rede: separa o joio do trigo e funciona como um sniffer de pacotes trafegados.
Linux.local 78 Preview 82
5
Coluna do Alexandre
COLUNA
O Google está errado?
As penalidades sofridas pelo Google, impostas por empresas que não tem a mesma competência e qualidade em seus serviços.
E
sta coluna partiu de uma extrema indignação da minha parte ao ler a triste notícia de que o Google irá pagar 60 milhões de euros à imprensa francesa pelo direito de continuar, através do seu mecanismo de busca, indexando o conteúdo digital fornecido por jornais e revistas daquele país. Para mim, isso é um desistímulo à competência, ou seja, é extremamente ridículo. Parece-me impressionante como as pessoas distorcem a lógica de maneira oportunista e conveniente para ganhar mais dinheiro e explicar o seu próprio fracasso. Perceba o leitor que, de tempos em tempos, setores da sociedade escolhem como alvo uma empresa que está ganhando muito dinheiro e tentam “bater” nela de todos os jeitos pois, ao invés de serem criativos e aumentarem a eficiência de seu próprio negócio, escolhem aumentar seu lucro às custas alheias. Sou totalmente partidário da meritocracia em qualquer caso e em qualquer situação. Abomino toda a recompensa que seja obtida através de politicagem dentro das corporações, já que isso desmerece o esforço de todos os profissionais que batalham para melhorar tanto a si próprios quanto a empresa em que trabalham. Se você conhece alguém que usa de politicagem para obter uma promoção que seria merecida por outro colega, tenha certeza de que esse profissional é um amador. Antes do Google, todos os mecanismos de pesquisa eram medíocres e foi exatamente ele que propiciou uma maneira mais agradável e eficiente de encontrar dados na Internet, mudando a maneira como acessamos informações e obtemos conhecimento. Se o Google está onde está hoje, é por total competência da empresa que o criou e por conta da inépcia dos concorrentes. Ninguém é obrigado a usar o Google. Qualquer um pode simplesmente usar outro mecanismo de busca e pronto. Entretanto, fica uma dúvida: como o usuário chegou pela primeira vez aos sites de interesse? Sem o Google? Vamos colocar de outra forma: que tal utilizar outros serviços, como Bing, Yahoo! ou Bai-
12
dú (da Ásia)? Eles são excelentes, têm suas vantagens, mas por que então as pessoas continuam usando o Google? Por caridade? Ou porque, de longe, ele é realmente o melhor? Não paro por aqui: se alguém quer disponibilizar conteúdo jornalístico ou informativo na Internet, provavelmente o faz porque quer compatilhar informações, tornar-se famoso ou, ainda, porque quer ganhar dinheiro dos anunciantes, como faz qualquer meio de informação digital (jornal ou revista) nos dias de hoje. Isso não é errado. Ganhar e gastar dinheiro é a essência do capitalismo. Se uma empresa (ou pessoa) não quer disponibilizar uma informação para ser acessada na Internet, então há duas alternativas: ou não publica ou publica e cobra por isso. Quando li na maioria dos jornais e revistas, que o Google não existiria sem eles, isso me soou como uma enorme piada. Nada mais falso: o Google é uma vitrine gigantesca para qualquer empresa que tem por objetivo vender seus produtos, serviços ou sua informação. Sem esse mecanismo de busca, certamente o número de pessoas com acesso às reportagens aos artigos corporativos seria muito menor. Voltando aos primeiros anos de popularização da Internet, antes eram os provedores que cobravam pelo acesso aos seus portais. Com o tempo, o julgamento que se estabeleceu foi que isso inibia o acesso à informação por parte da população. Então, os mesmos provedores passaram a ganhar com os anunciantes que pagam por espaço em seus sites. O Google, para manter-se em operação (o nome do jogo é dinheiro), também cobra de qualquer empresa que deseja ter a sua marca vinculada aos resultados das pesquisas. Atenção: elas pagam porque querem. Se não for interessante, podem (e devem) procurar um outro meio para obter visibilidade. Dito isso, será que alguém ainda acha que essa inclusão na indexação dos resultados deveria ser gratuita, ou seja, que o Google deveria facilitar para que milhões de pessoas cheguem ao conteúdo exposto pela sua empresa na Internet sem que ele ganhe nada com isso? Se houver alguém que pensa isso, então seria curioso solicitar para
www.linuxmagazine.com.br
que este “profissional” acorde cedo e vá ao trabalho sem ganhar um salário já que dinheiro não importa mesmo. De tudo isso, sempre aparece o oportunismo das pessoas e empresas: os sites de revistas e jornais franceses estão ganhando 60 milhões de euros do Google pois não são competentes e muito menos eficientes para ganhar dinheiro por si mesmos. Entretanto, continuam mantendo áreas reservadas aos assinantes que pagam por isso, é claro. É estranho: e se o Google cobrasse da imprensa francesa para chegar aos seus sites? Sou a favor da cobrança por conteúdo digital informativo, já que os jornais e revistas estão ai para vender seus produtos, informar e ganhar dinheiro. É minha decisão se vou pagar ou não por isso. O mesmo vai valer para o blog que vou lançar em breve: os leitores poderão acessar à vontade. Se o Google indexar, ótimo. Ele estará me ajudando. Se o Google, um dia, julgar interessante cobrar por vincular algum anunciante ao resultado que leve ao meu blog, será uma decisão que apenas caberá ao Google. Vou cobrar dele por isso? Lógico que não. Se o intuito fosse onerar alguém, eu criaria uma área restrita para assinantes e quem quisesse acessar-la, pagaria por isso. Certamente eu não estaria obrigando ninguém a fazer isso. Se chegasse ao ponto de eu não querer que ninguém tivesse acesso ao meu conteúdo, eu simplesmente não publicaria mais.
Linux Magazine #100 | Março de 2013
Novamente vou reforçar questão: o acesso ágil às informações somente foi possível graças ao Google. Antes disso eram as trevas e a escuridão. Não havia quase nada. Se o Google tivesse adotado a dura atitude de não pagar aos representantes da imprensa francesa e desindexado todo o conteúdo francês, aquelas informações simplesmente quase que sumiriam do mapa. Quem perderia? O Google, claro. E como ficariam as revistas e jornais da Internet francesa? A essa altura, acho que você já sabe a resposta. Recentemente as companhias provedoras de telefonia e Internet da França também estão agindo de maneira oportunista e estão tentando levar o seu naco do Google porque o acusam (entre outros) de explorar a banda de rede sem pagar nada. Isso é estúpido. Eu somente pago pelo serviço de acesso à Internet porque quero aprender, ler meus e-mail e usar... o Google! Se eu não tivesse acesso a esses serviços, eu não assinaria um plano de Internet com nenhuma operadora. Elas já ganham muito dinheiro dos assinantes e do governo, todavia querem lucrar (de novo) em cima das empresas de Internet. Infelizmente, os amadores procuram as explicações sobre o sucesso alheio, mas jamais buscam os motivos da própria incompetência. n Alexandre Borges (linkedin: br.linkedin.com/in/aleborges) é instrutor e especialista sênior em sistemas operacionais Unix, Linux, Banco de Dados, Virtualização, Cluster, Storage, Servidores, Backup, Desempenho e Segurança, além de possuir profundo envolvimento com assuntos relacionados ao kernel Linux.
13
Coluna do Augusto
COLUNA
Canonical rumo à carreira solo A substituição do X11 seria uma alavanca para a decolagem da Canonical como empresa independente?
O
final do primeiro trimestre de 2013 foi marcado pelo anúncio da Canonical de que sua distribuição Ubuntu substituirá o tradicional X11, que oferece a infraestrutura para os ambientes gráficos típicos das distribuições Linux desde a década de 1990, pelo Mir, um servidor gráfico cujo desenvolvimento foi recentemente iniciado pela própria empresa. Substituir o X11 não é propriamente uma novidade: desde 2010 a Canonical já anunciava a intenção de trocá-lo por uma alternativa mais moderna: o Wayland, servidor gráfico moderno e que, assim como o X11, é um foco de desenvolvimento comunitário. Nesse processo, a empresa já havia até mesmo oferecido apoio técnico aos desenvolvedores dos ambientes gráficos Gnome e KDE para que adaptassem seus sistemas à nova alternativa. O súbito anúncio do projeto próprio Mir como sucessor da adoção do Wayland, que não chegou a ser concretizada, deve ser visto no contexto das demais iniciativas que colocam a Canonical no ramo das carreiras solo, diferentemente de outras distribuições que adotam maior número de componentes mantidos em comunidade: o Ubuntu já divergiu no gerenciador de inicialização Upstart, no ambiente gráfico Unity e, recentemente, anunciou que está criando até mesmo seus próprios componentes básicos do ambiente operacional, como relógio, calendário e calculadora. Tudo isso pode ser facilmente entendido ao considerar o alinhamento a uma estratégia de unificação de interfaces (representada singularmente no projeto Unity) da linha de produtos baseados no Ubuntu em plataformas tão diferentes como os desktops, tablets, smartphones, televisores, videogames e o que mais estiver por vir. Mas compreender uma estratégia não significa necessariamente apreciá-la, e não faltaram respostas negativas à medida dissonante tomada pela Canonical para sua popular distribuição.
18
A primeira delas partiu dos desenvolvedores do projeto KDE, em termos bastante expressivos. Um deles, responsável especificamente pelo gerenciador de janelas Kwin, foi a público para desmentir a afirmação do fundador da Canonical de que este componente do KDE teria bom suporte ao Mir: segundo ele, acrescentar este suporte é tarefa nada trivial, não está nos planos e o projeto ainda aguarda o cumprimento da oferta pública de anos atrás sobre ajuda para a criação de uma versão para a escolha anterior da Canonical, o Wayland. Poucos dias depois, do campo dos desenvolvedores do Gnome também surgiu uma proposta pública – mencionando o anúncio da Canonical de desenvolver seu próprio componente – para priorizar a adaptação de seu sistema ao Wayland, que é a proposta comunitária de sucessor do X11 para ambientes baseados em Linux que se encontra mais avançada no momento. Mas essa não é uma tarefa rápida, embora o que a Canonical tenha pela frente com seu Mir também não seja: pelo primeiro cronograma divulgado pela empresa inglesa, em outubro de 2013 estará completa a primeira fase de integração do ambiente ao novo servidor gráfico, funcionando especificamente em um aparelho telefônico (enquanto desktops terão apenas acesso a um modo legado que fará a ponte com um servidor X). E a integração completa em todos os aparelhos suportados pela Canonical está prevista para abril de 2014, considerando a previsão para lançar o Ubuntu 14.04 LTS no mesmo mês. Concorrência tem suas vantagens, mas cooperação e compartilhamento de esforços e objetivos são valores típicos do desenvolvimento Open Source. Torço para que um ponto de equilíbrio não tarde a surgir. ■ Augusto César Campos é 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.
Linux Magazine #100 | Março de 2013
Linux Magazine #100 | Marรงo de 2013
31
Mainframes
CAPA
Os pais da computação moderna Já imaginou o mundo sem os mainframes? por Flávia Jobstraibizer
Esta edição é um marco para nós, da Linux Magazine. Atingir o marco de 100 edições, significa 100 meses de árduo trabalho, de muitas conquistas e de muito, mas muito aprendizado. Aprendizado esse que não só faz parte da nossa rotina diária, como também é faz parte daquilo que levamos todos os meses até você, leitor: conhecimento. E para comemorar esta simbólica edição binária, trazemos até você um pouco mais sobre as origens de tudo o que temos hoje, da computação moderna, dos dispositivos cada vez menores e mais necessários que temos em nossas vidas. Os mainframes nasceram inovando e continuam quebrando preconceitos até os dias de hoje, pois diferentemente do que se especulava, eles não vão deixar de existir, pelo contrário. São cada vez mais úteis, velozes, robustos e tão seguros quanto sempre foram. Hoje os mainframes são parte integrante dos supercomputadores mais rápidos do mundo (e entre estes temos alguns no Brasil, mencionados na edição #93 da revista, cujo tema de capa foi HPC (High Performance Computing). De posse da tecnologia oriunda dos mainframes foram criados os computadores pessoais, desktops que antigamente ainda eram grandes fisicamente, e que assim, deram origem aos computadores portáteis, smartphones, à nano tecnologia... Tente imaginar o mundo sem o seu caríssimo smartphone, sem seu querido notebook, seu o seu primeiro desktop. Ou então tente imaginar o mundo sem nenhuma tecnologia computadorizada. É mais ou menos esse o cenário da vida sem a existência dos mainframes. Desde 1880 quando foram criados os sistemas de cartões perfurados por Herman Hollerith (e que se tornou a base 32
para o primeiro computador de grande porte em 1964) é que vemos a tecnologia revolucionar o mercado diariamente. Hoje os mainframes possuem propósitos mais nobres: realizam cálculos para previsão de desastres naturais como abalos sísmicos, tsunamis etc., fazem previsões do tempo, cálculos matemáticos complexos para os diversos projetos da NASA, calculam com base em dados geográficos, de terreno e geolocalização os melhores locais para perfurações de petróleo e ajudam em previsões e processamentos de uma quantidade de dados em tão poucos segundos que é até rídiculo baseado nos anos que um computador comum levaria para realizar 10% das mesmas tarefas. O Brasil continua figurando no topo da lista dos principais países a utilizarem-se amplamente dos benefícios dos mainframes. Muitas empresas privadas do País ainda utilizam essas incríveis máquinas para diversos fins e é certo que esse mercado só tende a crescer, principalmente no que tange à virtualização e computação em nuvem. Caso você não saiba, desde 1967 os mainframes possuem hypervisors (o primeiro tendo sido construído pela IBM e batizado de CP-67) o que garante uma excelência no assunto virtualização que mesmo os sistemas mais modernos não superam. Enfim, o espaço é curto e há muito o que há para falar sobre o assunto. Una-se a nós nesta edição comemorativa e que está recheada de passado e presente! Boa leitura! n Matérias de capa O poder da virtualização nos mainframes Linux no System z: a revolução
33 40
www.linuxmagazine.com.br
Alternativa elegante | TUTORIAL
Agendador de tarefas
TUTORIAL
Alternativa elegante Tarefas no estilo cron jobs são essenciais para a gestão de sistemas Linux e Unix. No entanto, sua sintaxe é muito limitada e sujeita a erros. Um moderno substituto visa eliminar essas fraquezas. por Oliver Frommel
U
ma das muitas heranças do Unix (desde o Unix V7, para sermos mais exatos) é o serviço de agendamento de tarefas cron, que ainda hoje executa trabalhos regulares no Linux e sistemas BSD. Embora algumas alternativas para esta ferramenta já tenham sido desenvolvidas, como o fcron [1] e o anacron [2], o princípio em si sofreu poucas alterações. Richard W.M. Jones, programador da Red Hat, acabou rompendo com
a tradição e chegou a uma alternativa nova – um projeto chamado Whenjobs. Basicamente, o Whenjobs [3] oferece duas vantagens para o cron: sintaxe mais simples para definir as tarefas e tempos de execução, e um sistema que permite aos usuários definir as dependências entre as tarefas. Pacotes Whenjobs pré-compilados já estão disponíveis para o Fedora 17, mas usuários de outras distribuições terão que construir a ferramenta eles
mesmos. Para instalar, basta acessar o Whenjobs do repositório Git. No entanto, é mais fácil baixar o último arquivo tar, se o usuário não quiser entrar em uma batalha com o autoconf e o automake. Como o Whenjobs é escrito na linguagem de programação funcional Ocaml, precisaremos do compilador correspondente e de alguns pacotes. Podemos instalá-los com os seguintes comandos, por exemplo, no Ubuntu 12.10: sudo apt-get install ocaml ocamlfindlib libcalendar-ocaml libcalendarocaml-dev camlp4-extra libocamlnet-ocaml-bin
O comando ./configure inicia a etapa de configuração, que informa se todos os pacotes necessários estão instalados. Durante o teste, vimos o seguinte erro quando executamos make: error: Unbound value XDR.safe_add. Resolvemos isso excluindo os arquivos gerados lib/ whenproto_aux.ml e lib/whenproto_aux. mli. Executar o comando make instala o Whenjobs globalmente no sistema.
Ajuda para iniciar Figura 1 Quando iniciado com o parâmetro --help, o Whenjobs exibe os parâmetros de comando disponíveis. A ajuda está disponível na man page.
Linux Magazine #100 | Março de 2013
Quando iniciado com a opção -help, o Whenjobs gera uma curta mensagem de ajuda, listando
57
TUTORIAL | Alternativa elegante
novas tarefas com o Whenjobs, dependendo de certas condições. A sintaxe para isso é: when <condition> : <jobcode>
Por exemplo, a função de alteração no Whenjobs permite que o usuário monitore quando uma variável muda. Usando as variáveis acima, podemos formular, assim, uma condição como “se free_space mudar e se o valor for inferior a 10.000 (blocos)”: when changes free_space && free_space < 100000 :
Figura 2 Quando iniciamos o Whenjobs pela primeira vez, ele vem com uma tarefa de exemplo que exibe um breve texto de ajuda.
opções e parâmetros disponíveis ( figura 1 ). O comando whenjobs -e informa ao programa que deve iniciar um editor, que vem com um arquivo Whenjobs, embora contenha apenas um comentário (figura 2). O editor mostrado na figura, ilustra que este deve ser o arquivo .$HOME/whenjobs/jobs.ml. No caso de erros de sintaxe no arquivo de tarefas, o Whenjobs não é muito útil; na verdade, ele simplesmente envia uma mensagem de erro ao compilador, embora ainda salve o arquivo mesmo com erros. Ao invés de um arquivo, também podemos armazenar vários arquivos com a extensão .ml em .whenjobs; no entanto, precisaremos editá-los manualmente. Além disso, os nomes de arquivo têm de obedecer a regras da linguagem Ocaml; por exemplo, eles não podem conter hífens. Os princípios básicos dos arquivos Whenjobs são explicados nos trechos de comentário. Os comentários iniciam e terminam com um asterisco (*) – esta é uma dica sutil de que os próprios arquivos Whenjobs são arquivos Ocaml – no entanto, normalmente não precisamos nos preocupar com a linguagem de programação
58
quando utilizamos o Whenjobs. Uma medida de tempo começa com cada palavra-chave e termina com dois pontos, por exemplo: every 10 minutes:
Os caracteres << apresentam um bloco de comandos Shell, que são então encerrados pelos caracteres >>.
Variáveis
O exemplo no comentário da figura 2 ilustra alguns recursos do Whenjobs, como a definição de variáveis. Para fazer isso, a ferramenta oferece a opção --set, que podemos estender, indicando o tipo de variável (-type). O código a seguir, executa primeiro o comando stat e atribui os resultados à variável Shell livre. A segunda linha lê esta variável e a atribui à variável free_space do Whenjobs como um inteiro; este último estará então disponível para outras tarefas. free=`stat -f -c %b /home` whenjobs --set --type int free_ space=$free
O segmento de código inferior na figura 1 mostra como executar
Para que isso funcione, o daemon do Whenjobs (whenjobsd) deve estar em execução; ele armazena as variáveis e executa as tarefas. Ele pode ser iniciado usando a interface do Whenjobs e a opção --daemon-start. Alternativamente, também podemos iniciar o whenjobsd diretamente; e então, usar a opção -f para evitar que o daemon execute em segundo plano, e a opção -d para ativar as mensagens de depuração. O comando whenjobs --variables informa a ferramenta para obter a lista de variáveis armazenadas atualmente. Se não quiser uma alteração em uma variável para desencadear uma mudança de evento, também podemos definir a opção --whisper: whenjobs --set free_space=0 -whisper
O Whenjobs mostra quais tarefas estão ativas quando estipulamos o parâmetro --jobs e quais são carregadas quando usamos o parâmetro --jobs-names. Podemos definir o nome acrescentando-o antes da linha que começa com um when ou every: job "disk monitoring" every 15 minutes :
Podemos executar tarefas individuais manualmente digitando whenjobs --start jobname. Tarefas
www.linuxmagazine.com.br
Alternativa elegante | TUTORIAL
ativas podem ser canceladas com whenjobs --cancel <number> e digitar whenjobs --tail <number> irá mostrar a saída de uma tarefa ativa.
Prova do milênio
Quando se trata de definir horários para tarefas agendadas, a ferramenta oferece uma vasta gama de opções: segundo, minuto, hora, dia, semana, mês, ano e até mesmo década, século e milênio. Estas opções podem ser todas combinadas com um número: por exemplo, cada hora executa um script uma vez por hora, e cada 15 minutos executa um script a cada 15 minutos.
O Whenjobs também oferece uma riqueza de expressões: elas podem estar ligadas por operadores (&&) e/ou (| |) e também negadas. Comparações de duas expressões com várias combinações de maior que, menor que e igual podem ser numéricas ou baseadas em comparações de strings. Outras funções internas podem comparar variáveis com valores anteriores ou determinar se um valor aumentou ou diminuiu. Além disso, os usuários podem programar expressões próprias na linguagem Ocaml. Mais informações sobre isso estão disponíveis em detalhes no manual fornecido pela ferramenta.
Maduro
O Whenjobs foi desenvolvido como um projeto particular de Jones e como um substituto para o cron. Oferece sintaxe mais simples e suporta dependências entre tarefas. Em um post, Jones indica expressamente que este é um projeto privado e não é planejado como um substituto para o sistema cron padrão usado pelo Fedora ou pela Red Hat. No entanto, ele não usa a tarefa para compilações automatizadas de ferramentas de virtualização da Red Hat, demonstrando assim sua capacidade para uso em produção. n
Mais informações
Gostou do artigo?
[1] “Fcron” de Matija Suklje, Linux Magazine, Janeiro de 2010, pág. 48.
Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br
[2] Anacron: http://anacron.sourceforge.net [3] Whenjobs: http://people.redhat.com/~rjones/whenjobs/
Este artigo no nosso site: http://lnm.com.br/article/8313
A certificação LPI cada vez mais próxima de você! Adquira já o seu kit de certificação LPI, faça o curso intensivo e as provas no fisl14 e garanta a sua vaga entre os especialistas Linux mais procurados do mercado!
Kit de certificação LPI-1
Conteúdo do kit:
Kit de certificação LPI-2
1 livro contendo o guia de estudos para a certificação LPI-1 ou 2 Curso preparatório intensivo 2 provas para certificação LPI-1 ou LPI-2: Exames 101/102 ou Exames 201/202
Linux Magazine #100 | Março de 2013 Para aquisição e mais informações: https://www.linuxnewmedia.com.br/lm/certificacao_fisl14
0 ,0 ,33 0 8 65 10 $ $ r R e R ros u Po xd mj 6 e 59 ou s
TUTORIAL | Raspberry Pi
Raspberry Pi
TUTORIAL
Raspberry Pi aplicado a projetos do mundo real O Raspberry Pi, pouco maior que um cartão de crédito, torna mais fácil adquirir experiência com sistemas embarcados Linux. Apresentamos alguns exemplos práticos de como usá-lo em ambientes comuns do dia a dia. por Werner Hein
O
engenheiro britânico Eben Upton e uma equipe de hackers de hardware começaram o projeto Raspberry Pi como um meio de fornecer tecnologia de computador acessível para jovens interessados no assunto [1]. O objetivo era desenvolver e comercializar um computador de placa única, do tamanho aproximado de um cartão de crédito e compatível com o orçamento apertado do público alvo (quadro 1). Se o usuário estiver lembrado dos primeiros computadores domésticos, não se sentirá completamente por fora do assunto: a intenção fundamental dos criadores era reocupar porões, garagens e salas de aula com o espírito de uma geração que cresceu com o Atari 400/800, ZX80/81 ou VC20/C64.
Quase um ano depois de surgir o Raspberry Pi, é apropriado olharmos para trás e analisarmos o que aconteceu entre a primeira série de cerca de 10 mil peças e a situação atual de aproximadamente 1 milhão de unidades entregues: qual teria sido a razão de sucesso do projeto? Quais capacidades o hardware oferece? O que é possível e o que não é (ainda) possível fazer com o sistema? Este artigo explora o Raspberry Pi através de três projetos do mundo real: ➧ Um multimidia, de sistema de reprodução de vídeo, ➧ Um ponto de acesso sem fio, e ➧ Uma unidade embarcada de controle de temperatura. O primeiro projeto é um exemplo do sistema Raspberry Pi servindo como um substituto para um desktop padrão.
Os dois últimos exemplos mostram o Raspberry Pi como um sistema embarcado e que exigirão um pouco de conhecimento de programação, mas, também, ressaltam a versatilidade deste poderoso minicomputador. Talvez todos os três exemplos ajudam a mentalizar outros projetos “faça você mesmo” (de “do it yourself” ou DIY) que podemos criar com um Raspberry Pi próprio.
Lista de compras
Originalmente, os designers haviam previsto um modelo A e B, que diferem principalmente no número de portas USB (uma ou duas), na disponibilidade de uma porta Ethernet, e, evidentemente, no preço (de 25 a 35 dólares, nos Estados Unidos). A esta altura, apenas o modelo B está disponível. Veja a tabela 1 para um resumo
Quadro 1: História Em 2006, Eben Upton e sua equipe desenvolveram os primeiros conceitos para o Raspberry Pi, baseados no Atmel ATmega. A ideia de atrair jovens interessados no minicomputador já fazia parte do programa. Em 2009, os membros oficialmente estabeleceram a Raspberry Pi Foundation. Em agosto de 2011, a série alpha de aproximadamente 50 placas deixou a produção. Elas serviram principalmente como uma plataforma para desenvolvedores, para depuração e para fins de demonstração. Em dezembro de 2011, foi a vez da série de 25 placas beta, já baseada no layout de produção. Os desenvolvedores eliminaram as últimas falhas. Em um leilão online em janeiro de 2012, 10 placas desta série beta foram vendidas por um total de 16.336 libras no Reino Unido. Em 29 de fevereiro de 2012, às 7 horas (horário da Europa Central), os servidores web da fundação e duas distribuidoras foram sobrecarregadas em poucos minutos pela tempestade de pedidos. Muitos clientes esperaram durante horas para submeter uma pré-encomenda.
60
www.linuxmagazine.com.br
Raspberry Pi | TUTORIAL
dos componentes do Raspberry Pi. Para obter o Raspberry Pi (ou RasPi, abreviadamente) instalado e funcionando, precisamos fazer uma lista dos componentes básicos. A Internet possui ainda mais dicas sobre operações avançadas [2] [3]. Atualmente, apenas dois distribuidores globais têm a placa em catálogo [4] [5]. Embora a entrega de alguns meses não fosse incomum no primeiro trimestre de 2012, agora o usuário geralmente só precisa aguardar algumas semanas. Além da placa, o usuário precisará dos seguintes componentes: ➧ Uma fonte de alimentação USB com nada menos do que 700mA. Se desejar um hardware com fonte adicional através de USB, deve planejar pelo menos 1 amp. ➧ Um cartão SD (HC) com pelo menos 2GB de capacidade; no entanto, 4GB seria melhor. Dependendo do que o usuário pretende fazer, ainda assim pode não ser suficiente. Como o sistema está também alojada no cartão SD, é aconselhável escolher um cartão com boa leitura e velocidade de escrita. ➧ Para acesso sem fio, um adaptador WLAN na forma de um pendrive (stick USB) seria prático. Mas, na prática, um adaptador WLAN USB é muitas vezes um fator significativo no consumo de energia. Se estiver pensando em usar um adaptador USB, verifique se o driver
é suportado e escolha um design “enxuto” (slim) que não bloqueie a segunda porta USB. ➧ Tendo em vista o baixo número de portas USB, investir em um teclado e em um mouse sem fio valeria a pena também para poupar a carga desnecessária sobre os recursos limitados do adaptador de energia USB. Além destes itens, o usuário também precisará de cabos diversos, tais como HDMI ou Ethernet, dependendo do uso planejado para o dispositivo. No que se refere ao cabo HDMI, quanto menor, melhor. O usuário tem a opção de aumentar a saída do driver, mas isso também aumenta o consumo de energia. Se estiver pensando em ouvir música ou assistir a vídeos, também irá precisar de fones de ouvido ou alto-falantes. O terceiro projeto (um controlador de temperatura embarcado) usa uma placa de expansão que requer um hardware adicional [6].
Primeiros passos
Uma distribuição Linux baseada em Debian conhecida como Raspbian é adaptada para o serviço como um sistema operacional on-board para Raspberry Pi. A Raspberry Pi Foundation recomenda o Raspbian “Wheezy” [7], última versão lançada, utilizada neste artigo. Comece fazendo o download do arquivo de imagem Raspbian “Wheezy”, que é uma imagem completa do
Componente: Tipo: SoC
Broadcom BCM2835 (system on chip)
CPU
ARM1176JZF-S, 700 MHz
GPU
Broadcom VideoCore IV (OpenGL ES 2.0, OpenVG, 1080p30, H.264 alto nível de codificação/decodificação)
RAM
512MB of RAM
Ports USB
2 x USB 2.0
Ethernet
1 x 10/100 Mbps
SD/MMC
1 x slot
Audio
1 x stereo analog out
Video
1 x composite out, 1 x HDMI out
Tabela 1 Dados técnicos do Raspberry Pi.
Linux Magazine #100 | Março de 2013
sistema consistindo de uma partição de boot de 60MB e um sistema de arquivos root em torno de 2GB. Descompacte o arquivo e mova-o para um cartão SD com o seguinte comando: $ sudo dd bs=1M if=2012-08-16-wheezy-raspbian.img of=SD_card_device_filename
Agora, conecte o cartão SD, teclado, mouse e monitor para o sistema Raspberry Pi e inicialize, ligando a fonte de alimentação USB. O menu de configuração aparece, e se o usuário não estiver usando um teclado padrão em inglês, seria melhor primeiro alterar as configurações nos itens do menu configure-keyboard e change_locale para o teclado e idioma preferidos; caso contrário, irá encontrar problemas assim que for solicitado o login. O nome de usuário padrão é pi; a senha é raspberry. Outros itens de menu úteis incluem change_timezone, para definir o fuso horário correto; ssh para permitir o acesso seguro ao terminal via rede; e expand_rootfs, para alterar o tamanho do sistema de arquivos root de 2GB para o tamanho real do cartão SD. Finalmente, devemos atualizar o sistema no modo Debian típico: $ sudo apt-get update $ sudo apt-get upgrade
Podemos iniciar a ferramenta de configuração a qualquer momento usando sudo raspi-config.
Projeto 1: reprodução de vídeo Entrar com startx levará para o desktop gráfico LXDE, o que é otimizado para sistemas enxutos. Reproduzir um vídeo em HD é certamente o último teste para o hardware. Os players de vídeo comuns, no entanto, são de nenhuma ajuda porque a GPU da placa é otimizada para decodificação de áudio e dados de vídeo. Assim, precisaremos de um player que utiliza 61
TUTORIAL | Raspberry Pi
a própria biblioteca do programa da Broadcom (encontrado em /opt/vc). Atualmente, o único que faz isso é o programa de linha de comando pré-instalado omxplayer [8]. Se possível, simplesmente monte o diretório que contém os arquivos na rede. O NFS oferece acesso mais rápido à coleção de vídeos, mas o SSHFS é menos complicado. Os pacotes apropriados estão instalados, como mostrado na listagem 1. O usuário, então, inicia a reprodução com o comando omxplayer <File>. Depois de um curto soluço de imagem e som, o software fez o teste de vídeo em HD em formato 720p com áudio Dolby Digital 5.1 – claro, misturando até dois canais – sem qualquer problema. E isso é tudo do que se trata o espartano Omxplayer. O programa demonstra capacidades impressionantes para decodificação de áudio e vídeo, mas nada mais. Há também duas desvantagens extras: a biblioteca de vídeo mencionada
Listagem 1: Configuração de um player de vídeo $ sudo apt-get sshfs $ sudo adduser pi fuse $ mkdir myVideos $ sshfs username@host_name:/ directory_name myVideos
Listagem 2: Como modificar o arquivo de configuração ctrl_interface=/var/run/wpa_ supplicant eapol_version=1 ap_scan=1 network={ ssid="(E)SSID" scan_ssid=1 proto=WPA (or RSN for WPA2) key_mgmt=WPA-PSK pairwise=TKIP (or CCMP) group=TKIP (or CCMP) psk="key" }
62
Quadro 2: Ativação da interface serial Equipar o Raspberry Pi com uma interface serial requer algumas medidas prévias: os sinais TXD e RXD do UART do SoC são enviados para os pinos 8 e 10 do cabeçalho P1 situado entre a saída de TV e o slot para cartão SD (figura 1). No entanto, os sinais ainda estão no nível I/O do SoC com 3.3 volts. Com um deslocador de nível (level shifter), podemos movê-los para a faixa serial padrão RS232. Para isso usamos, por exemplo, o MAX3232CP IC. O minicom pode ser utilizado como um programa de terminal no PC. Com o comando minicom -s, é possível fazermos mudanças mínimas nas configurações necessárias. Por exemplo, a porta serial pode ser representado tanto pelo arquivo de dispositivo /dev/ttySnumber como /dev/tty-USBnumber. A taxa de dados (115.200 bps) e o formato de dados (8N1) são predefinidos. Certifique-se de que nem o Hardware Flow Control (controle de fluxo de hardware) ou o Software Flow Control (software de controle de fluxo) sejam usados pelo software. O comando minicom -o impede que o programa execute as sequências para inicializar no startup e conecta o usuário diretamente ao console.
acima não é um software de código aberto, e é necessário adquirir licenças para os formatos MPEG-2 e VC-1. O consumo de energia, por outro lado, é surpreendentemente baixo: a carga média durante a renderização do vídeo em HD era de apenas 3.8 watts, apesar da árdua tarefa de transmissão através da rede. Os programas Omxplayer, SSH e SSHFS criam a maior carga para CPU e memória, enquanto o player reivindica a maior parte para si. No entanto, se o usuário quiser reproduzir vídeo em HD com 1080i ou 1080p, vale a pena conectar o drive de rede via NFS.
Sistemas embarcados
O segundo e terceiro projetos empregam o Raspberry Pi como um sistema embarcado em uma rede - sem um teclado, mouse ou monitor, mas com acesso LAN/WLAN. Neste tipo de sistema, podemos ler as mensagens iniciadas com um terminal na porta serial. Se ocorrer um erro na configuração de rede, não será possível acessar o sistema através do SSH, logo, conectar-se diretamente através de um monitor e teclado é a única maneira de logar no sistema e corrigir o erro. Por esse motivo, o usuário faria bem em ativar a interface serial (quadro 2). O acesso com SSH através da rede deve ser sempre a primeira escolha; o acesso via interface serial deve ser
usado apenas como uma porta de fundo para emergências. O próximo passo na construção do sistema embarcado é a configuração de uma conexão de rede; neste exemplo, vamos conectar através de uma WLAN. A instalação padrão do Raspbian já contém os pacotes de firmware dos sticks WLAN populares, bem como do programa cliente wpa_supplicant. Para ver se a stick WLAN está ativa, conecte o hardware e pesquise a reação correspondente do kernel no syslog. Agora, a única coisa que resta a fazer é configurar o wpa_supplicant para um ponto de acesso. Em uma rede com um servidor DHCP no roteador, encontraremos os dados essenciais no relatório fornecido pelo comando iwlist scanning. O usuário modifica, então, a configuração do arquivo /etc/wpa_supplicant/wpa_supplicant. conf, como mostrado na listagem 2, e /etc/network/interfaces, como mostra-
do na listagem 3. Finalmente, inicie a conexão com sudo ifup wlan0.
Projeto 2: ponto de acesso O Raspberry Pi também pode servir como um ponto de acesso (figura 2). Neste caso, ele simplesmente envia tudo o que o stick WLAN recebe diretamente à porta LAN, como uma espécie de ponte. É por isso que esta
www.linuxmagazine.com.br
Raspberry Pi | TUTORIAL
o encaminhamento de pacotes entre as duas interfaces. Os pacotes necessários são instalados com: $ sudo apt-get install hostapd bridge-utils
Configure o ponto de acesso à WLAN em três etapas: primeiro, insira a seguinte linha no /etc/default/hostap: DAEMON_CONF=/etc/hostapd/hostapd. conf
Figura 1 Cabeçalho para o qual a
placa de circuito envia os sinais TXD e RXD de uma interface serial.
configuração é chamada de “modo bridge” (bridged mode). Desta forma, podemos aumentar o alcance de uma rede sem fio existente. A configuração é realizada em duas etapas. Na primeira, devemos configurar o acesso direto à WLAN com o daemon hostapd. No entanto, note que o hostapd não é totalmente compatível com todas os WLAN sticks. Procure na Internet por uma lista de hardwares suportados [9]. Na segunda etapa, precisamos configurar
Em seguida, adicione os conteúdos da listagem 4 para o arquivo /etc/hostapd/hostapd.conf, modificando-o para se ajustar ao ambiente local, se necessário. Um exemplo de configuração para o arquivo /etc/network/interfaces é encontrado na listagem 5. A listagem 6 mostra como iniciar o ponto de acesso e a ponte de rede (network bridge). O consumo de energia é menor com a operação LAN. Dependendo da distância entre as estações WLAN e do volume de dados transferidos, o consumo de energia para um cliente WLAN ou ponto de acesso flutuou entre 3.3 e 3.8 watts, enquanto que em funcionamento de rede local (LAN),
Listagem 4: Adicionar ao hostapd.conf ctrl_interface=/var/run/hostapd ctrl_interface_group=0 driver=nl80211 # according to driver support macaddr_acl=0 auth_algs=3 ignore_broadcast_ssid=0 wpa=2 # for WPA2 with PSK wpa_key_mgmt=WPA-PSK rsn_preauth=1 rsn_preauth_interfaces=wlan0 rsn_pairwise=CCMP wpa_passphrase=password interface=wlan0 hw_mode=g channel=11 # a free or weak channel ssid=(E)SSID
o consumo foi de cerca de 2.9 watts. Se ambas as interfaces fossem ativas, o valor estaria entre 3.5 e 4 watts.
Projeto 3: controlador de temperatura Além de servir como um ponto de acesso flexível, o Raspberry Pi também é excelente para o controle de processos simples. O exemplo a seguir utiliza medições de tempe-
Listing 3: Como modificar /etc/network/interfaces auto wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/ wpa_supplicant.conf
Linux Magazine #100 | Março de 2013
Figura 2 Raspberry Pi operando como um ponto de acesso - com um consumo de energia de apenas 3.5 Watts.
63
TUTORIAL | Raspberry Pi
Listagem 5: Interfaces de rede
Listagem 7: Pacotes Python e bibliotecas
Listagem 8: Programa do controlador
auto wlan0 iface wlan0 inet static address 192.168.128.1 netmask 255.255.255.0 broadcast 192.168.128.255
$ sudo apt-get install git python3 python-pip pythonvirtualenv $ git clone https://github.com/quick2wire/ quick2wire-gpio-admin.git The red and green $ git clone https://github.com/quick2wire/ quick2wire-python-api.git $ cd quick2wire-gpio-admin $ make $ sudo make install $ sudo adduser pi gpio $ virtualenv TEMPCONTROL $ source TEMPCONTROL/bin/ activate $ cd quick2wire-python-api $ sudo python3 setup.py install
01 #!/usr/bin/env python3 02 import quick2wire.i2c as i2c 03 import time 04 from quick2wire.gpio import Pin, exported 05 06 busaddr = 0x48 07 regaddr = 0x00 08 redLED = Pin(16, Pin.Out) 09 greenLED = Pin(18, Pin.Out) 10 11 with exported(Pin(16, Pin. Out)) as redLED, \ 12 exported(Pin(18, Pin.Out)) as greenLED, \ 13 i2c.I2CMaster() as bus: 14 while True: 15 temp_hib, temp_lob = bus. transaction( i2c.writing_bytes(busaddr, regaddr), i2c.reading(busaddress, 2))[0] 16 temp = (temp_hib << 1 | temp_lob >> 7) / 2. 17 if temp > 25: 18 redLED.value = 1 19 greenLED.value = 0 20 elif temp < 22: 21 redLED.value = 0 22 greenLED.value = 1 23 else: 24 redLED.value = 1 25 greenLED.value = 1 26 print ("%02.01f" % temp) 27 redLED.value = 0 28 greenLED.value = 0 29 time.sleep(5)
Listagem 6: Iniciar ponto de acesso $ sudo $ sudo $ sudo eth0 $ sudo wlan0 $ sudo
service hostapd start brctl addbr myBridge brctl addif myBridge brctl addif myBridge ifconfig myBridge up
ratura cíclicas de um ambiente e, dependendo do valor, sinaliza os resultados visualmente com dois LEDs. Em temperaturas acima de 25 graus Celsius, o controlador aciona o LED vermelho; a menos de 22 graus Celsius, aciona o LED verde. Ambas as luzes são acionadas a valores entre estes dois extremos (figura 3). Este projeto, é claro, destina-se a um experimento de prova de conceito. Em uma implementação do mundo real, o controlador pode conduzir a alguma outra ação, como iniciar um aquecedor ou fechar as cortinas, em vez de simplesmente acionar um LED. A unidade de temperatura do controlador requer um hardware adicional ocupando uma placa de expansão separada. Vamos precisar das seguintes peças: o LM75 IC como sensor de temperatura e o MAX-3232CPE IC, incluindo quatro capacitores eletrolíticos 0.47μF, como transceptores para a interface serial (UART), juntamente com um conector de nove pinos D-sub ou um soquete para montagem PCB e um cabo de interface. Além disso, precisaremos também de dois LEDs, vermelho e verde, cada um com um resistor em série de 22Ω e um transistor NPN (por exemplo, o 64
BC237) como driver, bem como duas resistências de 10kΩ para o barramento I2C. Materiais diversos, como uma placa de montagem (breadboard), filtro de linha, cabo de fita plana (flat-ribbon cable) e capacitores de desacoplamento servirão como base. O popular módulo LM75 serve como sensor de temperatura e é conectado ao barramento I2C. A máquina controla os dois LEDs através de dois pinos GPIO e uma fase de transistor. A fiação é simples – podemos usar um modelo que encontrarmos na Internet. Na verdade, o SoC possui duas interfaces mestres no barramento I2C, cuja saída é também encontrada no syslog, mas somente uma das duas está disponível no cabeçalho de linha dupla (P1-03 e P1-05) – a que possui o barramento ID 0 (bus-ID 0). Podemos ativar o barramento I2C instalando os dois drivers i2c-bcm2708 e i2c-dev. Para fazer isso, remova o driver i2c-bcm2708 da lista de drivers que não devem ser carregados em /etc/modprobe.d/raspiblacklist. conf. Podemos também especificar o driver i2c-dev, que cria a interface do dispositivo no diretório /dev, em /etc/modules.
O barramento estará ativo uma vez que o sistema for reiniciado. Para ativá-lo sem reiniciar, execute o comando modprobe i2c-bcm2708 I2C-dev. Para realizar operações no barramento I2C como um usuário normal, primeiro precisamos instalar algumas ferramentas correspondentes e definir as permissões de grupo: $ sudo apt-get install i2c-tools $ sudo addgroup pi i2c
Os endereços onde os módulos se encontram é revelado pelos valores encontrados na saída retornada por
www.linuxmagazine.com.br
Raspberry Pi | TUTORIAL
O usuário terá que fornecer o script com as permissões necessárias para execução. Após a inicialização, ele irá continuamente dispor os valores medidos no console a cada atualização dos LEDs.
Conclusão
Figura 3 O Raspberry Pi com uma placa de expansão como um monitor
de temperatura. A luz verde na placa de expansão confirma que a temperatura está abaixo de 22 graus Celsius.
i2cdetect -y 0
Dependendo de como foram cabeados os três pinos do LM75, a saída irá conter exatamente um valor na faixa hexadecimal de 0x48 a 0x4F. O usuário, então, irá ler a palavra de temperatura de 2 bytes do LM75 no registro de endereço 0 com o comando: $ i2cget -y 0 I2C bus_address register_address w
A ficha de dados do módulo será uma ajuda para a conversão do valor críptico retornado (exemplo: 0x8015) para a temperatura correspondente. Python é um ambiente de software adequado para o controlador, desde que as bibliotecas de classe já existam para o Raspberry Pi para acessar o barramento I2C e os pinos GPIO. Este exemplo usou duas bibliotecas [10] [11]. A listagem 7 mostra a instalação dos pacotes e bibliotecas. O programa em si é muito simples (listagem 8): ele lê o valor do sensor (linha 15) em um ciclo de cinco segundos e converte a leitura do sensor para o valor da temperatura (linha 16). O programa então aciona os dois LEDs para ligado ou desligado, de acordo com a intenção do usuário. As diferentes designações para os pinos GPIO são um pouco confu-
Linux Magazine #100 | Março de 2013
sas. Os LEDs vermelho e verde são GPIO23/GPIO24, de acordo com o cabeçalho, mas também estão conectados ao P1-16/P1-18. A primeira denominação corresponde à documentação BCM2835 e aos valores do kernel. No entanto, as bibliotecas Python seguem a segunda nomenclatura.
O Raspberry Pi não é, obviamente, um sistema desktop. Se utilizar o terminal parecer algo muito estranho e enigmático para o usuário, comece no desktop e trabalhe o caminho para a linha de comando de forma gradual. Desde o princípio, o RasPi foi concebido como um PC com eficiência energética para aplicativos multimídia, e é claramente destinado para uso como um sistema embarcado. n
Gostou do artigo? Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/8388
Mais informações [1] Raspberry Pi: http://www.raspberrypi.org/ [2] Guia de compra de hardware: http://elinux.org/RPi_ Hardware_Basic_Setup_#Typical_Hardware_You_Will_Need [3] Mais ajuda ao escolher hardware: http:// elinux.org/RPi_VerifiedPeripherals [4] Farnell element14 (Europa) / Newark element14 (América do Norte): http://uk.farnell.com http://www.newark.com [5] RS Components (Inglaterra) / Allied Electronics (América do Norte): http://uk.rs-online.com http://www.alliedelec.com [6] Para respostas a questões: http://elinux.org/RaspberryPiBoard [7] Raspbian “Wheezy”: http://www.raspbian.org/ [8] Reprodutor de áudio/vídeo Omxplayer: https:// github.com/huceke/omxplayer/ [9] Hostapd: http://hostap.epitest.fi/hostapd/ [10] API Quick2Wire Python: https://github.com/ quick2wire/quick2wire-python-api [11] GPIO Admin: https://github.com/quick2wire/quick2wire-gpio-admin
65
Aplicativos para gerentes de projetos
ANDROID
Gestão na palma da mão Conheça cinco ferramentas indispensáveis para a gestão de projetos de TI e resolva seus problemas de controle de tarefas, tempo e recursos. por Flávia Jobstraibizer
G
erentes de projeto, gestores de TI e outros profissionais que diariamente necessitam ter o controle total do andamento das tarefas de suas equipes sofrem com a falta de aplicativos específicos para este fim e que funcionem corretamente em dispositivos móveis. A mobilidade trouxe com ela inúmeras vantagens e entre elas, a principal é manter o controle sobre tudo o que está sob nossa responsabilidade, de qualquer lugar. Mas para que isso aconteça, é necessário que o aplicativo utilizado, forneça os recursos necessários para garantir nossa tranquilidade. O Android já é famoso por possuir uma infinidade de softwares em seu
rico acervo. E softwares de gestão e gerenciamento de projetos não são excessão. No entanto, testar cada um deles pode demandar tempo, o que, muitas vezes, é um escasso recurso. Neste artigo vou apresentar cinco ferramentas que, como gerente de projetos, testei pessoalmente e obtive minhas impressões a respeito de cada uma, com suas particularidades, prós e contras. Todas as ferramentas são gratuitas e podem ser baixadas no site do Google Play [1].
Project Schedule Free O Project Schedule é um aplicativo de que gosto muito por conta da modularidade. O desenvolvedor,
Figura 1 Vizualisador de tarefas do Project Schedule Free.
66
Thorsten Kramer, decidiu criar o aplicativo em vários módulos instaláveis, um para cada necessidade. Existe, além do Project Schedule que é o gerenciador de projetos em si, o Project Schedule Office, que é um pacote de ferramentas para escritório no estilo LibreOffice, o Project Schedule Contacts que cuida de forma completa dos recursos humanos dos projetos e o Project Schedule PDF Export, que é muito útil para compartilhamento
Figura 2 Inclusão de novas tarefascom recursos completos.
www.linuxmagazine.com.br
Aplicativos para gerentes de projetos | ANDROID
Figura 3 Vizualisador de tarefas do Project Schedule Free no tablet.
do calendário e dos gráficos com os colaboradores ou clientes. Todas as ferramentas são integradas entre si após instaladas individualmente, e não são dependentes umas das outras. O Project Schedule na versão paga que custa R$15,00 (e que particularmente comprei por conta da utilidade do programa), possui de diferenciais apenas o fato de não exibir banners de propagandas, já vem com o PDF Export completo que exporta os diagramas de
Figura 4 O PMS é simples e objetivo.
Linux Magazine #100 | Março de 2013
Gantt, listas de tarefas, custos e sobrecargas de trabalho e exporta também os dados em formato de planilha. Na versão gratuita há todos os recursos necessários para qualquer gerente de projeto: é possível criar e
gerenciar múltiplos projetos, carregar informações a partir de arquivos CSV, XLS, XML etc., visualizar tarefas sob diversas formas: por tempo, por recurso, por hora etc (figura 1). A inclusão de novas tarefas também é bastante facilitada (figura 2), com recursos como inclusão de horários, início e fim da tarefa, colaborador/contato (que pode vir do módulo externo ou ser cadastrado manualmente) e outros recursos.
Figura 5 Visualização de tarefas
Figura 6 A interface do TeamworkPM
com monitor de status.
é limpa e objetiva.
67
Figura 7 Visualizador geral de tarefas do TeamworkPM.
A visualização do projeto e tarefas no tablet também é bastante rica em detalhes (figura 3). O programa merece créditos no momento da escolha de um gerenciador de projetos simples e objetivo.
Project Management System O Project Management System (ou PMS) é outro aplicativo bastante simplificado e voltado para pequenos projetos de desenvolvimento de software ou projetos curtos e que não necessitem de muitos recursos (figura 4). Possui gerenciamento de pessoas (Teams) para as quais as tarefas podem ser alocadas, listas de tarefas por projeto e monitores de status de cada tarefa (figura 5).
Teamwork PM O aplicativo TeamworkPM, criado pela empresa homônima e que é especializada somente em produtos e soluções para gestão de projetos, está maduro o suficiente para ser usado profissionalmente ( figura 6). Possui recursos como: múltiplos projetos, inclusão rápida de
68
Figura 9 Gerenciamento dos projetos cadastrados com andamento das tarefas.
tarefas, gerenciador de pessoas, leitura e resposta de mensagens trocadas entre os colaboradores do projeto, criação e acompanhamento de milestones e outros recursos ( figura 7).
AceProject O AceProject é outro projeto promissor. Utilizei a ferramenta durante muito tempo e sem dúvida nenhuma ela não deixa nada a desejar frente a seus concorrentes. A interface é o que primeiro conquista o usuário, pois é extremamente amigável. Possui boa acessbilidade: todos os recursos são fáceis de serem encontrados (figura 8). Possui capacidade para gerenciar múltiplos projetos de forma clara e
Figura 8 Acessibilidade perfeita no AceProjetc.
www.linuxmagazine.com.br
Aplicativos para gerentes de projetos | ANDROID
Figura 10 Visualização facilitada de tarefas em diversos formatos.
objetiva, mostrando o andamento e prioridade de cada um (figura 9). A gestão do tempo de cada tarefa também é um diferencial: ela possui informações muito completas sobre o tempo gasto (ou decorrido até então), o status da tarefa no momento e outras informações que podem ser visualizadas em formato de lista, calendário ou gráfico de Gantt (figura 10).
LiquidPlanner Um aplicativo completo e amigável. Este é o resumo do LiquidPlanner, que possui alguns diferenciais frente aos seus outros concorrentes,
sendo o principal diferencial a possibilidade de medir o desempenho de um determinado colaborador, o que pode ser útil para projetos onde os recursos humanos recebem o pagamento sob a forma de valores por hora (figura 11). Uma área dedicada às notas do projeto também é outro ponto de destaque, pois facilita a visualização dos comentários e apontamentos enviados pelos membros do projeto (figura 12). Assim como seus similares, o LiquidPlanner gerencia múltiplos projetos e contatos, possui visualização de tarefas individuais, clonagem de tarefas e atribuição de uma mesma tarefa para vários contatos, área para troca de documentos anexados e outros recursos. Vale a pena experimentá-lo.
Figura 11 Monitor de desempenho de um colaborador.
Conclusão Há ainda muitos outros bons aplicativos no Google Play criados para facilitar o dia a dia dos gerentes de projetos. Cada um possui particularidades que podem ser úteis para alguns projetos e pessoas, ou irrelevantes para pequenos projetos pessoais. É necessário uma boa dose de paciência para encontrar aquele que é mais adequado ao seu caso, afinal de contas, a ideia principal é deixar que o software trabalhe para nós e não o contrário! ■
Gostou do artigo? Queremos ouvir sua opinião. Fale conosco em cartas@linuxmagazine.com.br Este artigo no nosso site: http://lnm.com.br/article/8469
O autor Flávia Jobstraibizer (fjobs@linuxnewmedia.com.br, twitter: @flaviajobs) é gerente de projetos e analista de sistemas. Trabalha com TI desde 1998 tendo atuado em multinacionais e empresas de diversos segmentos, trabalhando com tecnologias livres e proprietárias. Atualmente é editora-chefe das revistas Linux Magazine, Admin Magazine e c’t.
Linux Magazine #100 | Março de 2013
Figura 12 Notas do projeto: uma visão geral rica em detalhes
Mais informações [1] Google Play: https:// play.google.com/
69
O novo xerife da inicialização | ANÁLISE
Boot com UEFI
ANÁLISE
O novo xerife da inicialização A especificação do boot UEFI oferece novas capacidades – e novas dores de cabeça também – se o usuário não estiver preparado para isso. por Christopher Dock
A
lgumas coisas das quais nunca devemos esquecer: ➧ primeiro carro ➧ primeiro computador ➧ primeiro beijo No entanto, uma destas primeiras coisas não deve ser um borked (termo usado para algo que foi destruído ou não funciona corretamente) [1] das partições do novo laptop. Infelizmente, algumas pessoas passam por essa experiência, especialmente quando displicentes ao instalar o Kubuntu 12.04 em modo dual-boot com o Windows 7. A principal razão de problemas é geralmente porque o Windows 7 original pré-instalado estava configurado para usar o novo recurso de boot UEFI, e o Linux novo, adicionado posteriormente, não tinha essa capacidade.
Master Boot Record (MBR) Até recentemente, a maioria dos computadores usava o Basic Input Output System (BIOS) para gerenciar o processo de boot. O sistema de BIOS executa algumas tarefas preliminares e então carrega o setor de boot do disco rígido. Este setor de boot é chamado de Master Boot
Linux Magazine #100 | Março de 2013
Record (MBR) e é composto pelos primeiros 512 bytes de início do disco, onde estão descritos não apenas o layout do disco (suas partições), como também a forma de iniciar o (ou os) sistema operacional. O MBR mudou um pouco ao longo dos anos, mas não é radicalmente tão diferente de quando foi criado, em 1983. O MBR contém quatro partições primárias, onde uma delas é definida como partição ativa ou inicializável. Juntamente com uma lista das partições e contém um pequeno carregador de boot (bootloader) (de aproximadamente 440 bytes) para carregar o sistema operacional. Este bootloader encontra a partição ativa e então executa o Volume Boot Record (o primeiro setor da partição), que continuará o processo de carregamento do sistema operacional. O MBR possui algumas limitações que têm impedido seu progresso. Duas dessas limitações são o fato de o número de partições primárias ser limitada a quatro, e o tamanho das partições de disco ser limitada a 2TB. Estes limites não eram um problema quando surgiu a primeira implementação do MBR, mas agora que é possível comprar um drive USB de 3TB por
menos de R$300, estas questões se tornaram mais visíveis. Os especialistas têm reconhecido a necessidade de romper com o passado e produzir um moderno firmware independente do sistema operacional e com suporte para inicializar a partir de discos de grandes dimensões, bem como em um ambiente sem sistema operacional de forma flexível, com capacidade de rede e design modular. A interface de firmware estendida (Extended Firmware Interface) da Intel é o resultado desse esforço. Uma organização de toda a indústria foi formada em 2005 para promover a adoção da especificação EFI, e a especificação foi então renomeada de Unified EFI (UEFI) [2].
Como funciona a UEFI A UEFI traz o conceito de BIOS para um nível totalmente novo. Em vez de um MBR de 512 bytes e algum código de inicialização, a UEFI, em contraste com a opção de simples legado do BIOS, sabe o que é um sistema de arquivos e ainda possui seu próprio sistema de arquivos, com arquivos e drivers.
73
ANALISE | O novo xerife da inicialização
Este sistema de arquivos possui geralmente entre 200MB e 500MB e é formatado como FAT32. Em vez de alguns bytes de código de montagem para carregar o sistema operacional, cada sistema instalado deve possuir um bootloader próprio (como por exemplo, no caso do Grub: grubx64. efi). Este bootloader terá lógica o suficiente para exibir algum tipo de menu de boot ou iniciar o carregamento de um sistema operacional. Basicamente, a UEFI é o próprio mini-sistema operacional. A UEFI tem deixado de lado a antiga metodologia de partição MBR e, ao invés dela, utiliza o GPT (GUID Partition Table) para gerenciar tabelas de partição. Usar o GPT elimina a limitação no número de partições e também garante o suporte para partições maiores de até 9ZB [3]. A partição GPT é parte do padrão UEFI, mas é limitada a apenas uma lista de partições sem nenhuma lógica de bootloader. A especificação permite um número quase ilimitado de partições, mas implementações específicas podem impor limites mais práticos (o Windows, por exemplo, limita o número de partições a 128 [4]). Como o MBR, a UEFI marca uma das partições como ativa, mas esta é apenas a partição EFI, nunca qualquer uma das partições do sistema operacional. A estrutura geral do sistema de arquivos EFI significa que cada sistema operacional (ou fornecedor) tem seu próprio diretório. Este diretório pode conter quaisquer dados e também todos os arquivos necessários para carregar o sistema operacional: /EFI /Boot /Microsoft/ /ubuntu /refind
Alguns diretórios possuem uma hierarquia bastante horizontalizada, enquanto outros (por exemplo, os da
74
Microsoft [5]), não. Os programas bootloader, por padrão, possuem a extensão .efi; no entanto, esta é apenas uma convenção: arquivos bootloader são devidamente criados e executados quando necessário mesmo sem essa extensão. Olhar para a estrutura de diretório EFI oferece a esperança de que, com a próxima instalação ou reinstalação, outro sistema operacional Microsoft não irá sobrescrever nossa instalação Linux atual, mas não tentamos isso ainda. Uma coisa especialmente conveniente sobre como a UEFI foi implementada no Linux é que, após o computador ser iniciado, a partição EFI, pelo menos no Kubuntu, é montada sobre a partição de boot (/boot/ efi), o que torna fácil mudar ou experimentar este sistema de arquivos. Levando isso um passo adiante, no entanto, um bootloader é apenas um programa que executa a operação de carregamento do sistema operacional. E se este programa fosse um Shell? Um Shell com habilidade UEFI permitiria que o usuário interagisse com o sistema UEFI para modificar os parâmetros de boot, iniciasse bootloaders e obtesse informações sobre o ambiente de firmware. Shells para EFI já existem mas o usuário não precisa se contentar com qualquer Shell que tenha sido enviado com sua instalação UEFI: ao invés disso, pode obter um novo ou escrever o seu próprio. O projeto Tianocore fornece um EFI Shell [6] referenciado no site Arch Linux [7]. O Shell Tianocore inclui várias opções que atualmente não possuem muita utilidade, mas que podem vir a calhar no futuro. Com este Shell, é possível selecionar um novo bootloader manualmente, fazer listas de diretório, editar arquivos de texto ou remover arquivos. Ao iniciar o Shell, é necessário um ponto de partida. Curiosamente, quando executamos o nosso Shell, o diretório de trabalho atual não se encontra em qualquer um dos sistemas
de arquivos, o que causa um erro em cada comando. Para criar uma listagem de diretório ou mudar para um diretório diferente, só precisamos selecionar o sistema de arquivos primeiro. Este Shell foi criado, conferindo-lhe uma atmosfera MS-DOS. Por exemplo, para mudar para um sistema de arquivos, basta selecionar o número do sistema de arquivos: FS0: <Enter>. A designação de unidade FS0 é uma referência ao File System 0; dependendo da configuração, também podemos ter um FS1 ou FS2. Podemos registrar um novo Shell, um novo sistema operacional, ou sistemas operacionais múltiplos com a UEFI. Assim, o próprio computador pode perfeitamente suportar múltiplos sistemas operacionais ou Shells. Temos algumas opções diferentes para manter essas entradas. A primeira seria usar o programa efibootmgr do Linux para manipular entradas armazenadas na memória RAM não volátil (NVRAM). Dependendo da implementação, a UEFI pode realmente suportar o efibootmgr quando inicializar em tela UEFI/BIOS. O Asus N76, que usa o sistema de firmware Aptio baseado em UEFI da AMI, permite que o usuário registre o programa diretamente com a opção Add New Boot Option (adicionar nova opção de boot) (figura 1). Eventualmente, podíamos fazê- lo trabalhar quando paramos de fazer referência explícita à unidade (no caso, \EFI\path versus FSO:\EFI\path). Foi possível, então, experimentar novos bootloaders e um Shell. As entradas do caminho apontado em path são relativas à partição EFI instalada.
Boot seguro A UEFI oferece muita flexibilidade, mais (e maiores) partições, e uma maneira fácil e padrão para a definição de vários sistemas operacionais. O que há para não gostar? Talvez o usuário já tenha ouvido
www.linuxmagazine.com.br
O novo xerife da inicialização | ANÁLISE
falar do infame recurso “Secure Boot” (Boot Seguro) da UEFI, que foi controverso e bastante comentado Internet a fora e esteja preocupado com isso. O boot seguro garante o processo de boot, impedindo drivers ou bootloaders que não sejam assinados com uma chave conhecida de inicializar, evitando uma possivel infeccção do seu sistema de inicialização por vírus ou trojans. Como várias fontes na comunidade de código aberto já relataram, este recurso impediria com eficiência que alguém compilasse a distribuição favorita e a instalasse no próprio PC (pelo menos no pior dos casos – um caso um pouco melhor seria se o usuário tivesse a capacidade de desativar o recurso de boot seguro [8] [9]).
Como consertar o laptop Vamos considerar a seguinte configuração problemática: Drive 0:
➧ GPT particionado ➧ Sistema de arquivos UEFI ➧ Instalação do Windows não-
funcional Drive 1: ➧ MBR particionado ➧ Algumas partições repletas de dados ➧ Instalação Linux não-funcional A incompatibilidade entre GPT e MBR, bem como nossos esforços de reparo subsequentes, tornaram o sistema impossível de inicializar (unbootable ). Quando acrescentamos o Linux, o bootloader preexistente não pode inicializar o sistema Linux no Drive 1 MBR particionado. Tentamos mudar o drive de boot, que nos devolveu o Linux – incluindo um menu GRUB que apontava para a opção de inicialização do Windows. Contudo, o Windows não iniciou com êxito. Para obter o Windows de volta, tentamos usar a opção Windows Restore, mas causamos ainda mais problemas, o que tornou o sistema Linux impossível de inicializar.
Como corrigir os problemas com a bagunça do dual-boot? A facilidade da nossa recuperação foi porque tínhamos uma imagem de backup do primeiro disco, antes de qualquer instalação Linux, porque o Linux estava sendo instalado no segundo disco, e porque reconhecemos a necessidade de instalar o Kubuntu, com suporte da EFI. A lista de tarefas a serem realizadas, foi pequena: 1. Converter a unidade 1 do MBR para GPT; 2. Adicionar/modificar partições no Drive 1; 3. Instalar o Kubuntu, com suporte da EFI; 4. Salvar toda a configuração da EFI Instalação Kubuntu; 5. Restaurar imagem de disco para Drive 0; 6. Restaurar configuração Kubuntu para partição EFI; 7. Reiniciar o computador e testar. Nota: quando se tratam de partições, é importante fazer backup dos dados para evitar uma possível perda.
Figura 1 Alguns sistemas de firmware permitem adicionar uma opção de inicialização própria para a configuração.
Linux Magazine #100 | Março de 2013
75
ANALISE | O novo xerife da inicialização
O processo segue de perto uma instalação gráfica padrão; configuramos nossas partições de troca (swap) (/) e /home e selecionamos o GRUB como bootloader. O único truque para esta etapa é como devemos iniciar o disco.
Arquivos de configuração do Kubuntu Figura 2 No nosso Asus, os dispositivos de UEFI boot prontos são iniciados com o prefixo “UEFI:”.
Conversão MBR para GPT O laptop foi inicializado com o Kubuntu 12.04 com um DVD Live. As partições estavam bem; o problema era o particionamento, então a coisa mais fácil era usar o comando sgdisk para ler na antiga tabela de partição MBR e escrever uma nova tabela de partição GTP. É importante ter em mente que deve haver algum espaço livre para manter as novas estruturas GPT. Isso pode exigir redimensionar a primeira partição para deixar algum espaço livre no início do disco, bem como redimensionar a partição final para deixar algum espaço no final. Tudo isso é descrito em detalhes por Rod Smith [10]. Uma vez que toda a preparação tenha sido feita, o comando a seguir executa a conversão: sgdisk -g /dev/sdX
Este comando irá fazer a conversão adequada, mas deixará a unidade sem qualquer sistema operacional inicializável.
Adicionar/modificar partições Todo o particionamento foi feito durante a instalação anterior; nenhum particionamento adicional
76
foi necessário neste caso (o usuário também pode realizar o particionamento na etapa de instalação do Kubuntu).
Instalação do Kubuntu 12.04 com suporte EFI Esta etapa é fácil, mas não 100% óbvia. Quando colocamos um CD ou DVD na unidade e o iniciamos, a UEFI vai examinar o que a mídia tem disponível; o que pode ser também um pendrive USB ou um DVD de boot. No entanto, pelo menos para o nosso Asus, tanto um DVD MBR de boot normal quanto um DVD de boot UEFI foram encontrados na lista de dispositivos de inicialização. Apesar de ambas as entradas se referirem ao mesmo disco, é importante que a entrada UEFI seja escolhida porque esta entrada parece ser o gatilho para a utilização do GRUB EFI em vez da configuração padrão do MBR. No nosso Asus, os dispositivos UEFI inicializáveis são prefixados com UEFI: na lista de boot (figura 2). Quando inicializamos o Kubuntu como um dispositivo UEFI, ele traz uma lista de menus GRUB familiares. É possível que qualquer uma dessas opções consiga instalar qualquer sistema compatível com o EFI com sucesso, mas escolhemos a opção Install Expert Mode.
A partição EFI é simplesmente um sistema de arquivos FAT32. Fazer o backup da configuração significa simplesmente copiar os arquivos para um local seguro. Basta montar o sistema de arquivos EFI e copiar os arquivos necessários para outro lugar: mount /dev/sdX1 /mnt/mountpoint cp -rp /mnt/mountpoint/EFI/refind /media/usbstick cp -rp /mnt/mountpoint/EFI/ubuntu /media/usbstick
Nota: o diretório EFI provavelmente será a partição 1, sdX1, mas essa não é uma regra.
Restaurar a imagem de disco para disk1 Como nunca planejamos fazer uma bagunça na nossa instalação, antes de começarmos esta grande aventura, fizemos o backup do Drive 0 usando o comando dd: Salvar dd bs=1M if=/dev/sdX of=/media/usbdevice/saved-image Restaurar dd bs=1M if=/media/usbdevice/saved-image of=/dev/sdX
Neste ponto, o Drive 0 do laptop possui a instalação original do Windows 7, mas a configuração do bootloader Kubuntu foi perdida. Isto não tem nada a ver com a Microsoft ou com o Windows, mas sim com a forma como fizemos o backup do disco.
www.linuxmagazine.com.br
O novo xerife da inicialização | ANÁLISE
Restaurarção EFI do Kubuntu O laptop foi inicializado com o Kubuntu 12.04 em um DVD Live para o próximo passo. A partição EFI é simplesmente um sistema de arquivos FAT32. Restaurar a configuração significa simplesmente copiar os arquivos a partir de um local seguro: mount /dev/sdX1 /mnt/mountpoint cp -rp /media/usbstick/refind /mnt/mountpoint/EFI cp -rp /media/usbstick/ubuntu /mnt/mountpoint/EFI
Depois de restaurar esses arquivos, seremos capazes de reiniciar o laptop e iniciar o Linux ou o Windows 7. ■
Gostou do artigo? o?
Mais informações [1] Borked: http://www.urbandictionary.com/define.php?term=borked [2] UEFI: http://www.uefi.org/home [3] Tamanho das partições GPT: http://en.wikipedia. org/wiki/GUID_Partition_Table [4] Windows e GPT: http://msdn.microsoft.com/en-us/ library/windows/hardware/gg463525.aspx [5] FAQ Windows e GPT: http://msdn.microsoft.com/enus/library/windows/hardware/gg463525.aspx [6] Tiancore ProjectL: http://sourceforge.net/apps/ mediawiki/tianocore/index.php?title=Efi-shell [7] Shell UEFI no Arch: https://wiki.archlinux.org/index.php/Unified_ Extensible_Firmware_Interface#UEFI_Shell_download_links [8] Como fazer o boot seguro da UEFI funcionar em plataformas abertas: http://www.linuxfoundation.org/publications/ making-uefi-secure-boot-work-with-open-plataforms/
Queremos ouvir sua a opinião. Fale Fa conosco em cartas@linuxmagazine.com.br ine.com.b
[9] Linus Torvalds sobre Windows 8, UEFI e Fedora: http://www.zdnet.com/ blog/open-source/linus-torvalds-on-windows-8-uefi-and-fedora/11187
Este artigo no nosso so site: sit http://lnm.com.br/article/8311 articl 311
[10] http://www.rodsbooks.com/gdisk/mbr2gpt.html
Linux Magazine #100 | Março de 2013
77
Calendário de eventos
SERVIÇOS
Evento Campus Party 2013
/sys/dev
Data 28 de janeiro a 3 de fevereiro
2 e 3 de março
Índice de anunciantes Local São Paulo, SP
São Paulo, SP
Informações http://www.campus-party. com.br/2013/index.html
http://www.linuxnewmedia. com.br/sysdev/
Empresa
Pág.
IBM
02
IBM
07
Microsoft
09
Uol Cloud
11
Impacta
13
Plus Server
Web Expo Forum
Gartner Data Center Summit
BITS 2013
3 e 4 de abril
9 e 10 de abril
14 a 16 de maio
São Paulo, SP
São Paulo, SP
Porto Alegre, RS
http://www.webexpoforum. com.br/
http://www.gartner.com/ technology/summits/ la/data-center/
http://www.bitsouthamerica. com.br/
16,17
Central Server
21
Unodata
27
e-smart
31
Big Data
39
Fisl
59
Cloud Conf
77
Watchguard
83
IBM
84
A LINUX MAGAZINE TEM UM PRESENTE PARA VOCÊ!
Quer ganhar essa mochila Targus® personalizada de presente da Linux Magazine? Veja o regulamento da promoção no site:
http://www.linuxmagazine.com.br/hotsite/mochila_natal 80
www.linuxmagazine.com.br
Assunto | SEÇÃO
NOME DA SEÇÃO
Linux Magazine #XX | Mês de 200X
81
PREVIEW
Linux Magazine #101 Virtualização Como obter o máximo de desempenho utilizando os recursos de virtualização mais adequados para sua necessidade? Como monitorar, medir o desempenho e estabilidade destes ambientes? Esse é o tema da próxima edição da Linux Magazine, que vai falar sobre alta disponibilidade em ambientes virtualizados, como controlar remotamente desktops e computadores monitorados à distância e até mesmo como criar sistemas de monitoramento inteligentes que auxiliem na árdua tarefa de identificar potenciais problemas antes que eles se tornem maiores. n
Admin Magazine #09 OpenStack Capaz de gerenciar os componentes de múltiplas instâncias virtualizadas, o OpenStack é um dos queridinhos dos profissionais de infraestrutura e virtualização da atualidade. É livre, não possui restrições quanto à quantidade de instâncias e é uma plataforma robusta, extremamente útil nestes tempos onde o advento 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! n
82
www.linuxmagazine.com.br