WindowsBash

Bash de Linux rodando nativamente em Windows

Recentemente, publicamos o anuncio da Microsoft informando que sua aplicação de banco de dados, o SQL Server irá também rodar em Linux a partir da versão 2016. A matéria pode ser conferida clicando aqui.

Hoje tenho mais um anuncio surpreendente. Ontem 30 de Março/2016, durante a conferência de desenvolvedores, a Build 2016, a Microsoft fez um novo grande anuncio.

Não é de hoje que a Microsoft está trabalhando em um projeto em conjunto com a Canonical, porém, durante a Build 2016, eles revelaram este projeto, com uma demonstração durante a abertura de Kevin Gallo.

Um espaço de usuário Linux Ubuntu e uma shell Bash, rodando nativamente em uma console do Windows 10 como se fosse o cmd.exe

Veja abaixo o que Dustin Kirkland (membro da equipe de estratégia e produto da Canonical) disse a respeito da novidade da Microsoft antes de entrar em entrevista com com a channel9 que poderá ser assistida ao final da matéria.

Vamos com calma para você poder digerir essa informação com maior facilidade:

Simplesmente, os usuários de Windows 10 poderão abrir o menu iniciar e digitar “Bash” e pressionar enter. Irá abrir um prompt de comando rodando um /bin/bash do Ubuntu, com acesso total a todo espaço de usuário linux. Isso, quer dizer, 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…, além da maioria das dezenas de milhares de pacotes binários disponíveis nos arquivos do Ubuntu!

Então a primeira primeira pergunta feita:

“Certo, então é apenas uma máquina virtual Ubuntu rodando?” Não! Não é uma máquina virtual , não há nenhuma inicialização de kernel Linux em uma máquina virtual rodando sobre um virtualizador, é apena sum espaço de usuário Ubuntu.

“Legal, então é um container de Ubuntu né?” Não! Este não é um container, são binários nativos do Ubuntu rodando diretamente no Windows.

“ah, então é tipo um Cygwin?” Não! Cygwin inclui utilitários open source que são recompilados para rodar nativamente em Windows, como um EXE.

“Então, talvez algo como um emulador de Linux?” Agora você está ficando mais quente! A equipe de desenvolvedores da Microsoft trabalharam duro adaptando uma tecnologia de pesquisa da Microsoft para executar basicamente a tradução em tempo real das chamadas de sistemas (syscalls) Linux, em chamadas de sistemas do Windows. Alguns geeks poderão pensar que é algum tipo de Wine invertido, fazendo binários de Ubuntu rodarem nativamente em Windows. A Microsoft chama isso de Subsistema Windows para Linux, e infelizmente não é open source (ainda)

Detalhe, o utilitário sysbench mostra quase que real o desempenho de CPU, Memória e I/O.

Como parte do trabalho de engenharia, eu precisava gerar um pacote de sistemas Ubuntu em um pacote de aplicativos para a Windows Store (arquivo .appx). Isso me obrigava a usar o Microsoft Visual Studio para clonar um aplicativo de exemplo, editar vários arquivos XML e criar um grupo de ícones .png de vários tamanhos, assim por diante.

Não sendo desenvolvedor Windows, eu lutei muito com o Visual Studio no Windows por algumas horas, até que eu estava pronto para esmagar o maldito monitor com minha caneca!

Em vez disso, eu apertei a tecla do Windows, digitei “Bash”, apertei enter. Então eu encontrei o diretório do aplicativo de exemplo em /mnt/c/Users/Kirkland/Downloads e copiei usando “cp -a”. Eu usei find |xargs | sed para localizar e substituir com um s/SampleApp/UbuntuOnWindows/ . E do utilitário convert do Ubuntu, rapidamente redimensionei um grupo de ícones. Então deixei o Visual Studio fazer sua parte. A compilação do pacote e upload para a Windows Store e Voilà!

Você entendeu um pouco sobre /mnt/c… Isso é bem legal… Todas os diretórios como o C: são montados diretamente como leitura e gravação sob o diretório /mnt. E vice-versa, você pode ver todo o seu sistema de arquivos do Ubuntu a partir do Windows Expolorer no C:\Users\Kirkland\AppData\Local\Lxss\rootfs\

file-explorer

Enquanto isso, eu também precisava de ssh em alguns de meus outros sistemas Ubuntu para pegar alguns trabalhos concluídos. Não há necessidade de Putty! Apenas ssh diretamente na shell do Ubuntu.

ssh

Claro, apt install e upgrade  eram de se esperar.

apt

“Está tudo funcionando exatamente como esperado?” Não completamente. Ainda não pelo menos. A vasta maioria da LTP funciona bem. Mas há algumas imperfeições ainda, especialmente em torno do tty e do VT100. Meus amados Byobu, screen e tmux não funcionam bem, mais estão próximos.

Finalmente, eu imagino que alguns de vocês – usuários de longa data de Windows w Ubuntu – ainda estão pensando, talvez, “Por quê?!?” Tendo dedicado a maior parte das últimas duas décadas da minha carreira ao software livre e open source, este é 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 unir o mundo da tecnologia de código livre e aberto diretamente em qualquer desktop com Windows 10 no planeta. E um maravilhoso vetor 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 ferramentas Linux estarem disponíveis no Windows, sem a necessidade de virtualização total e consumo de recursos pesados.

P.S. Eu faço parte do programa Insider e ainda não obtive a atualização do Bash, mais estou aguardando ansioso para ela.

Fonte: http://blog.dustinkirkland.com/2016/03/ubuntu-on-windows.html

Veja alguns vídeos do evento (em inglês):

The following two tabs change content below.
Atua como Analista de Segurança da Informação Sênior em uma empresa de consultoria de Segurança da Informação e Tecnologia do interior de São Paulo. Trabalha com computação desde 1998 e iniciou suas atividades como Analista de Segurança da Informação em 2002 prestando consultoria e participando de projetos voltados a Segurança da Informação. Também é sócio de uma empresa de soluções de Alta Disponibilidade.

Deixe uma resposta