Cygwin vs Virtual Machines

Respostas:

20

Máquinas virtuais e Cygwin respondem a duas perguntas diferentes.

Máquinas virtuais são para quando você deseja executar vários sistemas operacionais ao mesmo tempo. É como ter dois computadores sem a despesa de comprar dois conjuntos de hardware.

O Cygwin se destina a fornecer ao Windows várias ferramentas Unix, para que os geeks do Unix possam usar o Windows com mais eficiência (embora eu argumentasse que o Cygwin realmente não faz isso muito bem) e fornecer algumas ferramentas com recursos maiores que o Windows fornece por conta própria. Não acho que a caracterização de Cygwin fornecendo um "ambiente semelhante ao Linux" seja particularmente precisa. (Na verdade, o Cygwin pretende fornecer um ambiente de desenvolvimento POSIX mais completo para Windows e, ao fazer isso, fornece vários utilitários. O resultado final para os usuários finais, porém, é que ele apenas fornece ferramentas.)

Na verdade, há uma espécie de terceira opção, Cooperative Linux , que eu acho que realmente faz proporcionar um ambiente semelhante ao Linux dentro do Windows. Na verdade, ele executa o kernel do Linux como um processo no Windows. Existem algumas distribuições que são executadas sob ele; e o Linux vem à mente. Com esses sistemas, você realmente tem um ambiente Linux que pode interagir mais diretamente com o ambiente Windows do que uma máquina virtual.

wfaulk
fonte
2
Cygwin ser um monte de utilitários é na verdade apenas um efeito colateral. Seu objetivo principal é um ambiente semelhante ao Linux para software, não para o usuário, para que você tenha as APIs apropriadas envolvidas na emulação. Com o coLinux, o kernel do Linux é executado como um driver de dispositivo dentro do kernel do Windows, não como um processo.
11119 Joey
3
Eu só instalo o cygwin para poder ter um shell decente para trabalhar nos meus arquivos do Windows. Eu ficaria perdido sem encontrar, grep, sed e é legal.
Nifle
1
@Johannes: a página da web do coLinux diz que "o coLinux sempre utiliza apenas um processo do sistema operacional host para todos os seus processos Linux, gerenciando de maneira privada seu agendamento, recursos e falhas". AFAICR, é executado como um serviço, não como um driver.
Wfaulk 11/11/09
4

Ainda é útil para executar ferramentas Unix como rsync, que você deseja operar nos arquivos na caixa do Windows, em vez de ficar preso em uma máquina virtual. Você também pode usar o agendador do Windows para iniciar trabalhos com as ferramentas.

andynormancx
fonte
1
Eu prefiro criar versões nativas do que instalar o cygwin.
11119 Joey
2
nem tudo está disponível nas construções nativas, no entanto.
quack quixote
2

Para mim, Cygwin é um conceito diferente. Ao contrário da máquina virtual, ela fornece uma DLL que emula um ambiente / camada Linux, que pode executar e criar um programa linux em uma máquina Windows. Por exemplo, se você deseja usar alguma biblioteca que é distribuída apenas como código-fonte e destinada ao sistema Linux interno, e se você quiser usar essa biblioteca no Visual Studio? Você não pode usar o VS para construí-lo, pois ele depende de dependências do Linux; portanto, você precisa do Cygwin nessa situação.

Peiti Li
fonte