Machines virtuelles vs Cygwin

Réponses:

20

Les machines virtuelles et Cygwin répondent à deux questions différentes.

Les machines virtuelles sont conçues pour exécuter simultanément plusieurs systèmes d'exploitation. C'est comme avoir deux ordinateurs sans avoir à acheter deux ensembles de matériel.

Cygwin est destiné à fournir à Windows un certain nombre d'outils Unix, afin que les geeks Unix puissent utiliser Windows plus efficacement (bien que je dirais que Cygwin ne le fait pas vraiment très bien), et à fournir des outils qui ont de plus grandes fonctionnalités que Windows fournit seul. Je ne pense pas que la caractérisation de Cygwin fournissant un "environnement de type Linux" soit particulièrement précise. (Cygwin est en fait destiné à fournir un environnement de développement POSIX plus complet pour Windows et, ce faisant, fournit un certain nombre d'utilitaires. Le résultat final pour les utilisateurs finaux, cependant, est qu'il ne fournit que des outils.)

Il y a en fait une sorte de troisième option, Cooperative Linux , que je pense réellement fait de fournir un environnement Linux comme sous Windows. Il exécute en fait le noyau Linux en tant que processus dans Windows. Il y a des distributions qui tournent en dessous; et Linux vient à l'esprit. Avec ces systèmes, vous disposez en fait d'un environnement Linux qui peut interagir plus directement avec votre environnement Windows qu'une machine virtuelle.

wfaulk
la source
2
Cygwin étant un tas d'utilitaires n'est en fait qu'un effet secondaire. Il est avant tout conçu comme un environnement de type Linux pour les logiciels, pas pour l'utilisateur, vous avez donc les API appropriées enveloppées dans l'émulation. Avec coLinux, le noyau Linux fonctionne comme un pilote de périphérique à l'intérieur du noyau Windows, pas comme un processus.
Joey
3
J'installe seulement cygwin pour pouvoir avoir un shell décent pour travailler sur mes fichiers Windows. Je serais perdu sans trouver, grep, sed et c'est un acabit.
Nifle
1
@Johannes: la page Web de coLinux indique que "coLinux utilise toujours un seul processus du système d'exploitation hôte pour tous ses processus Linux, gérant en privé leur planification, leurs ressources et leurs erreurs". AFAICR, il fonctionne comme un service, pas comme un chauffeur.
wfaulk
4

Il est toujours utile pour exécuter des outils Unix comme rsync, que vous souhaitez utiliser sur les fichiers de la boîte Windows plutôt que d'être bloqué dans une machine virtuelle. Vous pouvez également utiliser le planificateur Windows pour démarrer des travaux avec les outils.

andynormancx
la source
1
Je préfère cependant prendre des versions natives que d'installer cygwin.
Joey
2
cependant, tout n'est pas disponible dans les versions natives.
Quack Quichote
2

En ce qui me concerne, Cygwin est un concept différent. Contrairement à la machine virtuelle, il fournit une DLL qui émule un environnement / couche Linux, qui peut exécuter et créer un programme Linux sur une machine Windows. Par exemple, si vous souhaitez utiliser une bibliothèque uniquement distribuée en tant que code source et destinée à un système Linux intégré, que faire si vous souhaitez utiliser cette bibliothèque dans Visual Studio? Vous ne pouvez pas utiliser VS pour le construire car il repose sur des dépendances Linux, vous avez donc besoin de Cygwin dans cette situation.

Peiti Li
la source