Linux para vestir
Expediente editorial Diretor Geral Rafael Peregrino da Silva rperegrino@linuxmagazine.com.br
Kemel Zaidan kzaidan@linuxmagazine.com.br Laura Loenert Lopes llopes@linuxmagazine.com.br Editora de Arte Larissa Lima Zanini llima@linuxmagazine.com.br Editor Online Felipe Brumatti Sentelhas fsentelhas@linuxmagazine.com.br Colaboradores Alexandre Borges, Alexandre Santos, Augusto Campos, Cezar Taurion, Charly Kühnast, Dmitri Popov, Douglas Eadline, James Stanger, Jeff Layton, Joe Casad, Jon ‘maddog’ Hall, Klaus Knopper, Kurt Seifried, Lauren Darcey, Martin Loschwitz, Nils Faerber, Shane Conder, Wander Mendes, Zack Brown. Tradução Emerson Satomi, Sebastião Luiz da Silva Guerra. Revisão Amauri Dantas de Oliveira. 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: IBEP Gráfica. 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 #93 | Agosto de 2012
Impresso no Brasil
Mais uma vez, a vida imita (ou se inspira na) ficção científica, e, graças ao Google X Lab, o laboratório “secreto” de pesquisas de tecnologias avançadas da gigante das buscas, a tão propalada realidade aumentada está mais próxima das nossas vidas. Estou falando do Project Glass, uma espécie de óculos para uso diário, com o qual informações sobre o ambiente, o clima, entre outras coisas, são fornecidas ao usuário diretamente no seu campo de visão. O conceito não é novo, mas a sua execução finalmente parece estar se tornando viável, e isso tem razões palpáveis, a saber: 1. As tecnologias para sistemas embarcados, tanto de hardware e software, quanto de materiais, engenharia mecânica, design e de interação com tais sistemas, avançaram o suficiente para viabilizar a construção de dispositivos ao mesmo tempo tão pequenos quanto potentes; 2. O consumo de energia desses equipamentos está cada vez menor e a evolução das tecnologias de fornecimento de potência, seja através de baterias, acumuladores ou células de combustível, está em ritmo acelerado; 3. Os dados e o processamento da maior parte das informações necessárias a esse tipo de produto acontecem na “nuvem”, que é devidamente equipada com bancos de dados rápidos o suficiente para fornecê-las em tempo real, armazenar as informações de cada usuário de maneira confiável, e processá-las com alto desempenho (HPC) e sem queda de serviço; 4. Conexão, banda e tecnologias de redes já evoluíram o suficiente para permitir o que se convencionou chamar de Internet ubíqua, e os protocolos de rede também não param de avançar (SPDY, OpenFlow etc.); 5. As tecnologias de geoposicionamento (GPS) fornecem informações de localização confiáveis e precisas, de modo que o próprio Google, através de projetos como o Google Maps, Google Earth e Google Street View, bem como iniciativas de crowdsourcing como o OpenStreetMaps, puderam coletar uma enorme quantidade dados de ambiente, que permitem aos equipamentos de realidade aumentada interagir efetivamente com o que se passa ao redor do usuário; 6. Com o advento da telefonia celular e do smartphone, o ser humano se acostumou a levar aparelhos consigo, apesar de todas as inconveniências e deficiências que esse tipo de tecnologia ainda apresenta. Celulares são, hoje, o principal instrumento de inclusão digital na nossa sociedade; 7. As tecnologias livres equipam as inovações das duas pontas dessa cadeia: tanto o gadget quanto a nuvem assentam nessa fundação, que, em conjunto com os padrões abertos, é o combustível de grande parte da inovação do mercado de software dos últimos 30 anos. Produtos como os óculos de realidade aumentada desenvolvidos no âmbito do Project Glass estão predestinados a abrir o caminho para a wearable computing, e deverão redefinir a nossa relação tanto com o meio ambiente quanto com a própria tecnologia, levantando questões interessantes sobre comportamento, moda e privacidade. Fato inconteste: o ser humano finalmente vai começar a sua trajetória de incorporar tecnologia e dispositivos cibernéticos a si mesmo, não apenas para “reparar” funções eventualmente prejudicadas, mas para incrementar seus sentidos. “Resistir é inútil!” ■
EDITORIAL
Editores Flávia Jobstraibizer fjobs@linuxmagazine.com.br
Rafael Peregrino da Silva Diretor de Redação
3
Ilustraç Ilus tração: ão: © Sashki Sashkin n - Foto Fotolia. tolia. li com
ÍNDICE
CAPA A evolução do alto desempenho
37
Conheça a história dos clusters HPC e saiba como este modelo computacional chegou ao ponto onde está.
Armadilhas da HPC
40
Sistemas baseados em hardware de diversos fornecedores e software livre podem reduzir significativamente o custo de um cluster HPC, mas há gastos ocultos sob a forma de tempo investido e despesas extras. Saiba como evitá-los!
Isolamento fatal
46
Às vezes é preciso ser cruel para ser bom: para evitar que os nós problemáticos de um cluster Pacemaker espalhem danos, é preciso permitir que eles matem uns aos outros. Para isso, alguns detalhes são muito importantes.
Respeitável monitor
50
Monitorar efetivamente um cluster pode ser um fator-chave para entender como hardware e software interagem. Em muitos casos, isso significa examinar de perto o desempenho de um único nó.
4
www.linuxmagazine.com.br
Linux Magazine 93 | ÍNDICE
ANÁLISE
COLUNAS Klaus Knopper
08
Charly Kühnast
10
Augusto Campos
12
Alexandre Borges
14
Zack Brown
16
Kurt Seifried
18
O robô Nao humano
60
NOTÍCIAS Geral
22
➧ LibreOffice 3.5.5 tem melhor estabilidade ➧ Código-fonte do Jelly Bean já está disponível ➧ Malware é capaz de infectar Windows, Mac OS X e Linux
No final de abril de 2012, a Aldebaran Robotics deixou os 57 centímetros de comprimento de seus robôs humanoides, chamados Nao, soltos entre os desenvolvedores de software livre. Os robôs possuem o olhar de uma criança e interações antropomórficas.
➧ Finalmente, a interface E17
TUTORIAL
CORPORATE
De volta à vida
Notícias
66
24
➧ Mais dois fabricantes de dispositivos Android assinam acordo com a Microsoft ➧ Lenovo deve abrir fábrica no Brasil ➧ Gastos com computação em nuvem deve dobrar em 2016 ➧ Comissão da Câmara aprova preferência para investimentos em software livre Entrevista com Bill Mannel
26
Grifo04, o supercomputador da Petrobras
28
Tupã, o supercomputador do INPE
30
Coluna: Jon “maddog” Hall
32
Coluna: Cezar Taurion
34
Coluna: Alexandre Santos
36
Não descarte seu antigo Palm. Com software livre, ele pode ganhar vida nova, recursos modernos e você ainda economiza dinheiro. Abra o cadeado com as mãos
70
ANDROID Diversidade
56
O que fazer se um usuário esqueceu a senha de seu sistema Linux ou Windows? Ao invés de pensar em ideias mirabolantes, uma prática distribuição Linux em modo Live e focada na solução de problemas pode ser tudo de que é preciso para retomar o controle. Estenda a mão para o Windows
74
Você já sabe que é possível acessar as partições do Windows no Linux. Mas, e se desejarmos nos conectar às partições Linux a partir do Windows? O Ext2Fsd oferece uma solução fácil para resolver a questão.
SERVIÇOS Alguns truques simples e uma boa compreensão do ambiente Android ajudam no desenvolvimento de aplicativos que funcionam em uma ampla variedade de plataformas de hardware e versões do Android.
Linux Magazine #93 | Agosto de 2012
Editorial
03
Emails
06
Linux.local
78
Preview
82
5
Coluna do Alexandre Borges
COLUNA
Nmap Como lidar com dezenas, por vezes centenas de opções de Nmap? Quando usar uma opção ou outra? Como interpretar os resultados? A partir desta edição, analisaremos algumas das opções mais atrativas.
T
alvez um dos mais interessantes assuntos e de ampla divulgação sejam os ataques aos sistemas operacionais e aplicativos e, nestas ocasiões, é inevitável que o cracker passe pelas fases de reconhecimento, escaneamento, conquista de acesso, manutenção de acesso e eliminação de rastros do alvo sendo atacado. Levando em conta que a primeira fase é menos técnica e mais simples (embora de fundamental importância), é no escaneamento que uma das ferramentas globalmente admiradas do segmento de segurança aparece: o Nmap. Esta ferramenta (feita por Gordon Fyodor Lyon e que recebeu muitas contribuições ao longo dos anos) passa a sensação de ser trivial, entretanto essa é uma falsa impressão pois ela é bem complexa. Certamente lidar com três ou cinco opções do Nmap é tranquilo, contudo o que dizer de dezenas (ou centenas) delas? Quando usar uma opção ou outra? Como interpretar os resultados? O que esperar de cada execução do Nmap? Como torná-lo mais rápido? É por isso que pretendo, nesta e nas próximas colunas, relembrar um pouco dos recursos do Nmap e analisar algumas de suas opções mais atrativas. Muitas distribuições Linux hoje já fornecem o Nmap por padrão, porém é possível que a mais famosa delas seja o Backtrack, que está hoje na versão 5 R2 e pode ser baixado diretamente do site do projeto [1]. Caso o leitor esteja usando uma distribuição como o Ubuntu, é factível obter o Nmap usando o comando apt-get install nmap (embora ainda não o disponibilize na versão mais recente, que é a 6.01 no momento que escrevo) ou ainda através do site do Nmap [2] nos formatos .rpm ou .tar.bz2 para compilação manual. Além das versões para Linux existem versões para Windows (incluindo uma interface gráfica) que funciona também em Mac OS X.
14
Caso o leitor tenha optado pela versão mais recente (6.01), será preciso baixar o Nmap e realizar a compilação manual (no meu caso, estou usando Ubuntu). Então, faça o download dos arquivos nmap-6.01.tar.bz2 [3], nmap_gpgkeys.txt [4], nmap-6.01. tar.bz2.digest.txt e nmap-6.01.tar.bz2.asc [5]. Sempre vale a pena (baseado em eventos recentes) verificar se o Nmap copiado está íntegro antes de começar a usá-lo. Assumindo que o usuário esteja conectado a um terminal e no diretório /root/Downloads, importe a assinatura do projeto Nmap e do Fyodor, verificar a assinatura e a integridade do pacote quando executado o download: # # # #
gpg --import nmap_gpgkeys.txt gpg --fingerprint nmap fyodor gpg --verify nmap-6-01.tar.bz2.asc nmap-6.01.tar.bz2 gpg --print-md sha512 nmap-6.01.tar.bz2 ; more nmap-6.01.tar.bz2.digest.txt
Agora sim, é só compilar: # cd /root/Download ; bunzip2 nmap-6.01.tar.bz2 ; tar xvf nmap-6.01.tar # cd nmap-6.01 # ./configure # make # make install # nmap --version
Pronto! Podemos iniciar nossos estudos. A primeira informação que precisamos saber para começar o escaneamento da nossa rede é tomar conhecimento de quais máquinas na rede estão no ar e quais não estão. Por quê isso? Para que possamos determinar nossos alvos, eliminar o que não tem importância e depois focar nossos esforços em poucas máquinas. Para isso, lancemos mão de uma técnica muito simples do Nmap que é o que chamamos de ping scan:
www.linuxmagazine.com.br
# nmap -sP 192.168.1.0/24 Starting Nmap 5.21 ( http://nmap.org ) at 2012-07-13 05:54 BRT Nmap scan report for 192.168.1.100 Host is up (0.021s latency). MAC Address: 48:5B:39:6C:29:7C (Unknown) Nmap scan report for 192.168.1.102 Host is up. Nmap scan report for 192.168.1.112 Host is up (0.00037s latency). MAC Address: 24:77:03:48:66:70 (Unknown) Nmap done: 256 IP addresses (3 hosts up) scanned in 19.77 seconds
Excelente! Encontramos 3 máquinas no ar, mas o que este comando acima faz exatamente? Depende: se leitor executá-lo como root, ele envia um ping (ICMP ECHO request) junto com um pacote TCP com a flag ACK=1 se a rede for remota ou envia pacotes ARP caso a rede seja local, como é nosso caso (verifque através do Wireshark). Caso o leitor não deseje, é possível forçar o envio de pacotes IP com a opção --send-ip, entretanto já alerto que além de naturalmente demorar mais (por causa dos pacotes IP), há ainda o limite da tabela ARP da máquina que provoca uma maior lentidão pois em um dado momento, o Nmap precisa esperar a tabela expirar para que novas resoluções sejam inseridas. E se o Nmap fosse executado por um usuário regular? Aí
seria tudo diferente: um pacote TCP com a flag SYN=1 seria enviado e tentaria conectar-se (system call connect) na porta 80 de cada host (e aí os IDS ficariam felizes). Se o leitor prestar atenção, só este parágrafo anterior já traz muitas consequências para nosso objetivo que é realizar uma varredura dos nossos alvos, todavia vou explorar estes e outros detalhes a partir da próxima coluna. Até mais. ■
Mais informações: [1] Backtrack Linux: http://www. backtrack-linux.org/downloads/ [2] Nmap: http://nmap.org/ [3] Página de download do Nmap: http:// nmap.org/download.html [4] Chaves GPG do Nmap: https://svn.nmap. org/nmap/docs/nmap_gpgkeys.txt [5] Assinaturas digitais do Nmap: http:// nmap.org/dist/sigs/?C=M&O=D Alexandre Borges (alex_sun@terra.com.br) é instrutor independente e ministra regularmente treinamentos de tecnologia Oracle (áreas de Solaris, LDAP, Cluster, Containers/OracleVM, MySQL, e Hardware), Symantec (Netbackup, Veritas Cluster,Backup Exec, Storage Foundation e SEP) e EC-Council (CEH e CHFI), além de estar sempre envolvido com assuntos relacionados ao kernel Linux.
Conheça soluções que auxiliam o administrador de redes e sistemas a mo encontrar e prevenir problemas, bem como a melhor forma de resolvê-los.
ADQUIRA O SEU EXEMPLAR EM NOSSA LOJA VIRTUAL
LNM.COM.BR/SHOPPING Linux Magazine #90 | Maio de 2012
15
Os maiores nomes do mercado internacional de Cloud Computing
Em uma conferência recheada de negócios, oportunidades e informações
CloudConf Dias 07 e 08 de agosto de 2012, no Centro Fecomércio de Eventos em São Paulo. Inscrições abertas!
www.cloudconf.com.br Alguns dos destaques confirmados: Rodrigo Campos
Gilberto Mautner
Diretor de Produtos do UOL Host e Vice-Presidente do CMG Brasil.
Diretor Executivo (CEO) da Locaweb, graduado pelo ITA.
Cezar Taurion
José Papo
Paulo Pagliusi, Ph. D.
Gerente de Novas Tecnologias Aplicadas/Technical Evangelist da IBM Brasil.
Tech Evangelist da Amazon Web Services para a América Latina.
Diretor da Cloud Security Alliance — Brazil Chapter. Ph.D. em Segurança da Informação.
Marco Sinhoreli
Rafael Moreira
Especialista em virtualização da Globo.com e fundador da comunidade Xen-BR.
Coordenador-Geral de Software e Serviços de TI da Secretaria de Política de Informática do MCTI.
Patrocínio Diamond
Apoio p institucional
Patrocínio Bronze
Mídia oficial
Webcast
Apoio de mídia
computação e tecnologia
Organização Promoção
HPC
CAPA
A evolução do alto desempenho Conheça a história dos clusters HPC e saiba como este modelo computacional chegou ao ponto onde está. por Douglas Eadline
Linux Magazine #93 | Agosto de 2012
com alguns processadores x86 e conexões Ethernet no interior de seus laboratórios? Havia até uma “imitação” do Unix OS chamada Linux. Para muitas pessoas, a coisa toda cheirava a um modismo de amadores com prazo certo para terminar. A história termina com uma completa tomada do mercado de HPC pelo cluster Linux x86. As conexões passaram a incluir o Gigabit Ethernet, o Myrinet e o Infiniband (IB). Linhas de racks montados em servidores 1U tornaram-se então os novos supercomputadores e passaram a ser chamados de sistemas HPC. Daí, em meados dos anos 2000, as coisas começaram a mudar um pouco. Primeiro, os processadores bateram a marca dos megahertz; em vez de crescer mais depressa, os processadores cresciam acompanhando o início da era dos multicores. Segundo, o uso dos GP-GPUs para HPC começou a se firmar. Essas mudanças criaram alguns desafios para os usuários de HPC. Os nós do cluster são agora poderosas ilhas de oito vias (ou mais) de SMP (com GP-GPU opcional) conectadas a nós semelhantes. Adicionar mais núcleos de CPU em um único nó parecia funcionar bem para servidores web e de virtu-
Il tração: © Sashki Ilus Sashki shkin n - Foto to olia. ia com
A
história dos clusters HPC (High Performance Computing ou computação de alto desempenho) é bastante interessante. Em seus primeiros dias, no final dos anos 1990, os clusters HPC, ou “Beowulfs”, como eram chamados antigamente, eram muitas vezes improvisados de maneira interessante. O servidor-padrão 1U estava apenas começando a emergir, e muitos sistemas possuíam uma aparência no melhor estilo Do It Yourself (faça você mesmo). Os clusters HPC naquela época eram então uma proposição bastante pioneira. De fato, muitos dos primeiros usuários de cluster construíram seus sistemas eles mesmos, usando prateleiras e torres. Fast Ethernet era a conexão padrão disponível, e se o usuário pudesse pagar por ela, havia uma pequena empresa chamada Myricom que fazia algo muito mais rápido chamado Myrinet. Para contextualizar, esse período de tempo foi o que compreendeu a era do DEC Alpha e dos processadores Intel Pentium Pro. Mas, como acontece com todos os pioneiros, não havia nenhum caminho a ser seguido inicialmente. Errar era bastante comum, mas, ao mesmo tempo, poderia haver uma imensa recompensa em se “fazer diferente”. A regra de ouro para os primeiros clusters foi um fator de 10 (ou mais) na redução do preço para o desempenho, o mesmo valendo para o preço de entrada. Além disso, o preço de entrada era escalonável – ou seja, era possível adaptar a máquina ao orçamento çamento do cliente. Quase que da noite para o dia, clusters usters de todos os portes começaram a aparecer em casas, sas, laboratórios, escritórios e data centers. Naqueles primeiros dias, algumas opiniões sustentavam que fabricantes de cluster e ses usuários estariam ariam no caminho errado. Historicamente, a HPC requeria eria o uso de processadores RISC, modelos exóticos de mem memória mória ória e muita cola proprietária para mantê-los todos os jjuntos. untos. Essas máquinas eram supercomputadores tradicionais. dicionaais is is. Como alguém poderia obter os resultados esperados spe pera rado ra doss do
37
alização; mas, para HPC, a recompensa não era tão clara. A primeira questão a se considerar é a largura de banda de memória. Os núcleos precisavam de acesso à memória e, quanto mais núcleos, mais congestionamentos poderia haver também. Tanto a AMD HyperTransport quanto a Intel Quickpath Interconnect ajudaram a atenuar esse problema criando vários domínios de memória conectados (um para cada soquete da CPU), porém os dados de localidade tornaram-se um grande problema no que se refere ao desempenho. A segunda questão diz respeito a quão longe um multicore poderia ir antes que a largura de banda de memória fosse sufocada. Em uma linha semelhante, a GP-GPU tornou-se muito mais rápida e muito melhor em criar o HPC em um único nó de cluster. As preocupações com esta abordagem incluem reescrita de software e embaralhamento de dados através do barramento PCIe; mas, para alguns aplicativos, os GP-GPU são uma grande vitória. Alguns esforços foram feitos para usar IB para ligar GPUs em nós. De modo similar ao crescimento de múltiplos núcleos, nós de cluster GP-GPU habilitados tornaram-se sistemas extremamente poderosos, porém limitados quanto ao número de núcleos a mais que pudessem operar efetivamente em uma única caixa. Um novo projeto ou tendência chamado “Manycore” entrou no mercado. A única regra quanto ao que constitui um processador manycore é que o projeto é escalonável para além dos limites observados nos tradicionais processadores multicore. Algumas pessoas podem considerar o GP-GPU um manycore; no entanto, os GP-GPUs precisam de processador host para funcionarem de maneira eficaz. Embora a abordagem manycore seja promissora, ainda enfrenta o problema da programação. Em alguns aspectos,
38
processadores manycore especializados podem nunca desfrutar das vantagens do mercado de commodities, pelo menos a curto prazo. Com o custo de uma única CPU ou GPU diminuindo a cada ano, o mercado HPC deve estar comemorando o fato de cada vez mais núcleos aparecerem no nó do cluster. No entanto, existem algumas questões reais que sugerem outros caminhos que valeria a pena explorar. Particularmente, o problema de software é preocupante. O código mais tradicional do HPC usa MPI (Message Passing Interface) para comunicar-se entre núcleos. Embora a MPI trabalhe em nós multicore, essa pode não ser a solução mais eficiente. Outros modelos de programação, tais como o OpenMP, têm sido utilizados para programar nós multicore, porém os programas são limitados ao nó local. Da mesma forma, a programação GP-GPU requer reescrita de código para usar os núcleos da GPU (alguns novos métodos (OpenACC) [1] poderiam ajudar com este problema, mas o modelo MPI tradicional está sendo enfatizado pelo novo hardware) De modo semelhante ao que houve nos primeiros dias do Beowulf Cluster HPC, as tendências de mercado a serem seguidas podem não ser o caminho mais eficaz em todos os casos. Em vez de empurrar mais e mais núcleos nos nós, outros métodos e abordagens podem merecer alguma consideração no mundo HPC.
Socket único Redux O último servidor pode oferecer um grande número de núcleos, mas a questão importante para HPC é o quão bem eles se desempenham em paralelo. Esta questão pode não ter sido resolvida porque presume-se que todos os servidores modernos têm pelo menos dois sockets de CPU e pelo menos oito núcleos (dois processadores quad core). Pouco esforço tem sido feito para avaliar os “núcle-
os eficazes” entregues por sistemas multicore. Resultados para um servidor 12-core (dual socket, com seis processadores por núcleo) podem ser encontrados no site da Sicorp [2]. Estes testes, que se valem de uma série de valores numéricos de referência, resultaram em uma gama de 41% a 98% de eficiência, com uma utilização média de 64% para todos os testes. Assim, em média, é possível usar de maneira eficaz 7,7 núcleos dos 12 presentes no servidor. Em contraste com estes resultados, os testes semelhantes realizados sobre uma série de quatro núcleos de processadores com socket único mostrou o melhor desempenho, variando de 50% a 100% e utilização média de 74%. Na média, um socket pode efetivamente usar três dos quatro núcleos. A variação se deve à largura de banda de memória de cada sistema. Em geral, mais núcleos significa mais partilha de memória e mais contenção possível. Programas amigáveis ao cache geralmente são bem dimensionados em vários núcleos, enquanto aqueles que contam com acesso pesado para a memória principal têm mais dificuldade com grandes sistemas multicore. Um argumento válido para a alta densidade de nós multicore é a amortização, através do grande número de núcleos em um único nó, dos custos com fornecimento de energia, discos rígidos, interligações e gabinete/rack de hardware. Isso faz sentido, mas a menos que o custo de amortização seja baseado em núcleos eficazes, a suposta economia pode não refletir com precisão a realidade da situação. Usar um nó de socket único também reduz a mensagem MPI e a carga I/O na interconexão, mas aumenta o número de portas de switch e placas de rede necessárias. Em alguns casos, o menor custo do Ethernet Gigabit pode ser adequado para nós de socket único, compensan-
www.linuxmagazine.com.br
do, assim, o aumento dos custos de interligação. Além disso, é possível construir nós que contêm múltiplas placas-mãe de socket único que compartilham o fornecimento de energia e os custos de embalagem, ganhando-se um pouco da amortização perdida. Nós de socket único também proporcionam um ambiente mais amigável ao MPI. Não há problema na localidade de dados, e os desenvolvedores podem continuar a usar o código existente com pouca perda de eficiência e sem necessidade de reprogramação.
Particionamento da GP-GPU Enquanto as GP-GPUs têm feito grandes progressos nos últimos anos, um problema de desempenho flagrante impede o funcionamento correto de alguns aplicativos como o PCIe bus. Basicamente, usar as GP-GPUs cria dois domínios de memória. O primeiro é a memória da CPU na placa principal, e o segundo é a memória GP-GPU da placa PCIe. A gestão destes dois domínios não é fácil, e a transferência entre os dois pode acabar totalmente com qualquer vantagem computacional que a GP-GPU venha a oferecer. Obviamente, mover a GP-GPU diretamente na matriz do processador traria muitas vantagens: ➧ Desnecessidade da transferência de dados através do barramento PCIe bus para a GP-GPU; ➧ Desnecessidade de possuir duas regiões de memória (CPU x GPU);
➧ Maior integração entre CPU e GPU (ou seja, caches de compartilhamento e controle de potência). A engenharia necessária para fazer isso não é trivial, mas também não é impossível. Devido a questões de energia e calor, a GP-GPU completa não pode ficar na matriz da CPU. Ela tem de ser menor, o que é vantajoso pois a GP-GPU será particionada entre os processadores e não se limitará a uma única placa PCIe grande e quente. Além disso, como todo novo hardware de CPU (i8087, SSE etc.), eventualmente os compiladores podem ocultá-lo do programador. Quando o GP-GPU ou “unidade SIMD” faz parte da CPU, as escritas do compilador podem trabalhar usando este novo hardware. Felizmente, a AMD tem reconhecido as vantagens desta abordagem e lançou processadores baseados em sua tecnologia AMD Fusion [3]. No projeto do Fusion há um banco de memória, tanto para a CPU como para a GPU; o termo Accelerated Processing Unit ou APU [4] é usado para descrever esses novos processadores. A AMD já lançou algumas versões de desktop e laptop com estes processadores, mas o compartilhamento de memória é um pouco restrito (isto é, parece-se com uma unidade separada de video). Espera-se que a próxima geração do Trinity APU tenha um cache L3 compartilhado e permita que CPU e GPU trabalhem melhor em conjunto do que suas gerações anteriores. Os AMD Fusion APUs não são considerados processadores para ser-
Mais informações:
vidores. Atualmente, são projetados para laptops comerciais e desktops de mercado. De modo semelhante aos primeiros dias dos clusters HPC, esses processadores podem ser “politicamente incorretos”, mas trabalham muito bem. Foram projetados para operação comercial de socket único e, portanto, não serão encontrados, por enquanto, em servidores.
Mais barato, melhor e mais rápido Um dos slogans dos primeiros Beowulf clusters era “mais barato, melhor e mais rápido”. E este tem sido exatamente o caso. Por conta das muitas mudanças no mercado, pode valer a pena repensar a melhor forma de se usar o hardware tradicional para HPC. Em muitos aspectos, o mercado de HPC x86 legitimou-se e agora figura em muitos “gráficos de pizza” por aí. Outros componentes do mercado HPC, incluindo interconexão, armazenamento e software, também têm ajudado a mover os clusters HPC dos laboratórios e salas de servidores para encabeçar um mercado respeitável e considerável para usuários finais. Conheça também nesta edição da Linux Magazine, outros artigos que irão abordar o tema HPC de forma abrangente, desmistificando o assunto e tornando mais simples o uso destes ambientes que em conjunto com a computação em nuvem, já são uma constante do cotidiano da infraestrutura de TI. ■
Matérias de capa
[1] OpenACC: http://www.openacc-standard.org/ [2] A evolução dos multicores nos ambientes HPC: http://www. sicorp.com/blogs/75-evaluating-multi-core-for-hpc [3] AMD Fusion: http://www.amd.com/us/products/ technologies/fusion/Pages/fusion.aspx [4] APU: http://en.wikipedia.org/wiki/Accelerated_Processing_Unit
Linux Magazine #93 | Agosto de 2012
Armadilhas da HPC
40
Isolamento fatal
46
Respeitável monitor
50
39
ANÁLISE | Nao, o Robô humanoide Linux
Nao, o Robô humanoide Linux
ANÁLISE
O robô Nao humano No final de abril de 2012, a Aldebaran Robotics deixou os 57 centímetros de comprimento de seus robôs humanoides, chamados Nao, soltos entre os desenvolvedores de software livre. Os robôs possuem o olhar de uma criança e interações antropomórficas. por Nils Faerber
P
rojetos apoiados por pessoas com coração e alma tendem a ser bem sucedidos, e o que poderia ser maior motivação do que realizar um sonho de infância? Bruno Maisonnier, ex-gerente financeiro de uma empresa francesa, colocou seus sonhos em ação. Em 2005, ele deixou o mundo das finanças e montou o seu próprio negócio [1] (quadro 1), desenvolvendo robôs humanoides, que são esperados para melhorar nossos lares em um futuro próximo. A Linux Magazine foi uma das convidadas para o Nao Developer Day [2], em Paris, e fui autorizado a falar com os funcionários da Aldebaran e outros participantes do Programa de Desenvolvedores. Um dos desenvolvedores chefes da Aldebaran, Jerome Monceaux, disse que na fundação da Aldebaran, Bruno Maisonnier já proclamava que os robôs humanoides seriam mais do que apenas máquinas úteis. Até mesmo os técnicos e programadores no encontro de desenvolvedores mudaram sua atitude para com o robô Nao (pronuncia-se “náu” ) imediatamente, simplesmente por causa de sua aparência humanoide (figura 1).
60
Inevitavelmente humanos A aparência destas máquinas especiais tenta as pessoas a humanizá-los. As pessoas começam a falar com o robô, quer queiram ou não. Mesmo desenvolvedores hardcore o tratam como uma criança. E quando o robô começa a falar, as comportas se abrem. Embora isto possa parecer excessivo e inútil num primeiro momento, na prática, tem um efeito muito significativo, porque a abordagem de adaptar a tecnologia às pessoas (e não vice-versa) é mais eficaz. Que fã de ficção científica pode dizer honestamente que, depois de assistir a Star Wars, não sonhou em ter um C-3PO ou R2-D2 em casa ou, mais tarde, um amigo pequeno como o Wall-E [3] ou Johnny 5 [4]? Com o Nao, a Aldebaran tornou isso possível.
Tudo sobre o Nao O Nao é o primeiro passo para um robô humanoide universalmente implementável. Certamente não vai ser perfeito por muito tempo ainda, porque as tecnologias necessárias ainda não foram desenvolvidas. No entanto, o pequeno robô será útil no
desenvolvimento destas tecnologias. Se tudo correr como planejado, o Nao deverá ser um programa de desenvolvimento universal para muitas áreas de pesquisa de robôs humanoides. Acima de tudo, o hardware (tabela 1) [5] é complexo: quase todas as partes dos complexos mecanismos devem ser fabricadas individualmente. Mesmo os motores de cada unidade foram desenvolvidos especialmente para o Nao. Criar um robô que anda sobre duas pernas e equilibra o seu peso de cerca de 13 libras (6Kg) corretamente é um desafio mecânico (figura 2). Jerome Monceaux explica que a altura do robô de cerca de 57cm (figura 3) é um compromisso, porque, à medida que aumenta tamanho, o peso aumenta rapidamente e a quantidade de energia cinética necessária para colocar o robô em movimento aumenta a cada unidade adicional de peso. Quanto mais pesado o robô, maior o perigo para o robô e para aqueles em torno dele, caso ele caia.
Quilos de Linux Se o Nao cair, o possível dano é administrável, pois ele move rapidamente suas mãos para cima. Um robô de
www.linuxmagazine.com.br
Nao, o Robô humanoide Linux | ANÁLISE
1,4m de altura (o próximo objetivo da Aldebaran, sob o codinome “Romeo” ) pesará pelo menos 50kg, o que poderia facilmente matar um animal de estimação ou ferir gravemente um ser humano. Assim como os computadores exigem aplicativos, os robôs precisam de um computador que os controle, e o programa que o Nao executa é predominantemente baseado em Linux. A cabeça do robô carrega um processador CPU Intel Atom com clock de 1.6GHz, com 1GB de RAM, executa o Gentoo com um cartão SD de 4GB. Esse sistema operacional é tão surpreendentemente normal que uma conexão SSH é possível, e pode-se fazer logon em um Shell root já incluso.
A programação começa com uma exibição de caixas gráficas, cada uma contendo uma entrada (o gatilho inicial) e uma saída (o gatilho final). O CPUs
Intel Atom de 1,6GHz na cabeça, ARM CPU no corpo (para controle e comunicação com motores e sensores)
RAM
1GB
Rede
802.11A/B/G, Ethernet 10/100Mbit
Disco rígido
Cartão SD de 4GB para software
Bateria
Conjunto de baterias de polímero de lítio com 27.6 watthoras, para aproximadamente 1 a 1,5 horas de operação
Áudio
Quatro microfones na cabeça para detecção de som, dois alto-falantes nos lados esquerdo e direito da cabeça
Vídeo
Duas câmeras de 1,3 megapixels (uma apontado para frente, outra apontada para o chão)
Sensores
Dois sensores ultrassônicos para detecção de obstáculos (entre 15 e 70cm de alcance), três sensores de toque em cada mão, três sensores de toque na cabeça, oito sensores de pressão por pé, sensores de aceleração e giroscópios no corpo, transmissor e receptor infravermelho nos “olhos”
Juntas
Vinte e cinco, com motores, equivalente a 25 graus de liberdade
LEDs
LEDs coloridos nos olhos e orelhas, na cabeça e nos pés
Tamanho
57cm, em pé
Peso
5,7kg
Preço
A partir de US$16.000,00 (aproximadamente R$32.500,00) para usuários finais e US$4.000,00 (aproximadamente R$8.200,00) para participantes do Aldebaran Developer Program
O núcleo: NAOqi O coração do sistema, chamado NAOqi, funciona em tempo de execução, e é responsável por todas as tarefas importantes, como a comunicação USB da segunda CPU com o processador ARM no corpo. O NAOqi é genericamente e modularmente concebido para servir como uma base multiplataforma universal para outros aplicativos. A ideia por trás desta configuração é fornecer as mesmas APIs e interfaces que os robôs usam para desenvolvedores de aplicativos que não são executados diretamente nos robôs Nao. Um exemplo simples seria um aplicativo de controle remoto que está disponível em telefones celulares e usa a API NAOqi para controlar o Nao através de uma rede. Pelo fato de a Aldebaran Robotics querer promover a circulação e uso do NAOqi, eles planejam gradualmente publicar a API como open source.
Coreografia simples O ambiente de desenvolvimento para a API é muito mais interessante do que o NAOqi em si. Os programadores criam comportamentos interativos e editam movimentos em componentes centrais com o aplicativo Choregraphe, disponível para Windows, Mac OS X e Linux.
Linux Magazine #93 | Agosto de 2012
desenvolvedor combina esses objetos em sequência ou em paralelo dentro do ambiente Choregraphe, definindo assim a sequência de comportamento
Tabela 1 Hardware
Quadro 1: Aldebaran Robotics O mercado de robôs humanoides é pequeno e não é particularmente lucrativo para empresas comerciais. Claramente, os fundadores da Aldebaran Robotics não esperavam que este empreendimento fosse rentável em um futuro próximo, mas sim um investimento para um futuro indefinido.
Quadro 2: Investidores privados A Aldebaran não tem buscado apoio de capitalistas aventureiros; ao invés disso, é financiada por investidores privados – acima de tudo, por Bruno Maisonnier – e tem o apoio do governo para a pesquisa. Sem uma forte pressão para ter sucesso comercialmente, a empresa e seus desenvolvedores têm mais liberdade para experimentar e agir, o que também se reflete no alto grau de motivação e prazer que cada desenvolvedor tem em seu trabalho, como evidenciado na conferência de 2012. Atualmente, 2 mil robôs Nao estão em uso em todo o mundo. O local mais famoso onde o robô está sendo usado é provavelmente a RoboCup Soccer (Copa dos Robôs ou Copa Robótica, em tradução livre) [6], em que o Nao é o robô humanoide oficial na Platform Standard League. Outra grande área em que o Nao está presente é a de pesquisa e desenvolvimento, tanto nas universidades quanto nas empresas. Um terceiro mercado muito importante para a Aldebaran são os entusiastas privados. A Aldebaran patrocina o Programa de Desenvolvedores [7] com um grande desconto na compra de um Nao.
61
ANÁLISE | Nao, o Robô humanoide Linux
em programação ensinem algo ao Nao rapidamente – até este ponto, nem uma única linha de código é necessária. A figura 4 demonstra um comportamento simples com a ajuda do reconhecimento de voz integrado e duas caixas de movimentos predefinidas: o Nao responde ao comando de voz “sentar” (sit) sentando-se, e levanta-se novamente com o comando “levantar” (stand). Uma vez que o comportamento é concluído, pressionar um botão transmite-o através da rede para o Nao. O Choregraphe pode criar uma visão 3D do robô, controlar os movimentos e consultar os sensores de posição nos drivers.
Figura 1 A aparência infantil é imediatamente envolvente.
desejada. Cada caixa pode ser uma única ação – por exemplo, o movimento de uma articulação ou a mudança dos LEDs – ou uma caixa pode conter uma sequência complexa de caixas. Desta forma, os processos mais complexos, controlados por caixas de controle de
fluxo, podem ser colocados juntos com relativa facilidade através da interface gráfica. Também é útil o fato de o Choregraphe já incluir cerca de uma dúzia de tipos pré-construídos. Esta ampla seleção de módulos permite que mesmo pessoas sem experiência
Figura 2 Mais fácil falar do que fazer: correr é uma tarefa difícil para o sistema mecânico e para o aplicativo.
62
Movimentos complicados Para sequências de movimentos complexos, o aplicativo inclui uma caixa de animação com um editor
Figura 3 Os 57cm de altura e os quase 6 quilos do robô Nao intencionalmente provocam as emoções humanas com o seu design infantil.
www.linuxmagazine.com.br
Nao, o Robô humanoide Linux | ANÁLISE
correspondente. O programador pode desligar drivers do Nao, liberando todas as articulações para mover o robô para uma posição desejada. Uma vez que o Nao chegue a uma posição intermediária, é possível salvar um keyframe, que armazena os valores das posições conjuntas. O desenvolvedor pode, portanto, especificar uma sucessão de múltiplas posições, uma de cada vez, e combiná-las para criar uma animação. O aplicativo calcula automaticamente os estágios intermediários entre um keyframe e o próximo. Processos complexos, tais como levantar e sentar, podem assim ser ensinados de forma muito fácil. Se este processo não for suficiente, ainda é possível ir a um nível mais elevado. Clicar duas vezes numa caixa abre a visão de seu conteúdo, que pode conter mais caixas ou mesmo o código. O Choregraphe suporta Python e abre um trecho de código com modelos pré-construídos das funções necessárias no editor de código embutido (figura 5). A partir daí, é possível acessar a extensa API do NAOqi, ou seja, todos os sensores, atuadores e funções de nível superior, tais como idioma de entrada e saída, reconhecimento de imagem ou a rede. O Python é insuficiente para alguns aplicativos, especialmente quando se trata de realizar rápidos e complexos cálculos – por exemplo, quando processa imagens ou dados de áudio (figura 6). A Aldebaran oferece um SDK nativo multiplataforma com a API NAOqi inteira em C++ para estes casos, e ele pode ser usado para implementar módulos que são então publicados pelo Python e pelo Choregraphe. O fabricante também oferece o SDK nativo para Linux.
Figura 4 O Nao se senta e se levanta ao ouvir o comando correto. O Choregraphe garante que ele faça isso com o uso de caixas de movimento pré-construídas e reconhecimento de voz.
Brinquedos caros O Nao é um brinquedo muito caro (tabela 1), e é improvável que seja encontrado sob sua árvore de Natal.
Linux Magazine #93 | Agosto de 2012
Figura 5 O Choregraphe inclui um editor de código Python, bem como uma caixa para consulta de sensor.
63
ANÁLISE | Nao, o Robô humanoide Linux
Se tiver sorte o suficiente para ser adicionado ao programa de desenvolvimento, você pode obter um Nao patrocinado, mas ainda vai precisar de cerca de 4 mil dólares (3,6 mil euros) para custear o empréstimo (quadro 2). No entanto, o valor do Nao não reside apenas no seu hardware, design ou software. O apelo do Nao resulta de uma combinação de alta tecnologia divertida com uma embalagem atraente que o torna muito acessível. Quando o Nao requebra em um canto, nem mesmo os técnicos vêem um computador, e a ferramenta Choregraphe oferece uma maneira simples e lúdica de desenvolver aplicativos e programar novos comportamentos.
Quem é dono de quem? Um participante britânico na conferência descreveu o Nao adequadamente com algum senso de humor: “Primeiro, possuímos a máquina; e então, ela nos possui.” Quando levou o Nao para casa, ele até a redesenhou para atender às necessidades do robô. O Nao promete mais do que apenas a realização de um sonho de infância. O pequeno robô é fascinante porque é uma máquina Linux, mas por outro lado, não é – não possui monitor nem teclado, apenas olhos e ouvidos e a capacidade de mover-se no mundo real. O aplicativo extenso e bem feito, que oferece fácil acesso ao mundo da robótica, também é impressionante. A Aldebaran pretende em um futuro próximo tornar o robô Nao acessível, o que seria um bônus, pois o fator diversão é imenso. ■
Figura 6 O desenvolvedor Taylor Veltrop demonstra seu aplicativo, que ensina o Nao a dançar ritmicamente assim que ouve música.
Mais informações [1] Aldebaran Robotics: http://www.aldebaran-robotics.com/ [2] Relatório da Nao Developer Day: http://singularityhub.com/2012/04/30/ nao-robot-impresses-with-new-abilities-at-paris-conference/ [3] Wall-E: http://www.disney.com/wall-e/ [4] Short Circuit: O Incrível Robô: http://www.imdb.com/title/tt0091949/
Gostou do artigo? o? Queremos ouvir sua opinião. nião. Fale conosco em cartas@linuxmagazine.com.br .com.b Este artigo no nosso o site: site http://lnm.com.br/article/7274 ticle 74
64
[5] A plataforma Nao: http://www.aldebaran-robotics.com/en/ Discover-Nao/Key-Features/hardware-platform.html [6] RoboCup: http://www.robocup.org/ [7] Programa de desenvolvedores Nao: http://www.aldebaran-robotics. com/en/Solutions/For-Development/developer-program.html
www.linuxmagazine.com.br
Agora você tem o controle sobre o desempenho do seu negócio sempre à sua mão. Compras
Finanças
Estoques
NF-e
Vendas Fornecedores Clientes
ERP – SISTEMA DE GESTÃO
Solução completa hospedada em nuvem (Cloud Computing)
A micro e pequena empresa ganha uma solução de classe mundial de sistemas de gestão ERP no modelo comercial com a melhor relação custo/benefício. O Kontroller dispensa aquisição de hardware, licenças de software, técnicos de suporte ou sistema de backup. Garante alta disponibilidade e oferece fácil acesso via browser.
Saiba mais em: www.vectory.com.br/kontroller +55 11 3104 6652
SOFTWARE
TUTORIAL | Palm com Linux e software livre
Vida nova aos antigos Palms com Linux e software livre
TUTORIAL
De volta à vida Não descarte seu antigo Palm. Com software livre, ele pode ganhar vida nova, recursos modernos e você ainda economiza dinheiro. por Dmitri Popov
O
progresso na área de tecnologia móvel é incrível. Em questão de uma década, usuários foram dos primitivos PDAs para dispositivos móveis capazes de lidar com a maior parte das atividades computacionais. Mas esse ritmo de inovação tem um lado negativo: o ciclo de vida do hardware móvel tem a velocidade da luz. Gadgets caros que foram nossos queridinhos há pouco tempo agora são descartados ou jogados em gavetas junto com outras velharias. No entanto, eles ainda são perfeitamente usáveis, tendo inclusive algumas vantagens em comparação com seus sucessores.
Tome como exemplo os dispositivos da Palm. Um PDA da Palm típico consegue se manter em execução por semanas com um conjunto de baterias alcalinas, sendo que você não precisa se preocupar com atualizações de firmware, além de encontrar diversos aplicativos interessantes disponíveis na web. Melhor ainda, a maioria das distribuições Linux mais usadas têm todos os softwares necessários para gerenciar dispositivos Palm em seu desktop. Claro que um aparelho desses não vai rivalizar com smartphones para acessar a Internet, tirar fotos ou postar seus pensamentos nas redes
sociais, mas você ainda pode usar o aparelho para diversas coisas. Para iniciantes, os aplicativos incluídos no Palm ainda são bons para suas finalidades, então você pode usar o aparelho para se manter atualizado com relação aos compromissos, tomar notas e gerenciar tarefas. Um PDA da Palm também é um excelente leitor de documentos e e-books, sendo que diversas ferramentas podem converter arquivos de texto e HTML para o formato PalmDoc. Além disso, um bom aplicativo de banco de dados no Palm pode criar bancos de dados personalizados para diversos objetivos. Em resumo, o Linux, em conjunto com softwares de código aberto, pode salvar seu Palm do esquecimento e dar-lhe uma nova vida.
Conexões J-Pilot
Figura 1 O pacote de ferramentas J-Pilot é uma ferramenta indispensável para gerenciar dispositivos Palm no Linux.
66
O primeiro passo para trazer seu Palm de volta a uma vida longa e produtiva é conectá-lo ao seu desktop Linux. Provavelmente, a forma mais fácil de fazer isso é usar o excelente pacote de aplicativos J-Pilot [1], que simula o software original do Palm e permite com facilidade o gerenciamento de um Palm que esteja conectado (figura 1). O J-Pilot está disponível nos repositórios de software da maioria das distribuições Linux populares, de forma que você pode instalá-lo usando o gerenciador de pacotes de sua distribuição. Compilar o J-Pilot a partir do código-fonte
www.linuxmagazine.com.br
Palm com Linux e software livre | TUTORIAL
Figura 2 O J-Pilot instala aplicativos em seu
Figura 3 O plugin de Backup aprimora o recurso padrão
dispositivo Palm.
de backup do J-Pilot.
também não é difícil, sendo que o site do projeto oferece todas as instruções necessárias para isso. Com o J-Pilot instalado, você pode iniciá-lo com o comando j-pilot ou escolhendo o item J-Pilot no menu Aplicativos. Antes de conectar seu dispositivo Palm e fazer uma sincronização, você deve conferir as configurações do J-Pilot para certificar-se de que o dispositivo está devidamente configurado. Escolha File/Preferences, vá até a aba Settings, certifique-se de que a porta correta esteja selecionada e especifique um número de backups que o J-Pilot deve manter. Nas outras abas, você pode ajustar as opções padrão, caso seja necessário. Após pressionar OK para salvar as mudanças, conecte seu dispositivo Palm, pressione o botão HotSync e pressione Sync (ou use o atalho [Ctrl] + [Y]). Assim como o software original, o J-Pilot é fácil de compreender. Ele abrange quatro aplicativos principais: calendário, agenda de endereços, lis-
ta de tarefas e anotações. Além disso, oferece outras ferramentas úteis: pode, por exemplo, ser usado para instalar aplicativos no dispositivo (figura 2). Para tanto, escolha File/Install (ou use o atalho [Ctrl] + [I]) e adicione um ou mais arquivos no formato .prc e o J-Pilot vai fazer o trabalho de instalação na próxima sincronização. Os principais recursos do J-Pilot podem ser ampliados com o uso de plugins e módulos úteis, já presentes no pacote, como o plugin de backup, por exemplo (figura 3). Para configurá-lo, escolha Plugins/Backup (ou pressione [F5]). Na janela de configuração, você pode especificar o número de backups
que o J-Pilot deve manter e escolher com qual frequência o aplicativo deve fazer as operações (durante cada sincronização, diariamente, semanalmente ou mensalmente). Você também pode excluir alguns bancos de dados do backup ao selecioná-los no painel Databases to Backup e pressionar o botão Ignore. O plugin Keyring também é interessante, atuando como uma interface gráfica para o aplicativo [2]. É uma ferramenta simples e perfeita para armazenar informações sensíveis, como senhas, informações bancárias e notas privadas em um banco de dados criptografado. Graças ao plugin, você pode editar os registros diretamente
Figura 4 Criação de campos no
Figura 5 Capacidade de seleção do
Figura 6 Usando o recurso Find para
banco de dados.
Linux Magazine #93 | Agosto de 2012
Pilot-DB.
a realização de buscas.
67
TUTORIAL | Palm com Linux e software livre
no J-Pilot e sincronizar os dados do Keyring com o dispositivo Palm. De forma geral, o J-Pilot é a melhor ferramenta para o trabalho de gerenciar um dispositivo Palm no Linux, uma vez que é simples de usar, oferece todos os recursos essenciais (como a possibilidade de instalar aplicativos) e vem com plugins muito úteis.
Banco de dados Embora haja muitos aplicativos para Palm circulando na web, o Pilot-DB é provavelmente o mais útil porque permite construir soluções de bancos de dados simples ou complexas diretamente no dispositivo. A solução é flexível o suficiente para criar todos os tipos de bancos de dados – desde um simples gerenciador de despesas até um sistema de gerenciamento de projetos. Melhor ainda, você pode usar o software Java Pilot-DB [3] para criar, editar e usar os bancos de dados Pilot-DB no desktop. Para instalar o Pilot-DB no seu dispositivo Palm, obtenha a edição mais recente do software no site [4], descompacte o arquivo baixado e use o J-Pilot para instalar o aplicativo db. prc, o arquivo de ajuda help-em.prc e os plugins. Para aprender o básico, talvez seja interessante criar um banco de dados simples para armazenar e gerenciar fragmentos de texto. Inicie o aplicativo DB em seu dispositivo Palm e pressione New para criar um novo banco de dados. O aplicativo se alterna para a tela de criação de um banco de dados, onde você poderá criar até nove campos, sendo que o Pilot-DB suporta todos os tipos mais comuns de campos, incluindo string, textos, inteiros e datas. Além disso, o aplicativo pode lidar com união de campos (join) e com cálculos, o que pode ser útil para a criação de bancos de dados mais complexos. Para o banco de dados de teste, especifique alguns campos simples (figura 4), pressione Done e seu banco de dados está pronto. Para adicionar um novo registro neste banco de dados, vá ao menu principal e escolha Records/
68
Figura 7 O aplicativo Java Pilot-DB permite a criação e gerenciamento de bancos de dados no Linux.
New Records. Preencha os campos e pressione Done para salvar o registro. Embora o Pilot-DB pareça bem simples, possui recursos de busca e organização que podem ajudar a criar abas para os registros (figuras 5 e 6). Para escolher registros a serem exibidos, escolha Option/Sort no menu principal e pressione Sort. Fazer buscas também é simples: escolha Record/ Find no menu principal, escreva a consulta, especifique as opções de busca, escolha um campo específico se necessário e pressione Find. O Pilot-DB pode ser aprimorado com o uso de plugins, sendo que o aplicativo vem com alguns bons módulos. O plugin db-report, por exem-
plo, adiciona recursos para a geração de relatórios simples. Com o plugin, você pode criar um relatório simples baseado em uma coluna específica do banco de dados. Para habilitar isso, escolha Options/Plugins, selecione o plugin e pressione Start. Para executar um relatório sobre uma coluna, pressione o cabeçalho da coluna e selecione o comando Run Report. Tenha em mente, no entanto, que o plugin pode gerar relatórios somente para campos numéricos. Embora você possa criar, editar e usar bancos de dados diretamente no dispositivo Palm, projetar bancos de dados complexos e adicionar um grande número de registros com um estilo
Figura 8 O Java Pilot-DB pode importar e exportar dados em uma variedade de formatos.
www.linuxmagazine.com.br
Palm com Linux e software livre | TUTORIAL
detalhado e uma tela pequena não é muito prático. Felizmente, o aplicativo Java Pilot-DB permite que você gerencie bancos de dados Pilot-DB na conveniência de seu desktop Linux (figura 7). O aplicativo é distribuído sob a forma de um único arquivo .jar, de forma que não requer instalação, mas você tem que instalar um ambiente Java Runtime na sua máquina para que seja possível instalar o Java Pilot-DB (o aplicativo funciona bem com o software OpenJDK). Com o Java Pilot-DB você pode criar bancos de dados do início ou abrir e editar bancos de dados criados no Palm. Para fazer edições dos dados, você pode transferir os arquivos .pdb do dispositivo para seu desktop executando uma operação de sincronização. Feito isso, você pode encontrar o banco de dados no diretório ~/.jpilot/Backup/LatestArchive. Em seguida, copie-o para o diretório home e inicie o Java Pilot-DB com: java -jar jpilot-db-x.x.xx-ej.jar
Em seguida, escolha View/Preferences, certifique-se de que o diretório em funcionamento aponte para seu diretório home, ajuste outras preferências se necessário e feche a janela. Os bancos de dados copiados devem estar na janela Database List. Ao dar um duplo clique, o banco de dados se abre e você pode usar todas as ferramentas disponíveis para gerenciar o banco de dados. O Java Pilot-DB é de grande ajuda quando você precisa exportar registros e importar dados existentes em outro banco de dados através de arquivos, sendo que vários formatos populares são suportados, incluindo CVS, XML, HTML, RTF, PDG e arquivos Excel (CSV) (figura 8).
necessidades específicas, mas não deixa de ser uma boa ideia manter alguns essenciais, como o Weasel Reader [5], que permite a leitura de e-books nos formatos TXT e PalmDoc. O aplicativo Weasel Reader apresenta um conjunto impressionante de recursos, incluindo suporte para telas de alta resolução e para o Palm OS VFS, para a leitura de e-books a partir dos cartões de expansão. Além disso, o Weasel Reader inclui um recurso de marcação de páginas (figura 9), de busca, hifenização de múltiplos idiomas, suporte a anotações, possibilidade de exportar textos para o aplicativo Memo Pad e muitos outros recursos. Encontrar e-books nos formatos zTXT e PalmDoc pode ser algo bem difícil nos dias de hoje, mas pode-se converter facilmente outros tipos de arquivos em e-books com a ferramenta Pyrite Publisher, disponível nos repositórios de software da maioria das distribuições Linux. No Ubuntu, você pode instalar o utilitário com o comando: sudo apt-get install pyrite-publisher
Execute pyrpub arquivo.html (substitua arquivo.html pelo nome do arquivo que você quer converter) e o
Linux Magazine #93 | Agosto de 2012
Conclusão Comparado com os dispositivos Android mais modernos, um Palm parece obsoleto, mas com o uso do Linux, você consegue colocar seu velho dispositivo em uso para atividades das mais diversas. Com os recursos certos, seu PDA pode oferecer aplicativos que permitem a leitura de e-books, desenho e a criação de notas rápidas. Além disso, o excelente J-Pilot pode lhe ajudar a manter o Palm sincronizado com seu desktop do Linux. ■
Mais informações [1] J-Pilot: http://www.jpilot.org/ [2] Keyring: http://gnukeyring. sourceforge.net/ [3] Pilot-DB: http://pilot-db. sourceforge.net/ [4] Download do Pilot-DB: http://sourceforge.net/ projects/jpilot-db [5] Weasel Reader: http:// gutenpalm.sourceforge.net/ [6] DiddleBug: http://diddlebug. sourceforge.net/
Aplicativos úteis Embora o PalmOS seja considerado obsoleto, muitos aplicativos ainda existem, a maioria deles sob licenças de código aberto. Claro, os aplicativos que você vai instalar dependem de suas
utilitário faz o resto. Então, transfira o arquivo que será alvo com a extensão .pdb para seu dispositivo Palm com o J-Pilot. O Pyrite Publisher suporta um amplo leque de opções, que pode ser visualizado com o comando pyrpub -h. O aplicativo DiddleBug [6] é outro achado que merece um lugar no dispositivo. Ele combina notas no estilo Post-it com ferramentas de desenho e rascunho, incluindo várias canetas, formas e padrões de preenchimento, além de tinta personalizada e papéis coloridos. O aplicativo DiddleBug também permite vincular um alarme para cada nota, de forma que você possa usar o aplicativo para manter-se a par dos eventos e compromissos.
Gostou do artigo? igo? Figura 9 O Weasel Reader transforma seu dispositivo Palm em um eficiente leitor de e-books.
Queremos ouvir sua opinião. inião. Fale conosco em cartas@linuxmagazine.com.br ne.com. Este artigo no nosso sso site: s http://lnm.com.br/article/7122 r/artic 7122
69
TUTORIAL | Redefinição de senhas com SystemRescueCd
Redefinição de senhas com SystemRescueCd
TUTORIAL
Abra o cadeado com as mãos O que fazer se um usuário esqueceu a senha de seu sistema Linux ou Windows? Ao invés de pensar em ideias mirabolantes, uma prática distribuição Linux em modo Live e focada na solução de problemas pode ser tudo de que é preciso para retomar o controle. por James Stanger
E
squecer a senha e ficar sem acesso ao sistema Linux ou Windows é uma experiência frustrante. Nos dias atuais, não ser capaz de acessar o sistema pode ser pior do que não conseguir abrir o carro; pelo menos no caso do carro você pode conseguir uma carona ou entrar em contato com um chaveiro para abri-lo. No entanto, caso alguém esteja sem acesso ao seu sistema Linux, esta pessoa realmente não encontrará um serviço pronto competente para vir em seu resgate. Porém, não há o que temer: a comunidade do software livre oferece algumas ferramentas poderosas para ajudar a redefinir senhas. Por exemplo, os gerenciadores de inicialização GRUB
e LILO oferecem algumas opções de recuperação. Caso procure por algo mais versátil, o projeto SystemRescueCd fornece uma série de ferramentas para redefinição de senhas e recuperação do sistema. O programa não só redefine senhas no sistema RedHat, Ubuntu ou Linux Mint: ele também pode ajudar a recuperar o acesso perdido em computadores Windows.
Recuperação de sistema do GRUB Às vezes não é necessário uma ferramenta especializada como o SystemRescueCd para recuperar o acesso ao sistema. O tradicional modo
Quadro 1: Gerenciador de boot LILO Para aqueles que utilizam o gerenciador LILO, os passos para entrar no modo de single-user do Linux são os seguintes: 1. Inicie o sistema para que o menu de inicialização do LILO seja exibido. 2. No menu de inicialização do LILO, digite linux single. 3. Pressione [Enter]. 4. O sistema será inicializado e entrará em modo single-user do Linux, onde será visualizado o prompt de comando. 5. Digite passwd. 6. Será solicitada uma nova senha. Anote esta senha, caso seja distraído como eu; no entanto, tenha cuidado ao fazer isso porque pedaços de papel com senhas escritas têm o péssimo hábito de cair nas mãos de pessoas que não devem lê-los. 7. Reinicie o sistema em modo gráfico padrão, como de costume. 8. Faça login no sistema como root e redefina todas as senhas que desejar.
70
single-user do Unix/Linux pode ser tudo de que se precisa. Se o sistema utiliza o gerenciador de inicialização GRUB, é possível entrar no modo single do Linux através do Modo de Recuperação (Recovery Mode) do GRUB e acessar suas opções de inicialização (um procedimento equivalente também está disponível para o gerenciador de inicialização LILO; quadro 1). O Modo de Recuperação está disponível independentemente da distribuição Linux utilizada (por exemplo, Ubuntu 12.04, Red Hat Enterprise Linux 6, Fedora 16 ou Linux Mint 12). Ao utilizar o GRUB para entrar no modo single-user do Linux, em primeiro lugar é preciso certificar-se de que foram removidas todas e quaisquer unidades externas. Mais de uma vez, me confundi tentando montar drives USB externos e outros dispositivos quando estava na verdade trabalhando para recuperar meu disco rígido principal. Tendo a certeza de que foram retirados os dispositivos externos, inicialize o sistema para que o menu do GRUB seja mostrado e escolha o kernel no qual se deseja inicializar. Normalmente, a máquina inicializa com o primeiro kernel listado no menu, mas é possível certificar-se
www.linuxmagazine.com.br
Redefinição de senhas com SystemRescueCd | TUTORIAL
/proc/, /var/ ou o diretório raiz em si (/), através dos comandos: # mount -t proc proc /proc # mount -o remount,rw /
No prompt, digite passwd e pressione [Enter]. Será solicitado que seja digitada a nova senha e logo após pressione [Enter] para confirmar a escolha. Em seguida, reinicie o sistema com o comando reboot, faça o login na conta root e mude outras senhas, caso seja necessário. Figura 1 Com o GParted, é possível criar, editar e formatar partições.
de qual versão será inicializada através da leitura dos números – quanto maior o número, mais atual. Escolha o kernel pressionando as setas para cima ou para baixo. Depois de selecionar a versão do kernel, pressione a tecla [e] para editar a entrada. Escolha a linha que começa com a palavra kernel (geralmente a segunda linha na tela). Depois de selecionar a linha do kernel, pressione a tecla [e] para editar a entrada do kernel. É preciso adicionar a letra S ao fim da linha kernel. Também é possível usar a palavra Single para obter o mesmo efeito. Pressione [Enter], para sair do editor e voltar para o menu do GRUB.
O menu terá agora a linha do kernel modificada (ou seja, a linha com o S maiúsculo (ou Single) no final). Para inicializar neste modo, pressione a tecla [b]. Para saber que a inicialização de fato ocorreu no modo single-user, você verá um prompt de root simples, denotado pela hash (#). Não será possível ver qualquer outra informação sobre o prompt, como, por exemplo, o nome de usuário, o nome do sistema ou o diretório atual. Normalmente, é possível simplesmente redefinir a senha usando o comando passwd (quadro 2). No entanto, dependendo de como o sistema está configurado, talvez seja preciso montar algumas partições:
Figura 2 Como utilizar o UNetbootin para criar um disco de inicialização via USB do SystemRescueCd.
Linux Magazine #93 | Agosto de 2012
Recuperação usando o SystemRescueCd O SystemRescueCd é uma distribuição Linux Live semelhante ao Knoppix. A distribuição é projetada para a solução de problemas no sistema (quadro 3), o que significa que ela permite: ➧ Alterar senhas de usuários em sistemas Linux ou Windows, incluindo as senhas para as contas de root e Administrador; ➧ Verificar a integridade das partições existentes; ➧ Criar novas partições ou formatar as partições existentes, utilizando a ferramenta parted ou seu equivalente gráfico, o GParted (figura 1); ➧ Recuperar arquivos de sistemas Linux ou Windows que não iniciam. Naturalmente, a maioria das ferramentas de resolução de problemas encontradas no SystemRescueCd também está disponível para outras distribuições Linux. Os procedimentos básicos descritos neste artigo irão funcionar com outras distribuições Live do Linux focadas em solução de problemas, embora os detalhes possam variar. Neste caso, estou usando o SystemRescueCd como um exemplo de como redefinir senhas iniciando o sistema a partir de um disco Live do Linux. Devo acrescentar que o SystemRescueCd usa o Shell de comando Zsh por padrão, o que pode ser confuso para usuários que estão acostumados
71
TUTORIAL | Redefinição de senhas com SystemRescueCd
com o Shell Bash. Algumas vezes quando uso o SystemRescueCd, recebo uma mensagem de erro divertida que me diz que estou usando o Shell errado. Caso não esteja familiarizado com Zsh e prefira trabalhar no Bash, é possível mudar para o seu preferido digitando o comando a seguir: export SHELL=/bin/bash
Uma vez baixada a imagem do SystemRescueCd a partir do site do projeto [1], é possível utilizar qualquer ferramenta adequada para gravar a imagem em um CD ou unidade flash (quadro 4).
mkdir /mnt/bootdir
Em seguida monte a partição Linux para a partição do SystemRescueCd: mount /dev/sda5 /mnt/bootdir
O comando chroot permite acessá-la:
Redefinição de senhas
chroot /mnt/system
Às vezes, o sistema está danificado de uma forma que não vai deixar que seja redefinida a senha usando o modo single-user do Linux. Para redefinir uma senha baseada em Linux com o SystemRescueCd, comece inicializando o modo Live do SystemRescueCd. Para descobrir qual partição do disco contém o diretório /etc, use o
Redefina a senha usando o comando passwd:
Quadro 2: Aviso: não faça mau uso dessa informação
Depois de ter acessado o sistema com o SystemRescueCd, não é preciso ir correndo para o comando passwd. Se necessário, monte drives e edite os arquivos de senhas. Na verdade, uma vez conectado no modo single-user do Linux, é possível editar e navegar entre os diretórios ou fazer alterações em arquivos de texto críticos. Por exemplo, em vez de usar o comando passwd, edite o arquivo /etc/shadow diretamente e remova as informações de senha. Para fazer isso, monte a partição que contém o diretório /etc – que normalmente reside na partição raiz – e digite o comando:
Acho que eu não deveria nem ter que dizer isso, mas não redefina senhas em qualquer outro sistema, a não ser no seu. Não abuse desses comandos. Você pode se colocar ou aos outros em sérios apuros. Estas são ferramentas sérias que devem ser usadas apenas em seus próprios sistemas para obter acesso aos seus próprios dados.
Quadro 3: Backup do sistema Antes de utilizar ferramentas como o SystemRescueCd, uma ideia muito boa é realizar um backup completo do disco que está sendo acessado. Toda vez que é montada uma unidade do sistema e nela são feitas alterações, corre-se um pequeno risco de desestabilizar o sistema. Por exemplo, perder alguns dados ou até mesmo tornar um disco inacessível. Embora este tipo de evento seja raro, ainda é possível.
72
utilitário fdisk. A partição /etc está geralmente na raiz da unidade (/). Veja o comando e a saída na listagem 1. Na listagem 1, o diretório /dev/sda5 é a partição principal, como foi revelado por seu tamanho e tipo de partição, então será preciso montar esta partição. Para isso, primeiro crie um diretório que irá atuar como ponto de montagem:
passwd novasenha
O comando umount desmonta a partição. Uma vez de volta ao sistema Linux problemático, use a conta root com a nova senha que foi especificada.
Montagem de discos
# mount -rw / /mnt/particao
Se necessário, crie o diretório /mnt/ particao. Após montar a partição /, utilize seu editor de texto preferido para acessar o arquivo /etc/shadow e edite-o para que a conta de usuário escolhida (por exemplo, a conta root)
não contenha as informações de hash de senha. Em seguida, desmonte esta partição, reinicie a máquina e acesse o sistema Linux em uma sessão normal. Neste ponto, será possível fazer login na conta sem especificar uma senha.
Inicialização protegida por senha do GRUB Mas, o que fazer se o GRUB estiver protegido com senha e esta senha for esquecida e ainda pior, se for impossível recuperá-la para entrar modo single-user? Com o SystemRescueCd, é possível montar a partição /boot ou a partição raiz (/), como discutido anteriormente. Para começar, mude para o diretório /boot/grub/ e copie o arquivo (sem editá-lo) para o mesmo diretório com um novo nome: cp /boot/grub/menu.lst /boot/grub/menu.lst_bak
Esta é uma etapa importante, principalmente para casos onde o arquivo for editado de forma incorreta. Em um editor de texto, edite o arquivo /boot/ grub/menu.lst e procure pela linha: password -md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
Agora, comente a linha com a senha e salve as alterações. Desmonte o diretório e reinicie o sistema. Depois de seguidos estes passos, será possível acessar o GRUB sem senha.
Redefinir senhas em sistemas Windows Também é possível usar as ferramentas do disco de inicialização em uma partição do Windows. Suponhamos que seja necessário iniciar o Windows e alterar a senha de uma conta de usuário. Para começar, inicie o SystemRescueCd e use o utilitário fdisk para listar as partições existentes, como abaixo: fdisk -l
www.linuxmagazine.com.br
Redefinição de senhas com SystemRescueCd | TUTORIAL
Em seguida, é preciso procurar por uma partição NTFS que pareça ser a partição do sistema Windows. Por exemplo, algo como: /dev/sda3 (NTFS)
Depois de encontrada a unidade NTFS correta (vamos assumir que seja /dev/sda3), use o comando ntfs: ntfs -3g /dev/sda3 /mnt/windows -o force
Este comando monta a unidade NTFS que está apontada para /dev/ sda3 em /mnt/windows/. Se esse diretório não está disponível, é necessário criá-lo: mkdir /mnt/windows
Uma vez montada a unidade NTFS no diretório /mnt/windows, acesse-a: cd /mnt/windows/Windows/System32/ config
Agora, está tudo pronto para a listagem das contas do Windows no banco de dados SAM, através do comando chntpw:
[1] e depois [Enter]. Será solicitada uma confirmação para a qual escolha a opção [y] e pressione [Enter] para concluir a redefinição da conta. Reinicie a máquina, digitando o comando reboot e pressione [Enter]. Após a reinicialização da máquina, será possível entrar no Windows, pela conta do usuário James Stanger sem utilizar senha. O SystemRescueCd torna isso muito fácil. As etapas anteriores simplesmente alteram a senha. Caso o objetivo seja obter completo acesso de leitura/gravação a um disco do Windows, digite o comando ntfs-3g /dev/sda1 /mnt/windows e então será possível montar o disco e copiar ou mesmo gravar arquivos nele. Gostaria de recomendar, no entanto, que sejam copiados somente os arquivos do sistema Windows; escrever em outro sistema de arquivos é sempre muito arriscado, especialmente um que não é baseado em Linux. Depois de ter sido montada a unidade do
Windows, é possível navegar através dela usando o comando cd como se fosse um sistema Linux.
Conclusão Existem vários métodos para recuperação de senhas em sistemas Windows e Linux. Embora seja possível redefinir as senhas no modo single-user do Linux, acessado através do gerenciador de inicialização GRUB (ou LILO), o SystemRescueCd oferece outra alternativa mais versátil. Vale a pena reiterar que não se deve usar essas ferramentas para fins maliciosos. E por “malicioso”, quero dizer que uma pessoa não deve usar essas ferramentas para invadir o sistema de alguém ou visualizar informações e dados que não sejam dela. Se preciso ser ainda mais claro, sugiro que as pessoas saiam um pouco do modo “tecnológico” e tenham uma boa aula de ética. Em todo caso, o SystemRescueCd é uma ferramenta poderosa. Que seja usada com responsabilidade! ■
chntpw -l SAM
Listagem 1: Listagem de partições com fdisk
O resultado deste comando será uma lista de nomes de contas de usuário. Selecione o nome da conta que requer redefinição de senha. Neste caso, vamos assumir que seja necessário alterar a conta de um usuário chamado James Stanger:
01 02 03 04 05 06 07 08
chntpw -u "James Stanger"
Após a execução do comando, será exibido um menu com diversas opções. Para redefinir a senha, pressione
Mais informações [1] Download do SystemRescueCd: http://www.sysresccd.org/ [2] UNetbootin: http:// unetbootin.sourceforge.net/
Gostou do artigo? igo? Queremos ouvir sua opinião. inião. Fale conosco em cartas@linuxmagazine.com.br ne.com. Este artigo no nosso sso site: s http://lnm.com.br/article/7269 r/artic 7269
Linux Magazine #93 | Agosto de 2012
#fdisk -l Device Boot Start End Blocks Id System /dev/sda1 63 144584 72261 de Dell Utility /dev/sda2 145408 4339711 2097152 7 HPFS/NTFS/exFAT /dev/sda3 * 4339712 165822455 80741372 7 HPFS/NTFS/exFAT /dev/sda4 165822930 234436544 34306807+ 5 Extended /dev/sda5 165822993 231528779 32852893+ 83 Linux /dev/sda6 231528843 234436544 1453851 82 Linux swap / Solaris
Quadro 4: Usando o UNetbootin Para executar o SystemRescueCd a partir de um pendrive, prefiro usar um aplicativo livre chamado UNetbootin (figura 2). O UNetbootin está disponível através dos repositórios de pacotes de várias distribuições populares do Linux, mas também pode ser baixado a partir da página do projeto no SourceForge [2]. Versões do UNetbootin estão disponíveis para sistemas Linux, Windows e Mac OS X. Inicie o UNetbootin e, em seguida, escolha a configuração Disk Image. Selecione SystemRescueCd na seção Distribution, e então clique em Disk Image. Em seguida, escolha o drive USB apropriado. Clicando em OK, o processo de criação de uma unidade USB inicializável do SystemRescueCd é iniciado. Lembre-se de que este procedimento irá apagar todos os dados do pendrive. Depois de alguns minutos, haverá um novo e inicializável drive USB. Para usar o pendrive, desligue o computador e o reinicie entrando na BIOS do sistema para certificar-se de que está configurada para inicializar a partir de um drive USB. Uma vez garantido de que sua BIOS está configurada para inicializar um pendrive, reinicie a máquina. Quando o SystemRescueCd carregar, siga os passos para chegar até o terminal e inicie as tarefas para a redefinição de senha ou navegue na estrutura de disco do seu sistema Linux ou Windows.
73
TUTORIAL | Sistemas de arquivos Linux no Windows
TUTORIAL
Sistemas de arquivos Linux no Windows
Estenda a mão para o Windows Você já sabe que é possível acessar as partições do Windows no Linux. Mas, e se desejarmos nos conectar às partições Linux a partir do Windows? O Ext2Fsd oferece uma solução fácil para resolver a questão. por James Stanger
M
uitos usuários estão acostumados a acessar partições Windows a partir de seus sistemas Linux, e várias populares distribuições Linux já vêm com ferramentas embutidas para acessar partições NTFS do Windows. Mas e se quisermos fazer o caminho inverso? Suponhamos que você esteja trabalhando em um sistema Windows, e que precise pegar os arquivos do seu Linux, que possui um sistema de arquivos ext4 ou JFS, ou precise transferir alguns arquivos do Windows para sua partição Linux ext4. Trabalho no Linux de 90 a 95% do tempo, mas a empresa em que trabalho usa um serviço de conferência/ webinar que não dá suporte ao Linux. Ao contrário de serviços como o Adobe Connect e o WebEx, este serviço exige um ambiente Windows. Então, faço um dual-boot entre o Linux e o Windows (podem me chamar de antiquado, mas acho que serviços como o GoToMeeting/GoToWebinar simplesmente não funcionam bem em um ambiente virtualizado).
74
Sempre preciso acessar os arquivos armazenados no meu sistema de arquivos Linux enquanto estou executando o Windows, a para isso uso o Ext2Fsd. Outras ferramentas estão disponíveis para acessar partições Linux a partir do Windows, mas descobri que o Ext2Fsd é estável e fácil de usar. Além de fornecer acesso de leitura/gravação de arquivos em partições Linux, o Ext2Fsd suporta: ➧ Atribuição automática de pontos de montagem, tornando mais fácil acessar os arquivos do Linux. ➧ Capacidade de gravar arquivos grandes, de até 4GB. ➧ Compartilhamento via Common Internet Filesystem (CIFS), o que significa que é possível trabalhar em drivers de rede mapeados do Linux no Windows. ➧ Journaling (log de todas as mudanças ocorridas) nos sistemas de arquivos ext3 e ext4. O projeto Ext2Fsd fornece uma interface gráfica acessível conhecida como Volume Manager (Ext2Mgr)
para gerenciar as partições Linux no Windows. Até este momento, o Ext2Fsd suporta Windows 2000, XP, 2003, Vista e Windows 7 – tanto para a plataforma x86 como para a AMD64.
Instalar a executar o Ext2Fsd Baixe o binário de instalação do Ext2Fsd a partir do site do projeto [1] ou da página do SourceForge [2]. Depois de obtido o binário, basta clicar nele duas vezes para iniciar a instalação no sistema Windows. Verifique se há permissões suficientes para a instalação do arquivo. Embora não sejam necessárias permissões administrativas, uma conta muito restrita, como a que pode haver em seu local de trabalho, talvez impeça a instalação do Ext2Fsd sem a ajuda de um administrador do sistema. Certifique-se de fazer backup dos arquivos em suas partições Linux antes de instalar um serviço como
www.linuxmagazine.com.br
Sistemas de arquivos Linux no Windows | TUTORIAL
o Ext2Fsd. Não ouvi falar de um número significativo (ou até mesmo insignificante) de pessoas que tenham perdido seus dados ao utilizar esse serviço, mas é uma boa ideia ser cuidadoso. O binário de instalação tem uma interface simples baseada em um assistente. A parte mais importante da instalação é mostrada na figura 1. Será perguntado se desejamos: ➧ Iniciar o serviço Ext2Fsd automaticamente quando iniciarmos o sistema Windows. ➧ Habilitar suporte de escrita para sistemas de arquivos ext2. ➧ Permitir que os arquivos sejam escritos em um sistema de arquivos ext3 com journaling. Instalei o Ext2Fsd no Windows XP, Vista e Windows 7, e nunca tive problemas com o Ext2Fsd iniciando automaticamente, exceto quando estava usando um serviço concorrente, como o TrueCrypt (conforme descrevo mais adiante neste artigo). Quando finalizado o assistente, reinicie o computador para certificar-se de que o Ext2Fsd está insta-
Figura 1 Opções de configuração do Ext2Fsd.
lado corretamente. Se na instalação foi selecionada a opção Make Ext2F automatically started when system boots, será possível acessar os sistemas de arquivos Linux ext2, ext3 e ext4 quando o Windows reiniciar. Aqueles que não gostam de serviços que iniciam “automagicamente” podem simplesmente desmarcar a
caixa de seleção e iniciar o serviço manualmente quando necessário. Para iniciar o Ext2Fsd manualmente, abra o Ext2Fsd Volume Manager, e em seguida, vá para Tools/ Service Management e selecione a opção para iniciar o serviço do Ext2Fsd. Uma vez que o Ext2FS iniciar, irá montar automaticamente
Tecla Descrição F1
Fornece acesso à função de ajuda do Ext2Fsd, que é uma lista de FAQ no site do projeto.
F2
Informa sobre a versão do Ext2Mgr que está em execução (a mensagem “Sobre”).
F3
Fornece informações de gerenciamento de volume ext2.
F4
Mostra a tela onde é possível gerenciar os pontos de montagem no sistema.
F5
Recarrega o Ext2Fsd e atualiza a tela.
F6
Mostra as propriedades de cada unidade na janela de gerenciamento.
F7
Exibe os serviços utilizados pelo Ext2Fsd.
F8
Mostra estatísticas do serviço do Ext2Fsd.
F9
Fornece uma tela que permite remover rapidamente letras de unidade inexistentes.
F10
Copia todos os dados do Ext2Fsd para a área de transferência do Windows.
F11
Faz com que todas as alterações salvas no Ext2Fsd sejam salvas no arquivo de configuração (opção “Liberar Cache para o Disco”).
F12
Permite alterar o tipo de partição. Se precisar mudar o formato suportado (por exemplo, de ext2 para ext3) rapidamente, use esta tecla.
Tabela 1 Teclas de atalho do Ext2Fsd.
Linux Magazine #93 | Agosto de 2012
75
TUTORIAL | Sistemas de arquivos Linux no Windows
unidade com a letra G:/, ele será encontrado dessa forma: G:/home/james/diretorio
Claro que também é possível ler e escrever nos diretórios, criar novos, apagá-los e assim por diante.
Solução de problemas
Figura 2 Gerenciamento de sistemas de arquivos Linux com o Ext2Fsd Volume Manager.
as unidades Linux, exceto a partição de swap, que não é necessária. O Ext2Fsd também vai atribuir automaticamente uma letra para esta unidade (quadro 1).
Navegue entre as unidades A navegação entre unidades é tão simples quanto iniciar o Ext2Fsd Volume Manager, como mostrado na figura 2. Destaquei em vermelho as unidades Linux. Depois de montada uma unidade, é possível
navegar através do Ext2Fsd utilizando teclas de atalho. A tabela 1 mostra um resumo rápido dos atalhos disponíveis para uso com o Ext2Fsd. Após a montagem de um volume Linux no sistema Windows, é possível acessá-lo usando o Windows Explorer como se faria com qualquer outro volume. Ele será listado em uma letra de unidade (por exemplo G:/) e, em seguida, sob o ícone do diretório-raiz (por exemplo, /). Se, por exemplo, é preciso acessar o diretório home da
No Windows Vista, XP e Windows 7, vi a seguinte mensagem aparecer imediatamente após efetuar login no sistema Windows: O parâmetro não está correto. Este problema é causado pelo recurso User Access Control (UAC) do Windows, que controla a forma como os usuários interagem com a interface [3] [4]. No Painel de Controle, simplesmente desabilite o UAC nas configurações presentes nas Contas de Usuário. De vez em quando, o serviço do Ext2Fsd não será iniciado. Como resultado, as partições ext3 ou ext4 montadas aparecerão como se não estivessem formatadas. Se isso acontecer, verifique se o serviço do Ext2Fsd iniciou abrindo o Ext2Mgr Volume Manager, vá para Tools/Service Management e clique no botão Start. Em seguida, verifique se o serviço foi iniciado. Depois de ter verificado isso, remova a letra da unidade e a atribua novamente. Assim, será possível acessar o serviço.
Quadro 1: Métodos alternativos de montagem Quando o serviço do Ext2Fsd é inicializado (tanto na inicialização automática quanto manualmente, através da interface do Volume Manager), o Ext2Fsd automaticamente encontra e monta unidades Linux que foram detectadas, e lhes atribui uma letra de unidade. Outras técnicas para a montagem e atribuição de letra de unidade são as seguintes: ➧ É possível usar uma API chamada DefineDosDevice para definir letras de unidades. Caso esse método seja utilizado, qualquer letra de unidade atribuída será perdida cada vez que a máquina for reinicializada; no entanto, o DefineDosDevice é rápido e conveniente. ➧ Modificar o Registro do Windows manualmente para armazenar a letra da unidade como um dispositivo do DOS ou do Windows. Para editar o Registro, use uma ferramenta como o regedit no Windows 7 e modifique a seguinte chave: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices]"X:"="2. \Device\HarddiskVolume1"
76
www.linuxmagazine.com.br
Sistemas de arquivos Linux no Windows | TUTORIAL
Às vezes, o recurso Driver Signature Enforcement em sistemas Windows pode causar problemas com o serviço do Ext2Fsd. É possível desativar esse recurso no momento da inicialização, ao pressionar a tecla [F8] e selecionar a opção Disable Driver Signature Enforcement. Em alguns casos, quando sistema é reiniciado, o recurso Driver Signature Enforcement é ativado novamente. Para desativar este recurso permanentemente, execute o cmd.exe como administrador e digite os seguintes comandos: bcdedit -set loadoptions DDISABLE_INTEGRITY_CHECKS bcdedit -set nointegritychecks ON
Observe que desabilitar esse recurso pode causar problemas de segurança. Trojans e vírus podem ser capazes de comprometer seu sistema com mais facilidade. Ainda assim, um bom antivírus oferece proteção suficiente, mesmo que estejamos falando de sistemas Windows.
Advertências Em primeiro lugar, nunca use o Ext2Fsd para atribuir uma letra de unidade para a partição de swap. Se o fizer, provavelmente corromperrá a partição e causará problemas no sistema Linux. Em segundo lugar, não é uma boa ideia usar o recurso de montagem automática para unidades removíveis: tal uso faria com que se
passasse por todos os tipos de erros e incidentes prováveis do serviço Ext2Fsd. Embora esses erros não sejam particularmente fatais, ninguém quer voltar para as entranhas de um sistema Windows e corrigir os serviços cada vez que o sistema for inicializado. Em terceiro lugar, tenha cuidado com os conflitos entre o Ext2Fsd e outros serviços de disco. Por exemplo, o TrueCrypt e o Ext2Fsd não funcionam nem se comportam bem juntos, pois ambos tentam acessar os volumes ao mesmo tempo. Se o TrueCrypt tenta montar um volume no Windows ao mesmo tempo que o Ext2FS, o sistema experimenta uma condição de concorrência de acesso, o que poderia causar uma lentidão do sistema ou o surgimento da famosa tela azul da morte. Para evitar tais problemas, basta desativar a montagem automática de drives no TrueCrypt ou no Ext2Fsd (ou em ambos). Também percebi que quando monto um disco com o TrueCrypt primeiro e depois uso o Ext2Fsd, não encontro esse problema em meus sistemas Windows 7 ou Windows Vista.
Caso não consiga executar o Ext2Fsd no Windows 7, tente desinstalá-lo e, em seguida, reiniciar e desativar a opção Disable Driver Signature Enforcement, conforme descrito anteriormente neste artigo.
Conclusão Não precisamos ter o Ext2Fsd para acessar partições Linux no Windows. Ferramentas como o Explore2fs [5] e o Linux Reader [6] oferecem características semelhantes, embora eu pessoalmente prefira a estabilidade e a versatilidade do Ext2Fsd. Mesmo que você não utilize sistemas Windows o tempo todo, é bom saber que realmente poderá acessar suas partições Linux a partir do Windows. O Ext2Fsd é uma ferramenta bastante útil. É poderosa, simples e confiável, embora não seja infalível, uma vez que é possível negociar algumas questões no que diz respeito aos serviços concorrentes, como o TrueCrypt, e uma vez que é possível mapear ou compartilhar uma unidade. Ainda assim, é convenientemente possível usar o sistema Windows de forma eficiente para acessar os arquivos e diretórios do Linux. ■
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/7270
Mais informações [1] Ext2Fsd: http://www.ext2fsd.com/ [2] Ext2Fsd no SourceForge: http://sourceforge.net/projects/ext2fsd/files/Ext2fsd/0.51 [3] “O que é Controle de Conta de Usuário?” http://windows.microsoft. com/pt-br/windows-vista/What-is-User-Account-Control [4] “Entenda o Controle de Conta de Usuário no Windows 7”: http://www.howtogeek. com/howto/11584/understanding-user-account-control-in-windows-7 [5] Explore2fs: http://www.chrysocome.net/explore2fs [6] Linux Reader: http://www.diskinternals.com/linux-reader
Linux Magazine #93 | Agosto de 2012
77
PREVIEW
Linux Magazine #94 Nuvem privada Na próxima edição da Linux Magazine, você irá aprofundar-se no universo dos ambientes privados de nuvem. Saiba como utilizar uma API para desenvolver sua própria infraestrutura com DeltaCloud, aprenda como criar uma infraestrutura de nuvem para jogos e saiba como funciona a análise forense na nuvem! Até lá. ■
Admin Magazine #07 Storage Na Admin Magazine #07, vamos falar sobre armazenamento em larga escala, ou seja, storages. Atualmente 10 entre 10 empresas de todos os segmentos utilizam storages para armazenar seus arquivos e programas. Você irá aprender algumas novas técnicas para armazenamento de arquivos em storages. Não perca!
82
www.linuxmagazine.com.br