Como o novo "Bash no Windows 10" realmente funciona?

25

Li on-line que o Ubuntu e o bash estão chegando ao Windows 10. Também li que não é um emulador ou máquina virtual rodando sobre o Windows, mas outra coisa. Então, como exatamente tudo isso acontece? E será realmente tão estável e fácil de usar quanto o bash no ubuntu?

Maaverik
fonte
Realmente não fornece uma ótima imagem do que realmente está acontecendo sob o capô.
precisa saber é
@maaverik Desde então, produzimos uma série de postagens no blog e vídeos que explicam os elementos internos da WSL. Veja a minha resposta abaixo para obter links :)
Rich Turner

Respostas:

21

Não é um emulador da mesma maneira que o WINE não é um emulador. Ou seja, eles adicionaram uma interface do kernel Linux ao kernel do Windows. Quando um aplicativo tenta usar o kernel do Linux, ele é traduzido em uma chamada de sistema nativo do Windows e qualquer resposta do kernel é traduzida em uma resposta nativa do Linux. Portanto, o aplicativo pensa que está sendo executado em um kernel Linux e, portanto, não precisa ser modificado.

No entanto, essa é apenas uma tecnologia do Windows; portanto, se você quiser obter mais detalhes, obtenha-os em um grupo de suporte do Windows ou algo assim. O Windows continua sendo um sistema operacional proprietário, então eu esperaria uma quantidade limitada de detalhes.

E será realmente tão estável e fácil de usar quanto o bash no ubuntu?

Do ponto de vista do Ubuntu, estamos simplesmente rodando em um kernel Linux primitivo, comparável a um desktop moderno em um servidor X primitivo. Se você estiver usando apenas os recursos suportados pelo kernel falso, ele será estável e fácil de usar. Se você usar recursos não suportados, será instável.

Não chegará nem perto de uma experiência completa do Ubuntu em breve.

Jo-Erlend Schinstad
fonte
2
"Não é um emulador" provavelmente pertence entre aspas; como o Wine, é um emulador, não apenas no nível do hardware, mas no nível da API. Ambos resultam em perda de desempenho, dependendo do que você está fazendo (ou seja, quantas chamadas do sistema você está fazendo).
thomasrutter
2
@thomasrutter Desculpe, não concordo. Sua definição de 'emulador' é muito flexível. Sob uma interpretação como essa, também precisamos chamar emuladores de proxies (mas não são). Um emulador, por definição, emula coisas. WSL (e proxies) não emulam coisas, elas transformam e encaminham coisas e retornam uma resposta.
Segfault 13/09/18
21

Para aqueles curiosos sobre como o Windows Subsystem para Linux (WSL) funciona e como ele executa binários nativos Linux ELF-64, publicamos uma série de postagens de blog e vídeos que explicam a arquitetura, processos, syscalls e suporte do sistema de arquivos da WSL .

Scott Hanselman também fez um ótimo vídeo explicativo sobre o processo de instalação e como configurar o Bash no Ubuntu no Windows:

HTH

Rich Turner
fonte
3
O primeiro link não funciona mais, acho que foi movido para cá: blogs.msdn.microsoft.com/commandline/…
dpritch
Boa captura - obrigado. Corrigido o link para apontar para o nosso link reduzido.
Rich Turner
2

As partes do bash funcionam muito bem na WSL.

As partes do kernel não estão lá. Por exemplo, /sys/class/backlight/intel_backlight/brightnessvocê não pode acessar para definir o brilho da tela. Existem comandos do Powershell que você pode chamar facilmente para fazer isso se não se importar com nomes muito longos de campos no estilo COBOL. O MS Powershell pode ser chamado diretamente de dentro do bash. Então, você pode dizer que os poderosos recursos do Windows agora estão integrados ao bash. Da mesma forma, o MS Powershell pode chamar bash, acredito. Então, se verdadeira PowerShell tem acesso a funções como grep, awk, head, tail, etc.

A GUI do Ubuntu Desktop ( gedit, nautilusetc.) funciona apenas após a instalação VcXsrvou algo semelhante.

Compartilhar arquivos entre o Linux e o Windows WSL é complicado de configurar. Quando, ao mover arquivos entre a pasta NTFS WSL + Linux compartilhada, tive alguma "estranheza" de permissão de arquivo devido à minha ignorância ou deficiências de software.

A velocidade é muito mais lenta na WSL do que no Ubuntu. Você pode ver a tela pintar caractere por caractere quando executa calou toilet: Quais são as diferenças entre o Windows Bash e o Cygwin?

Acho que a WSL é um bom produto e gosto de mexer nele ao inicializar o Windows-World com inicialização dupla. Ele nunca se tornará um ótimo produto devido à falta de financiamento da MS e eles realmente não querem ter uma ótima distribuição Linux Free-Ware de qualquer maneira. Se você tivesse RAM suficiente, provavelmente ficaria mais feliz com uma VM. Com apenas 8 GB e os preços de RAM subindo até meados de 2019 ou mais, ficarei feliz com a WSL e abandonarei a atualização de 32 GB de RAM por enquanto.

Eu visitei alguns fóruns de MS e devo dizer que Rich Turner e seus membros da equipe da WSL são alguns dos melhores profissionais que já vi.

WinEunuuchs2Unix
fonte