Quais são as diferenças entre o Windows Bash e Cygwin?

65

Quais são as diferenças entre o Windows Bash e Cygwin?

A nova atualização do Windows com o "Linux" Bash é nova, mas que diferenças existem no Cygwin que podem fazer você escolher uma sobre a outra?

Martijn van Wezel
fonte
11
Suponho que o Windows Bash esteja melhor integrado e melhor suportado pela Microsoft.
Panther
2
Penso que esta questão está relacionada ao tópico, pois o Windows Bash é um produto suportado pela Canonical. Pode estar fora de tópico, talvez como opinião, e não como apoio.
Pantera

Respostas:

65

Cygwin é uma ótima ferramenta se você deseja viver inteiramente no Windows e deseja conduzir / automatizar tarefas do Windows com scripts bash. No entanto, o Cygwin não pode executar binários Linux não modificados.

É aí que entra a WSL:

O Windows Subsystem for Linux (WSL), é uma nova camada do kernel do Windows que visa fornecer um alto grau de compatibilidade com a ABI do kernel do Linux. Isso permite que binários Linux ELF64 nativos, não modificados sejam executados no WSL.

É assim que a WSL pode executar uma distribuição de usuários do Ubuntu genuína e quaisquer pacotes baixados do apt-get ou pacotes .deb de outros lugares, sem nenhuma alteração.

O objetivo da WSL é permitir que os desenvolvedores que trabalham no Windows possam executar muitas das ferramentas e trabalhar em muitos projetos, que dependem de binários, recursos, comportamentos, layout do sistema de arquivos, modelo de processo etc.

Enquanto a WSL ainda está no início de sua implementação, estamos trabalhando duro para melhorar a amplitude e a profundidade de nossas implementações de syscall para melhorar constantemente a capacidade da WSL de executar um conjunto cada vez maior de ferramentas e suportar um número crescente de nós Ruby, Java. pacotes e projetos.


Atualização: 2017-09-07

Desde que escrevemos o texto acima, enviamos a Atualização do Windows 10 Creators, que melhora MASSIVELY a compatibilidade da WSL com MUITAS das ferramentas que você deseja / precisa executar.

O desenvolvimento também continuou inabalável e enviamos versões do Win10 Insiders nos últimos meses a caminho do envio da Fall Creators Update (FCU) em outubro de 2017.

No FCU, estamos adicionando a capacidade de instalar e executar mais de uma distribuição lado a lado: Ubuntu, openSUSE e SLES estão atualmente disponíveis, com o Fedora e outros a caminho. Agora, a WSL também suporta comunicações serial USB e montagem de compartilhamentos de rede e armazenamento USB, além de outras melhorias em nossos syscalls, o que melhora a compatibilidade com mais ferramentas.


Atualização: 2019-08-22

Faz dois anos muito ocupados desde o primeiro anúncio e lançamento da WSL, a adição de suporte para várias distribuições via loja e o anúncio do WSL v1.0 HTH.

No Build 2019, anunciamos o novo Windows Terminal ( vídeo da sessão do Terminal aqui ) e o WSL 2 ( vídeo da sessão do WSL 2 aqui ), que apresenta uma nova abordagem para a execução do Linux no Windows.

Para obter mais detalhes e atualizações futuras, visite o blog da Linha de Comandos do Windows a cada duas semanas, onde publicamos muitas notícias relacionadas

Rich Turner
fonte
9
Sou usuário do cygwin há anos. A WSL é uma ideia fantástica que geralmente funciona bem ... no entanto, nesta fase, a velocidade de acesso a arquivos é muito lenta. Eu direi proibitivamente lento. Mesmo operações de tamanho médio com algo como o GIT demoram mais de 30 segundos contra sub-segundos no Cygwin. Espero que eles consertem isso.
Damien Sawyer
9
Perf disco é um problema conhecido: Estamos trabalhando em algumas melhorias perf para Win10 CU, com melhorias mais substanciais vindo mais tarde em 2017.
Rich Turner
3
Fantástico. Mal posso esperar. Vai ser um grande :-) produto
Damien Sawyer
2
@DamienSawyer já faz mais de 6 meses. Suas queixas de velocidade foram reduzidas ou ainda são as mesmas?
WinEunuuchs2Unix 5/17/17
3
@RichTurner então executarei a atualização: D
Martijn van Wezel
15

Subsistema Windows para Linux

Uso o WSL no Windows 10 há alguns meses. Finalmente, posso inicializar o Windows para jogar e ainda acessar o prompt do bash e executar a CLI e muitos programas da GUI. Existem limitações, como nenhum dos diretórios virtuais familiares do kernel Linux. É necessário planejar o compartilhamento do mesmo script Bash entre o Ubuntu e o WSL em uma máquina de inicialização dupla.

Há muitas coisas que eu gostaria de ver melhoradas, mas posso conviver com isso daqui a um ano ou mais.

Fonte fechada

