Não, não é primeiro de Abril novamente.
Parece mesmo que desde a saída do CEO da Microsoft Steve Ballmer, e com a chegada de Satya Nadella ao cargo de CEO, muitos paradigmas mudaram na empresa. Muitos desenvolvedores e usuários foram e são ouvidos agora, e muitas pesquisas feitas para atender as necessidades apontadas por eles. Dentre eles, a expansão de seu sistema operacional Windows 10 abraçando diversos conceitos de unificação de recursos entre plataformas, convergência, a adição de diversos recursos existentes em outros sistemas operacionais como no Linux e Mac, expansão de produtos para outros sistemas operacionais como o SQL Server para Linux, e assim por diante.
E agora mais uma novidade. Desta vez, sobre um projeto real que a Microsoft fez em parceria com a Canonical chamado Ubuntu User Space divulgado em sua conferência Build 2016. Trata-se dos binários do Ubuntu rodando dentro do Windows.
Dustin Kirkland líder do time de estratégia, ciclo de vida e roadmap do Ubuntu, e que trabalha para o CEO da Canonical Mark Shuttleworth, publicou em um artigo do Insights do Ubuntu a notícia após participar da conferência Build 2016 da Microsoft, e vou transcrever aqui integralmente.
Mark Shuttleworth CEO da Canonical, também se pronunciou sobre o projeto dizendo:
“Em nossa jornada para trazer software livre para o público mais amplo possível, este não é foi um momento que poderíamos ter previsto. No entanto, estamos muito satisfeitos de estar por trás do Ubuntu para Windows, o compromisso de responder às necessidades dos desenvolvedores do Windows explorando Linux desta maneira nova e surpreendente, e estamos animados com as possibilidades anunciadas por esta mudança inesperada dos acontecimentos.”
Segue abaixo a descrição de Dustin Kirkland:
É meio difícil de entender, então eu vou explicar mais detalhadamente.
- …Os usuários do Windows 10…
- …Poderão abrir o menu Iniciar do Windows…
- …E digitar “bash” [enter]…
- …Que irá abrir um terminal cmd.exe…
- …Rodando o Ubuntu /bin/bash…
- …Com acesso total a todo o espaço do usuário Ubuntu.
- …Isso significa trabalhar com o apt, ssh, rsync, find, grep, awk, sed, sort, xargs, md5sum, gpg, curl, wget, apache, mysql, python, perl, ruby, php, gcc, tar, vim, emacs, diff, patch…
- …E a maioria das dezenas de milhares de pacotes binários disponíveis nos arquivos do Ubuntu!
Mas aí você pergunta…
Certo, então apenas Ubuntu rodando em uma máquina virtual?”
Não! Esta não é uma máquina virtual! Não há nenhuma inicialização do kernel Linux em uma máquina virtual sob um hypervisor. É apenas o Ubuntu user space.
Ah, ok, então este é o Ubuntu em um contêiner, então?”
Não! Este não é um contêiner. São os binários nativos do Ubuntu rodando diretamente no Windows.
“Hum, bem, é como o Cygwin talvez?”
Não! Cygwin inclui utilitários de código aberto que são recompilados da fonte para rodar nativamente no Windows. Aqui, estamos falando de bit-por-bit, check-sum por check-sum, os binários ELF Ubuntu rodando diretamente no Windows.
“Então, talvez algo como um emulador de Linux?”
Agora você está ficando mais quente!
A equipe de desenvolvedores da Microsoft tem estado a trabalhar arduamente adaptando uma tecnologia de pesquisa da Microsoft para executar basicamente tradução em tempo real do Linux syscalls em syscalls do sistema operacional Windows. Geeks podem concluir corretamente que é algo do tipo do inverso do “Wine” – binários Ubuntu rodando nativamente no Windows. Microsoft chama de seu “Windows Subsystem para Linux”. (E não, não é de código aberto).
Observação do Cleuber: Sabe quando você usa o Wine para emular programas de Windows dentro do Linux? Seria isso, mas sem a necessidade de um “Wine para Windows”, por causa das traduções em tempo real dos syscalls.
Agora você poderá usar o ssh para acessar outros sistemas Linux. Não haverá mais a necessidade do Putty! Apenas ssh diretamente de dentro do shell.
Está tudo funcionando exatamente como o esperado? Não, não completamente. A vasta maioria da LTP funciona bem. Mas há algumas imperfeições ainda, especialmente em torno tty. Meu amado Byobu, tela, e tmux não chegam a funcionar ainda, mas eles estão chegando! A imagem do Ubuntu que está sendo usada é a Ubuntu 14.04 LTS, mas em breve mudará para a do Ubuntu 16.04 LTS na Windows Store muito, muito em breve.
Finalmente, eu imagino que alguns de vocês – Que usam há muito tempo o Windows e o Linux Ubuntu talvez ainda estejam pensando, ” por quê?!?” Este parece ser um endosso quase surreal pela Microsoft sobre a importância de código aberto para desenvolvedores. Na verdade, o que é uma oportunidade fantástica para fazer uma ponte do mundo da tecnologia de código livre e aberto diretamente em qualquer desktop do Windows 10 no planeta. E um vector para aprender e usar mais o Ubuntu e Linux em nuvens públicas, como Azure. Do ponto de vista da Microsoft, uma variedade de pesquisas e estudos de usuários têm apontado para o bash e outras ferramentas do Linux – e muito especificamente, o Ubuntu – para estar disponível no Windows, e sem a pesada virtualização completa.
Então, se você faz parte do programa “Insider” do Windows terá acesso ao beta inicial desta tecnologia.
Veja abaixo o vídeo da Build 2016 com o pessoal da Microsoft apresentando o recurso.
Obs. Buscando pela internet, já vi pessoas usando o Xming X Server para chamar aplicações do Ubuntu com interface gráfica como o vim, o xeyes (apenas para testar) e o Firefox do Ubuntu dentro do Windows. Ainda com performance lenta e travando, mas ainda sim mais rápida do que chamando a aplicação via conexão remota VNC ou ssh com janela gráfica. (por ser uma execução local e independente da conexão de rede com outra máquina).
Como o projeto está em desenvolvimento, creio que após ser lançado e estiver maduro, entregará recursos preciosos especialmente para desenvolvedores que em alguns casos, adoram os recursos do Linux, mas que muitas vezes precisam também trabalhar no Windows.
Abraços
Cleuber