terça-feira, 18 de abril de 2017

O Windows Subsystem for Linux no Windows 10 – Um pouco da história e mão na massa

Confesso que demorei um pouco para escrever um artigo sobre o Windows Subsystem for Linux no Windows 10 porque há muitos anos atrás eu tive o privilégio de realizar uma palestra no Teched 2010 (um dos maiores eventos da Microsoft no Brasil) e naquela época eu já mostrrei algumas dessas possiblidades.

clip_image002

É importante voltar ao passado para poder entender algumas coisas que aconteceram, pois a Microsoft lá no ano 2000 já falava em Interix (migração de aplicações e soluções de interoperabilidade entre Windows e UNIX). Era o Interix, um ambiente completo que permite aos clientes rodar facilmente aplicações e scripts UNIX em sistemas operacionais Microsoft Windows NT e Windows 2000, sem reescrever o código. Primeira versão disponível para Windows 2000, o Interix é um componente-chave da estratégia de migração de aplicações entre os sistemas Windows e UNIX. Ele permite aos usuários tirar vantagem dos benefícios da plataforma Windows NT, incluindo redução de custo total de propriedade (TCO), maior gerenciabilidade e acesso à uma gama de aplicações Windows ao mesmo tempo que atua em aplicações Unix existentes.

Depois disso ainda tivemos o SFU que era o Services for Unix e logo mais tivemos o SUA – Subsystem Unix Application, ambos ofereceram inúmeras possibilidades mas pouco exploradas na época.

Essa era a estrutura do SUA que ao contrário do que muitos pensavam não era uma emulação, até porque rodava ao lado do Win32 Subsystem.

2017-04-18_13-36-31

Caso queria ver algum desses recursos: https://www.youtube.com/watch?v=_rJIyF67ywI

O próprio Debian chegou a ter um projeto portando as aplicações para usar no SUA Windows

clip_image006

É fato que a função SUA - Subsystem Unix Application foi fazer com que os aplicativos fossem portados para o Windows sem serem reescritos totalmente e isso teve sucesso com o desenvolvimento das APIs de modo de usuário POSIX usando construções NT. Como praticamente todos os componentes foram construídos em modo de usuário, foi difícil ter um bom desempenho para chamadas de sistema em modo kernel.

Por fim, o SUA acabou sendo retirado do Windows principalmente porque esse modelo se baseava na necessidade de recompilação de programas, era necessário uma constante utilização de mão de obra. Como eu já mencionei o Kernel do Windows NT foi arquitetado para permitir novos ambientes de subsistema, e foi baseado nele que a Microsoft teve capacidade de ampliá-lo para desenvolver o Windows Subsystem para Linux.

É fato que o que temos hoje no Windows 10 não é a mesma coisa pois WSL é uma coleção de componentes que permite que os binários ELF64 (Executable and Linkable Format 64-bit) nativos do Linux sejam executados no Windows.

ELF - é um formato de arquivo padrão para arquivos executáveis, código de objeto, bibliotecas compartilhadas e despejos de núcleo. Linux e muitos sistemas operacionais tipo UNIX usam esse formato.

O WSL (Windows Subsystem Linux) contém os componentes do modo de usuário e do modo kernel e é composto por:

  • Serviço de Gerenciador de sessão do modo de usuário que trata do ciclo de vida da instância do Linux
  • Drivers de provedores Pico (lxss.sys, lxcore.sys) que emulam um kernel Linux traduzindo syscalls Linux
  • Processos Pico que hospedam o modo de usuário não modificado Linux (por exemplo / bin / bash)

A estrutura do WSL

image

Habilitando o WSL no Windows 10 Creators Update

1) Acesse Configurações > Atualização e Segurança

2017-04-18_13-38-07

 

2) Clique em Para desenvolvedores > selecione Modo de desenvolvedor e reinicie o computador

2017-04-18_13-38-45

3) Após a reinicialização acesse o Painel de Controle > selecione Ativar ou desativar Recursos do Windows

2017-04-18_13-39-20

4) Selecione Subsistema do Windows para Linux (WSL) > OK

2017-04-18_13-40-04

5) Acesse o bash (como administrador)

2017-04-18_13-43-08

6) Será solicitado a sua confirmação para instalação do Ubuntu no Windows > confirme

clip_image010

7) Confirme novamente

clip_image012

8) Será necessário informar um nome de usuário e senha para o Linux

clip_image014

9) Agora é tirar proveito do Linux no Windows

Nesse exemplo estou instalando o gcc usando o comando

sudo apt-get install gcc

2017-04-18_13-40-47

10) Já nesse exemplo estou instalando o xrdp

sudo apt-get install xrdp

2017-04-18_13-41-54

11) Literalmente estamos no Linux

clip_image019

sudo apt-get install squid

2017-04-18_13-42-23

terça-feira, 11 de abril de 2017

CentOS 7 no Hyper-V do Windows Server 2016 – Caso Placa de rede