Uma coisa a lembrar é que a Microsoft é um sistema fechado e você não tem a agitação de terceiros escrevendo atualizações como você gosta no Linux. Mas, considerando tudo, você compra um laptop novo e ele vem com o Windows 10 de qualquer maneira, então você pode dizer que é pelo menos "gratuito" :)

O Cygwin é controlado pelo Red Hat Linux, que também não é exatamente conhecido por oferecer coisas de graça. Sua distribuição Linux "gratuita" do Fedora parece um "campo de teste" para alguns.

Ciclos de manutenção

Cygwin tem 15 anos de atualizações. Notável é o mesmo gerente de projeto em funcionamento desde 2003. Existem muitos mantenedores em tempo integral e muitos mais colaboradores voluntários.

A WSL fornece grandes atualizações duas vezes por ano a cada primavera e outono. As atualizações secundárias semanais estão disponíveis para aqueles na lista de assinantes Developers. Embora a Microsoft tenha recursos para lançar milhares de pessoas no desenvolvimento da WSL, parece que você pode contar os membros da equipe com os dedos.

Problemas de velocidade

Você verá muitas reclamações sobre a velocidade da WSL. Por exemplo, a pintura da tela leva muito mais tempo no Windows 10 do que no Ubuntu 16.04, ou seja, você pode realmente ver o cursor se mover no Windows 10:

WSL bash startup.gif

Demora cerca de 5 segundos para a tela inicial do WSL Bash pintar. Em comparação, são cerca de 1 1/2 segundos para a mesma tela inicial no Ubuntu 16.04:

Ubuntu terminal splash.gif

Cygwin tem sua própria parcela de reclamações de velocidade com o Bash .


Postagem original abaixo para referência histórica.

A resposta aqui é de um ano, então acho que uma pequena atualização está em ordem. Com o Windows 10 Home, se for Windows de 32 bits, significa que não será executado o Ubuntu / Windows Subsystem de 64 bits, como a Microsoft nos diz aqui: ( subsistema Windows Linux no win10 HOME BASIC ).

É como um sonho tornado realidade ao executar o Ubuntu no Windows com seu suporte superior a jogos para a Nvidia, mas antes de você comprar um laptop novo (ou usado), verifique se ele possui o Windows 10 de 64 bits e não a versão inicial de 32 bits, se você deseja executar coisas do Ubuntu / Linux nativamente no Windows. Nos sites da Microsoft, eles se referem à edição do Windows Anniversary como um pré-requisito para a execução do Windows Subsystem for Linux.


No entanto, se você não deseja desembolsar mais de US $ 200 + para o Windows 10 e possui um laptop mais antigo executando o Windows 8.1 de 64 bits como eu, e um laptop ainda mais antigo executando o Windows Vista de 64 bits como eu, o Cygwin é a resposta.

O Cygwin suporta mais versões do Windows conforme suas listas de sites :

Pode-se esperar que o Cygwin seja executado em todas as versões modernas e lançadas do Windows. Estado de janeiro de 2016, que inclui o Windows Vista, Windows Server 2008 e todas as versões posteriores do Windows até Windows 10 e Windows Server 2016. A versão de 32 bits do Cygwin também é executada no ambiente WOW64 de 32 bits nas versões lançadas de 64 bits do Windows, o 64 versão de bit, é claro, apenas no Windows de 64 bits.

Lembre-se de que o Cygwin pode fazer apenas o que o SO subjacente suporta. Por esse motivo, o Cygwin se comportará de maneira diferente e exibirá limitações diferentes nas várias versões do Windows.

WinEunuuchs2Unix
fonte
2
A questão é quais são as diferenças entre o cygwin e o bash para windows. Cygwin nem é mencionado na sua resposta. Por favor, esclareça como isso responde à pergunta.
Seth
@Seth apontei como a WSL é específica da versão, enquanto o Cygwin é executado em todas as versões suportadas do Windows. Obrigado por apontar minha supervisão.
WinEunuuchs2Unix
11
Ficamos muito claros que o WSL requer Windows de 64 bits e está disponível em todos os SKUs do Windows 10, exceto o LTSB - WSL atual será adicionado à próxima versão do LTSB. A WSL também será incluída no Windows Server lançado no outono de 2017.
Rich Turner
@RichTurner Seu site mostra claramente. O que não está claro para mim (e não é sua culpa) é por que o fornecedor vende um i7 quad core 7700 com GPU Nvidia 1050 e 12 GB de RAM do sistema com o Windows 10 em casa. Alguém excluiu o link original, mas aqui está . Eles não explicitam os 32 bits. Você está dizendo que todo Windows 10 é de 64 bits?
WinEunuuchs2Unix
11
É vendido como um PC para jogos. Como a maioria dos jogadores não precisa dos recursos adicionais no Win10 Pro, o Home optou por evitar que o cliente pague por algo que provavelmente não precisará. O Windows 10 também possui variantes de 32 bits para aqueles que o desejam, mas eu ficaria surpreso se alguém vendesse uma máquina com> 4 GB de RAM e instalasse um sistema operacional de 32 bits, pois o sistema operacional e os aplicativos executados não seriam capazes para acessar qualquer coisa> 4 GB.
Rico Turner