Windows Subsystem for Linux (WSL) – Ubuntu

Interessante… interessante…

ok vamos la… a muito muito atras em uma galaxia distante na época de 1994 no Windows NT4 especificamente quando lançou o service pack 3 a Microsoft (sim, ela), lançou um conjunto de pacotes para Windows NT chamado “Microsoft Services for UNIX” ou o famoso SFU ou MSFU. Voce deveria baixar ele no site da microsoft e instalar no seu windows o que te fornecia suporte ao telnet server, mapeamento do usuário UNIX como UID e GID (pq no windows se usa SID), suporte ao NFS em server e cliente além da possibilidade de sincronismo com o UNIX password, com o suporte a senhas sombras e o método de segurança padrão __UNIX__.  O MSFU permitia que os usuários pudessem administrar servidores Windows NT com total compatibilidade a servidores SunOS, Irix, IBM UNIX (AIX) e outros sistemas. Era um grande comodismo na epoca, pois os adminsitradores não precisam correr atras de soluções de terceiros e poderiam eles mesmos utilizar um programa disponibilizado pela propria Microsoft.

O MSFU tinha um toolkit chamado MKS que usava de conformidade com o POSIX através doINTERIX“, O interix armazenada todos os comandos do coreutils UNIX como ls, df, du, kill grep e outros como o compilador C e na sua evolução até as ultimas versoes do Windows ate o produto ser descontinuado ja suportava o compilador GCC , o man, a libX11 e x11-common e todas as bibliotecas de costume e que são encontradas em diversos sistemas UNIX e Linux como suporte a linguas python, Rubym, Tcl (eu amo tcl), além de permitir o uso de NIS, NIS+, autenticação NFS, PCNFS, integração com os maps do NFS pelo mapsvc e outros.

Vale lembrar que desde tempos o Interix nao é uma emulação do UNIX no Windows mas uma implementação de um subsistema diretamente no kernel do Windows NT. Ou seja, esse bla bla bla porque agora é integrado ao kernel, é assunto antigo.

Até as utlimas versões do Windows 2008 era possível encontrar o Interix e instalar no Windows atraves do simples clique install ou do comando: sfusetup.msi /qb addlocal=”BaseUtils” para a instalação do baseutils do sistema, sfusetup.msi /qb addlocal=”GNUUtils” para instalar as libs e programas GNU (Stallman mordeu o dedo), alem de ser possivel instalar o SDK que contem ferramentas de desenvolvimento para Perl e GNU nos pacotes GNUUtils,UNIXPerl e InterixSDK. Com isso, bastava voce abrir o cmd.exe e digitar ls para ele listar no bom e velho formato UNIX com os interpretadores csh e korn shell, mas ainda não era a mesma coisa. O sistema foi crescendo, com suporte ao SystemV R4 e BSD, 64 bits no processamento, suporte ao IPv6, suporte ao OCI, ODBC e outros, sempre em Dlls do Windows. O projeto foi interrompido praticamente na versão 3.5 e desde então não sofreu mais atualizações.

Com a febre opensource e Microsoft no seu projeto CodePlex, o Windows Server 2003 recebeu a evolução do MSFU que se chamava “Subsystem for UNIX-based Applications” ou simplesmente o SUA. Com isso a evolução do Interix foi sensacional e agora voce tinha a opção na propria imagem do Windows para instalar o componente de forma adicional. Pelo que me recordo ele apenas solicitava o CD e as vezes nem isso. Sim, acredite, eu usei muito o MSFU. Ja no SUA ele teve bastante evolução nos mapas do sistema POSIX como principalmente o uso de ACLs, o que encontramos se não me engano na versão 6 funcionando como uma API.

Mas.. com a evolução dos sistemas UNIX e principalmente de distribuições Linux eu me lembrei de uma coisa.

Te recorda uma coisa?

No ano passado a Microsoft chegou a demostrar um tal de “Project Astoria”, que seria a possibilidade de executar aplicativos do Android no Windows Phone, mas isso não vingou e a microsoft estranhamente resolveu cancelar o projeto. Bom, até onde eu sei o projeto foi cancelado em fevereiro desse ano.. mas… mas… no meio disso tudo e nesses desenvolvimentos abertos para o publico e de testes, começou aparecer algumas informações na internet como duas bibliotecas do Windows (arquivos .DLL) que se chamavam:  lxcore.sys e lxss.sys.

Ninguem sabia o que era isso até que começou a ser altamente publicado na internet e com alguns poucos meses depois a Microsoft com uma parceria com a Canonical apresenta um produto integrado no Windows que se chama “WSL”. Ele permite que o Windows 10 tenha total compatibilidade com o padrão POSIX e com toda a estrutura de uma distribuição Linux, inclusive  um completo FHS no sistema, semelhante ao que encontramos no Cygwin, que é uma distribuição Linux para ser instalada no Windows, com a mão da Red Hat e muito bom, por sinal. Ou seja, um core Ubuntu completo dentro do Windows 10 (meu não, seu… rs).

