acelerando vms linux no windows

http://www.flickr.com/photos/martin_heigan/4544138976/sizes/m Recentemente passei por uma situação onde o ambiente padrão é windows, mas podemos usar linux dentro de uma máquina virtual (VM). No geral tudo funciona muito bem, exceto o vídeo, que costuma ficar muito lento, especialmente se você está usando VirtualBox.

Minha motivação para não utilizar o VMware player, que proporcionaria um vídeo mais rápido, é o fato de não existir versão do player pra OSX (Apenas o VMware Fusion, que é bem pago) - e eu gosto de poder migrar as imagens de SO sem maiores complicações.

A ferramenta que salvou o dia é o Xming - um servidor X para windows, que utiliza os recursos de vídeo acelerado disponíveis para renderizar as janelas, etc, proporcionando uma experiência de uso bem legal!

O segredo é instalar o Xming, e após isso iniciar os processos dentro da VM, só que apontando para um display diferente, o display do Xming! Isso é muito fácil de fazer, basta usar a variável DISPLAY dentro de qualquer terminal.

Se você estiver usando VirtualBox no modo NAT (padrão), a sua máquina hospedeira estará acessível de dentro das VMs no endereço ip 10.0.2.2, então basta fazer isso (após iniciar o Xming)

DISPLAY=10.0.2.2:0 xterm &

Este comando pedirá ao linux que execute um xterm no display 0 da máquina 10.0.2.2.

A parte mais legal, é que uma vez que o xterm apareceu, tudo que você iniciar nele já usa o novo display automaticamente; dá até pra iniciar um gerenciador de janelas, como Gnome ou KDE!

Vale lembrar que o protocolo de rede usado pelo X é por padrão inseguro, então só serve mesmo pra usar em casos como esse ou redes locais; se precisar transitar esses dados via internet, usar x11 forwarding over ssh provavelmente será uma opção melhor; não tão rápida, mas mais segura com certeza!

Mão na roda!


pareando remotamente com tmux

Este artigo é uma continuação do pareando remotamente

No outro post, havíamos falado do screen, uma excelente ferramenta tanto para pareamento remoto, como para simplesmente garantir que os programas continuem rodando mesmo que a sua conexão ssh caia.

Porém, como nem tudo é perfeito, o screen tem suas limitações, e, no melhor estilo, surge na comunidade uma alternativa interessante: tmux

Se eu tinha falado de zilhões de atalhos para você conseguir fazer uma sessão de pair-programming remoto via terminal, sinto desapontá-lo, mas o tmux tornou tudo mais fácil:

Enquanto um usuário conecta no servidor e executa

tmux

O outro usuário conecta com o mesmo usuário e executa

tmux attach

O resultado é instantâneo, simples e eficiente. Tudo que você estava acostumado a usar no screen continua funcionando no tmux; a única diferença é que o atalho ctrl+a virou ctrl+b, por questões de interoperabilidade (o criador do tmux era usuário do screen e desenvolveu o tmux usando screen). Isso pode ser configurado, mas isso fica para outra oportunidade.

Acho que a principal coisa a destacar no tmux é o suporte a splits (uma beleza pra usuários de vim como eu), suporte a unicode e 256 cores; falando das partes internas, uma arquitetura 100% client/server, permitindo inclusive que as janelas possam ser movidas de uma sessão para outra, além de retirar um monte de funcionalidades obscuras presentes no screen, como suporte a terminais seriais e outras coisas exóticas. A descrição completa das diferenças você pode encontrar aqui

Já experimentou? Aposentei o screen por aqui...