web-dev-qa-db-fra.com

Quelle est la différence entre le sous-système Windows pour Linux (WSL), Linux coopératif (coLinux) et Cygwin?

Est-ce que quelqu'un se souvient encore de coLinux? Je me souviens qu'il était utilisé pour SpeedLinux et Portable Ubuntu il y a quelques années.

C’est assez clair ce que fait coLinux, exécuter Linux sur Windows, mais utiliser une vraie partition Linux. Pendant ce temps, cygwin recompile les applications Linux à utiliser sous Windows.

Mais WSL? WSL est-il plus proche de coLinux ou de Cygwin?

13
Rinaldo Jonathan

WSL serait plus proche de coLinux que Cygwin.


Gardez à l'esprit que Unix, POSIX et Linux sont des choses différentes .

Cygwin est une couche de compatibilité POSIX qui s'exécute sur le sous-système Win32 . Cela n'a à peu près rien à voir avec Linux ; il peut en gros être traité comme "juste un autre type Unix" où le portage de programmes nécessite une recompilation et éventuellement une modification de source, et tout ce qui nécessite des fonctionnalités non spécifiques à POSIX Linux ne fonctionnera probablement pas.

WSL 1 est conçu pour être ABI - compatible avec Linux proprement dit . Il n'utilise pas le vrai noyau Linux, mais est compatible de sorte que les programmes compilés pour Linux puissent s'exécuter dessus sans recompilation ni traduction. WSL fait partie du noyau NT et existe donc indépendamment du sous-système Win32. Ceci est similaire à l'ancien SUA, bien que ce fût un sous-système POSIX (pas Linux!) Au-dessus du noyau NT.

WSL 2 , pas encore disponible, exécutera un véritable noyau Linux sur une machine virtuelle légère. Cela promet une intégration Windows similaire à celle de WSL 1 mais avec un vrai noyau Linux (les modules du noyau, les systèmes de fichiers, etc., devraient donc fonctionner).

coLinux exécute un véritable noyau Linux (bien que modifié). Sous Windows, il existe un pilote fournissant une gestion de la mémoire et un accès E/S. Conceptuellement, il se rapproche le plus d'une machine virtuelle, mais avec une intégration plus étroite entre l'hôte et "invité".


Du point de vue du programme, WSL et coLinux ont à peu près la même apparence qu’un véritable noyau Linux fonctionnant sur du matériel brut. WSL (actuellement) a plus de limitations et de bizarreries, mais a également une prise en charge de première partie (Microsoft) et des tâches sur x86_64. coLinux et WSL 2 sont de vrais noyaux Linux, ils se comporteront donc comme Linux, alors que WSL 1 est une implémentation de la salle blanche ABI.

Cygwin ne semble pas plus proche de Linux que, par exemple, FreeBSD.

15
Bob