Ontem fiquei feliz com o telefonema de um grande amigo da cidade de Santos-SP, aliás nas primeiras vezes que fui a São Paulo ele foi muito receptivo além de me dar uma carona que para quem conhece pouco São Paulo foi uma ajuda muito valiosa.

Todos da comunidade Microsoft sabem que gosto demais do Linux, aliás os meus primeiros contatos com a Microsoft foram para falar de Linux (Isso mesmo).

O tempo passou e a Microsoft passou a amar o Linux, exatamente, hoje a Microsoft Love Linux, o que eu achei simplesmente fantástico.

Mas vamos ao que realmente importa para o meu amigo de Santos que é fazer o CentOS 7 funcionar no Hyper-V (Caso placa de rede), seja no Windows Server 2012 R2 ou no Windows Server 2016.

Mãos a obra:

1) Começamos criando a máquina virtual

clip_image002

2) Coloquei o nome da máquina virtual de CentOS7 > deixei armazenada em C:\VMs\centos7 > Avançar

clip_image004

3) Selecionei Geração 1 (poderia ter usado a geração) > Avançar.

clip_image006

4) Especifique a quantidade de memória RAM, defini 2048 MB > Avançar

clip_image008

5) Selecione a placa de rede > Avançar

OBS: Você não precisar usar placa de rede legacy (legada)

clip_image010

6) Especifique o tamanho do disco para a máquina virtual > Avançar.

clip_image002[6]

7) Selecione o arquivo de instalação .ISO > Avançar

clip_image004[5]

8) Basta clicar em Concluir.

clip_image006[5]

9) Agora vamos iniciar a máquina virtual CentOS 7.

clip_image008[5]

10) Iniciando a instalação do CentOS 7 > selecione Install CentOS 7

clip_image010[5]

11) Selecione o idioma > continuar

clip_image012

12) Selecione Network e Hostname (defina um nome para seu servidor)

clip_image014

13) Defina a configuração da sua placa de rede conforme desejar.

clip_image016

14) Selecione o disco a ser instalado

clip_image002[8]

15) Defina as senhas para o root e o outro usuário que desejar.

clip_image004[7]

16) Iniciando o CentOS 7.

clip_image006[7]

Aqui existem algumas mudanças no CentOS 7 e não no Hyper-V, principalmente a questão de rede.

17) Observe que ao executar o comando ifconfig ele não encontra o comando.

clip_image008[7]

Se nessa etapa a sua placa de rede ainda não estiver funcionando siga os passos abaixo:

18) Vou dar uma dica, a mais rápida:

Execute como root o comando nmtui (networkmanager TUI)

clip_image010[7]

19) Selecione Editar a conexão

clip_image012[5]

20) Selecione eth0

clip_image002[10]

21) Selecione Editar

clip_image004[9]

22) Especifique os endereço IP (possivelmente já deve estar tudo certos os dados), porém basta marcar a opção CONECTAR AUTOMATICAMENTE.

clip_image006[9]

23) Agora instale o pacote net-tools (ifconfig, ping e outros)

yum -y install net-tools

clip_image008[9]

24) Agora digite ifconfig

clip_image010[9]

25) Digite ping e a url que quiser

clip_image012[7]

Nçao esqueça de realizar a instalação do LIS 4.1.3 –

Veja como http://www.andreruschel.com/2017/02/instalando-lis-413-linux-integration.html

Pronto! Já temos nosso CentOS 7 com a placa de rede funcionando!

segunda-feira, 10 de abril de 2017

Palestra no MVP Connection na Microsoft São Paulo

No dia 23, 24 e 25 de março estive reunido na sede da Microsoft em São Paulo para o MVP Community Connection que acontece anualmente aqui no Brasil e em outros países.

Esse ano o evento contou com a presença do meu amigo Danilo Bordini que hoje trabalha no time do Programa MVP na sede da Microsoft em Redmond.

Tivemos ainda novas informações do programa com a Fernanda Saraiva – MVP Lead que nos atualizou sobre as novidades e o novo funcionamento do Programa.

Além de muita informação recebida ainda tive o privilégio de realizar uma palestra com meu amigo Rafael Felipe Silva (meu pupilo no Programa MVP) sobre VDI de Linux no Windows Server 2016.

IMG-20170325-WA0008IMG-20170324-WA0002IMG-20170325-WA0003IMG-20170325-WA0007IMG-20170325-WA0009IMG-20170325-WA0011

IMG_20170324_091122528 (Medium)IMG_20170324_091130699 (Medium)IMG_20170324_091648888 (Medium)IMG_20170324_093010344_HDR (Medium)IMG_20170324_093019630_HDR (Medium)IMG_20170324_134029002_HDR (Medium)

Microsoft e Open Source - Do Service for Unix até o WSL (Windows Subsystem for Linux)

Na semana passada tive o prazer de fazer uma apresentação no TDC - The Developers Conference falando sobre algo que particularmente acompanh...