Com a ajuda da Canonical, sim essa traido…empresa.. agora voce vai encontrar de uma forma nativa o Bash rodando sob um sistema completamente disponivel dentro do Windows. Lembre-se, não fica falando por ai que é o bash porque não tem nada haver com o bash é algo muito mais complexo que um interpretador e com a possiblidade de voce instalar e colocar qualquer outro, assim como voce faz no seu sistema. O bash e toda essa distribuição esta rodando sob uma “camada binária” dentro do sistema operacional Windows semelhantemente como encontrado no FreeBSD, que é chamado de ABI ou Application binary interface. Lá no FreeBSD com o pacote instalado pelo ports ou pkgng, seja por base Fedora (poder) ou CentOS e depois do /etc/rc.conf configurado com linux_enable=”YES”, tudo que for compilado dentro do diretorio /compat passa a ser binarios ELF suportados. Tudo que voce compila lá dentro é para especificamente Linux, ou seja, um sistema operacional Linux rodando dentro do FreeBSD e é basicamente isso que o sistema da Canonical+Microsoft vai disponibilizar para o usuário do Windows 10, de acordo eles, com foco no desenvolvimento. Porque foco em desenvolvimento? A microsoft a anos que vem tentando consolidar suas tecnologias e as disponíveis na sua ferramenta principal, o Azure. Por isso estamos vendo .NET e SQL Server sendo disponibilizados para Linux, pois a ideia principal da empresa é consolidar todas as tecnologias a ponto de que tudo seja disponivel para o Azure, independente da tecnologia e fazendo o papel principal para uma boa interopatibilidade, porque isso sem duvida é o futuro.

Então, não se espante se voce ver isso no Windows.

Dentro do sistema WSL funcionára examente como acontece com a utilizacao do Mobaterm por exemplo, onde todos os devices do Windows sao disponiveis como forma de pontos de montagem em /drives/c (exemplo para a unidade c:), mas no WSL tudo esta dentro do diretório /mnt/<unidade>/ como por exemplo o diretório etc em /mnt/c/etc. Ou seja, voce terá duas visualizações respectivamente. O modelo padrão msdos ou Windows em C:, D: e aquela bagaça toda e a visualização estilo POSIX com suas permissoes, caracteristicas e informações do arquivo e tudo disponivel em /mnt/. Para o Windows e a navegação do cmd.exe e explorer.exe será My Computer\C:\teste mas para o WSL será convertido para /mnt/c/teste.

Resumindo, voce terá isso no seu Windows.

A Micro$oft tambem deixou claro que isso não será disponivel na plataforma “server”e somente no Windows 10. Bom, mas o que eu ja fui procurar saber ele será disponibilizado tanto para o microsoft Azure (nas imagens) tanto como no Windows Server 2016.

Não, não vai vir com o Unity, Não, não vai ajudar o Linux e nem a Microsoft esta fazendo a sua distribuição Linux, mas uma coisa é fato, isso será de muito bom grado para o serviço de administradores de sistemas que trabalham com projetos tanto em Windows como o Linux e talvez o desenvolvedor do putty vai ficar bem ˆ%$#ˆ%$ˆ@#$. oooo programinha ruim esse putty.. enfim, voltamos ao assunto principal sem perder o foco.

Quais sao as vantagens?

Imagine voce abrir o emacs, vi, compilador gcc e tudo nativamente no sistema do mal? Imagine voce poder exportar seus arquivos via NFS diretamente pelo /etc/exports? Imagine voce poder utilizar de ferramentas no sistema que antes era somente disponivel pelo Cygwin? Imagine voce poder executar aquele seu script de backup em “bash script” para todo o seu ambiente via openssh diretamente do seu sistema e até mesmo trabalhar com chaves diretamente no .ssh? Agora imagine voce poder escrever seus proprios scripts no bash diretamente no Windows? Sim.. é realmente interessante e a Microsoft com tudo isso mostra o que eu sempre cansei de dizer, “puro interesse no mercado”. No dia que ela realmente amar o Linux, ela lança o Microsoft Office e o seu Internet Explor…Edge em formato deb e rpm.

Desvantagens?

Meu amigo, continua sendo Windows. De novo, continua sendo Windows. Repete comigo, continua sendo Windows, continua sendo Windows. Prefiro uma distribuição Linux instalava no meu computador ou um computador com OSX. Pois não seria necessario nada disso ai que conversamos acima, seja por “componente adicional” ou “jeitinho”… Mas…. vou contar uma historia para encerrar.. voces se lembram do OS/2 Warp? Sistema operacional desenvolvido pela IBM junto com a Microsoft e que vinha com o poderoso sistema de arquivos HPFS? Pois bem.. leia essa historia ai… depois que conseguiu o que queria… … … … ..

Neste vídeo eu (infelizmente), instalei o Windows 10 em uma máquina virtual pelo Virtualbox com 4GB de ram e fiz os mesmos testes que um administrador de sistema Linux faria.

vale lembrar que o Windows Subsystem For Linux é um produto beta e que será atualizado constantemente pelas atualizações da release do Windows. Lembrando também que ele faz parte do Windows Resources como componente adicional. Após ser selecionado pelo windowsfeatures.exe é necessário realizar a instalação do programa pelo Windows Store, para isso basta executar o comando bash no cmd.exe que ele fará tudo sozinho.

É isso ai Microsoft, depois do flight simulator essa foi a melhor coisa que voce ja lançou, porém, não vi utilidade nenhuma..

[  ],
Aprigio Simoes
@aprigiosimoes

Powered by Moblie Video for WordPress + Daniel Watrous