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)

quinta-feira, 12 de janeiro de 2017

Novo LIS 4.1.3 – Linux Integration Services para VMs não Microsoft no Hyper-V

A Microsoft disponibilizou recentemente o LIS 4.1.3 que traz algumas novidades para máquinas virtuais não Microsoft no Hyper-V. É válido lembrar que a Microsoft fornece o Linux Integration Services para uma gama de distribuições Linux e também FreeBSD (máquinas virtuais no Hyper-V). Outro ponto importante é que muitas distribuições e versões de Linux já trazem em seu Kernel o Linux Integration Services e não requerem instalação deste pacote LIS. Este pacote LIS está disponível para um grupo de distribuições suportadas, a fim de proporcionar um melhor desempenho e uso máximo de recursos do Hyper-V.

image

Mas veja, você pode instalar o LIS nas distribuições listadas que ainda não tem o LIS incorporado no seu Kernel e também pode ser instalar como uma atualização em distribuições que já tenham o LIS incorporado.

LIS é aplicável para as seguintes distribuições:

Red Hat Enterprise Linux 5.2 a 5.11 32-bit, 32-bit PAE, e 64-bit

Red Hat Enterprise Linux 6.0 a 6.8 32-bit e 64-bit

Red Hat Enterprise Linux 7.0 a 7.3 64-bit

CentOS 5.2-5.11 32-bit, 32-bit PAE, e 64-bit

CentOS 6.0 a 6.8 32-bit e 64-bit

CentOS 7.0 a 7.3 64-bit

Oracle Linux 6.4 a 6.8 com Red Hat compatível Kernel 32-bit e 64-bit

Oracle Linux 7.0 a 7.3 com Red Hat compatível Kernel 64-bit

Recursos do Linux Integration Services:

Quando instalado na máquina virtual com o SO suportado, o LIS 4.1.3 oferece as seguintes funcionalidades:

· Instalável no Red Hat Enterprise Linux 5.2, 5.3, 5.4, 7.2 e 7.3

· Hyper-V Sockets

· Instalável no CentOS 5.2, 5.3, 5.4, 7.2 3 7.3

· Instalável no Oracle Linux 7.2 e 7.3 quando executando Red Hat Kernel

· Ajuste manual (aumentar ou diminuir) de memória RAM – NOVO

Com o LIS instalado a memória pode ser aumentada através do Hyper-V manager quando a VM é configurada sem uso de memória dinâmica.

A memória alocada à VM pode ser aumentada e diminuída, porém a máquina virtual Linux não verá uma redução na memória total relatada, uma vez que a diminuição é tratada de forma semelhante à memória através do driver hv_balloon. Recomenda-se que a memória seja adicionada ou removida em múltiplos de 128 megabytes. Devido às limitações no suporte do kernel para adicionar memória, este recurso não está disponível para as versões anteriores ao Red Hat Enterprise Linux ou CentOS 6.5.

· SCSI WWN

· lsvmbus

· Desinstalação de script

Host com Hyper-V:

Windows Server 2008 R2

Microsoft Hyper-V Server 2008 R2

Windows 8 Pro e 8.1 Pro

Windows Server 2012 e 2012 R2

Microsoft Hyper-V Server 2012 e 2012 R2

Windows Server 2016

Microsoft Hyper-V Server 2016

Microsoft Azure

Download LIS 4.1.3

Microsoft Anuncia Suporte a Boot com ReFS no Windows Server Insiders

  A Microsoft anunciou suporte ao ReFS Boot para Windows Server Insiders, uma novidade após 14 anos de desenvolvimento do sistema de arquivo...