Was sind die Unterschiede zwischen Windows Bash und Cygwin?

65

Was sind die Unterschiede zwischen Windows Bash und Cygwin?

Das neue Update von Windows mit "Linux" Bash ist neu, aber welche Unterschiede gibt es zu Cygwin, die Sie dazu bringen könnten, sich für ein anderes zu entscheiden?

Martijn van Wezel
quelle
1
Ich nehme an, die Windows-Bash ist besser integriert und wird von Microsoft besser unterstützt.
Panther
2
Ich denke, dass diese Frage zum Thema gehört, da Windows Bash ein von Canonical unterstütztes Produkt ist. Es ist vielleicht eher eine Meinung als eine Unterstützung.
Panther

Antworten:

65

Cygwin ist ein großartiges Tool, wenn Sie vollständig in Windows leben und Windows-Aufgaben mit Bash-Skripten steuern / automatisieren möchten. Cygwin kann jedoch keine unveränderten Linux-Binärdateien ausführen.

Hier greift die WSL ein:

Das Windows-Subsystem für Linux (WSL) ist eine neue Schicht des Windows-Kernels, die ein hohes Maß an Kompatibilität mit dem Linux-Kernel ABI gewährleisten soll. Auf diese Weise können native, unveränderte Linux-ELF64-Binärdateien unter WSL ausgeführt werden.

Auf diese Weise kann WSL eine echte Ubuntu-Distribution für Benutzer ausführen und alle Pakete, die Sie von apt-get herunterladen, oder .deb-Pakete von einem anderen Ort, ohne Änderungen.

Ziel von WSL ist es, Entwicklern, die unter Windows arbeiten, die Möglichkeit zu geben, viele der Tools auszuführen und an vielen Projekten zu arbeiten, die von Linux-Binärdateien, Funktionen, Verhalten, Dateisystemlayout, Prozessmodell usw. abhängen.

Während sich die WSL noch in einem frühen Stadium ihrer Implementierung befindet, arbeiten wir hart daran, die Breite und Tiefe unserer Syscall-Implementierungen zu verbessern, um die Fähigkeit der WSL, einen immer größeren Satz von Tools auszuführen und eine schnell wachsende Anzahl von Ruby, Java, -Knoten zu unterstützen usw. Pakete und Projekte.


Aktualisierung: 07.09.2017

Seit dem Schreiben des obigen Dokuments haben wir Windows 10 Creators Update ausgeliefert, das die Kompatibilität der WSL mit VIELEN der Tools, die Sie ausführen möchten / müssen, massiv verbessert.

Die Entwicklung wurde auch unvermindert fortgesetzt und wir haben Win10 Insiders Builds in den letzten Monaten auf dem Weg zur Auslieferung des Fall Creators Update (FCU) im Oktober 2017 ausgeliefert.

In der FCU haben wir die Möglichkeit, mehrere Distributionen nebeneinander zu installieren und auszuführen: Ubuntu, openSUSE und SLES sind derzeit verfügbar, Fedora und andere sind unterwegs. WSL unterstützt jetzt auch USB-serielle Kommunikation und das Mounten von USB-Speicher- und Netzwerkfreigaben sowie weitere Verbesserungen an unseren Systemaufrufen, die die Kompatibilität mit weiteren Tools verbessern.


Update: 22.08.2019

Es ist ein paar Jahre her, dass WSL zuerst angekündigt und veröffentlicht wurde, dann Unterstützung für mehrere Distributionen über den Store hinzugefügt und WSL v1.0 HTH angekündigt wurde.

Auf Build 2019 haben wir das neue Windows Terminal ( Terminal-Sitzungsvideo hier ) und WSL 2 ( WSL 2-Sitzungsvideo hier ) vorgestellt, die einen völlig neuen Ansatz für die Ausführung von Linux unter Windows einführen.

Weitere Informationen und zukünftige Updates finden Sie alle paar Wochen im Windows-Befehlszeilenblog, in dem wir zahlreiche verwandte Nachrichten veröffentlichen

Rich Turner
quelle
9
Ich bin seit Jahren ein Cygwin-Benutzer. Die WSL ist eine fantastische Idee, die meistens gut funktioniert. In diesem Stadium ist die Geschwindigkeit des Dateizugriffs jedoch hundeschwach. Ich sage unerschwinglich langsam. Sogar mittelgroße Operationen mit etwas wie GIT dauern bei Cygwin in der Größenordnung von mehr als 30 Sekunden im Vergleich zu weniger als einer Sekunde. Hoffentlich schaffen sie es, das zu beheben.
Damien Sawyer
9
Datenträgerleistung ist ein bekanntes Problem: Wir arbeiten an einigen Leistungsverbesserungen für Win10 CU. Weitere wesentliche Verbesserungen werden
Rich Turner
3
Fantastisch. Ich kann es kaum erwarten. Es wird ein großartiges Produkt :-)
Damien Sawyer
2
@ DamienSawyer es ist über 6 Monate her. Wurden Ihre Geschwindigkeitsbeschwerden verringert oder sind sie immer noch gleich?
WinEunuuchs2Unix
3
@RichTurner dann werde ich das Update ausführen: D
Martijn van Wezel
15

Windows-Subsystem für Linux

Ich benutze WSL seit ungefähr ein paar Monaten unter Windows 10. Endlich kann ich Windows zum Spielen starten und trotzdem auf die Bash-Eingabeaufforderung zugreifen und CLI und viele GUI-Programme ausführen. Es gibt Einschränkungen wie keine der bekannten virtuellen Linux-Kernel-Verzeichnisse. Planung ist erforderlich, um dasselbe Bash-Skript für Ubuntu und WSL auf einem Dual-Boot-Computer zu verwenden.

Es gibt viele Dinge, die ich gerne verbessert hätte, aber ich kann damit leben, wie es für ein Jahr oder so ist.

Geschlossene Quelle

Beachten Sie, dass Microsoft ein geschlossenes System ist und Sie nicht die Unruhe von Drittanbietern verspüren, die Aktualisierungen schreiben, die Ihnen unter Linux gefallen. Aber wenn man bedenkt, dass man einen neuen Laptop kauft und dieser sowieso mit Windows 10 geliefert wird, kann man sagen, dass er mindestens "kostenlos" ist :)

Cygwin wird von Red Hat Linux gesteuert, das nicht gerade dafür bekannt ist, Dinge kostenlos zu verschenken. Ihre "kostenlose" Linux-Distribution Fedora scheint für manche ein "Testfeld" zu sein.

Wartungszyklen

Cygwin hat 15 Jahre Updates. Bemerkenswert ist, dass derselbe Projektmanager seit 2003 im Amt ist. Es gibt viele Vollzeitbetreuer und viele weitere freiwillige Mitarbeiter.

Die WSL bietet zweimal jährlich im Frühjahr und Herbst wichtige Updates an. Wöchentliche kleinere Updates sind für Entwickler in der Abonnementliste verfügbar. Obwohl Microsoft über Ressourcen verfügt, um Tausende von Menschen in die WSL-Entwicklung einzubeziehen, können Sie die Teammitglieder anscheinend mit den Fingern zählen.

Geschwindigkeitsprobleme

Sie werden viele Beschwerden über die Geschwindigkeit der WSL sehen. Beispielsweise dauert das Malen von Bildschirmen in Windows 10 um ein Vielfaches länger als in Ubuntu 16.04, dh Sie können tatsächlich sehen, wie sich der Cursor in Windows 10 bewegt:

WSL bash startup.gif

Es dauert ungefähr 5 Sekunden, bis der Begrüßungsbildschirm von WSL Bash angezeigt wird. Im Vergleich dazu sind es ungefähr 1 1/2 Sekunden für den gleichen Begrüßungsbildschirm in Ubuntu 16.04:

Ubuntu-Terminal splash.gif

Cygwin hat einen eigenen Anteil an Geschwindigkeitsbeschwerden bei Bash .


Ursprüngliche Buchung unten als historischer Bezug.

Die Antwort hier ist ein Jahr alt, daher halte ich ein kleines Update für angebracht. Wenn es sich bei Windows 10 Home um ein 32-Bit-Windows handelt, bedeutet dies, dass das 64-Bit-Ubuntu / Windows-Subsystem nicht ausgeführt wird, wie Microsoft hier mitteilt: ( Windows Linux-Subsystem in win10 HOME BASIC ).

Es ist wie ein Traum, wenn Ubuntu unter Windows mit seiner überragenden Spielunterstützung für Nvidia ausgeführt wird. Bevor Sie sich jedoch einen neuen (oder gebrauchten) Laptop zulegen, sollten Sie sicherstellen, dass Windows 10 64-Bit und nicht die 32-Bit-Heimversion installiert ist Sie möchten Ubuntu / Linux-Inhalte nativ unter Windows ausführen. Auf Microsoft-Websites wird die Windows Anniversary Edition als Voraussetzung für die Ausführung von Windows Subsystem for Linux bezeichnet.


Wenn Sie jedoch nicht mehr als 200 US-Dollar für Windows 10 bezahlen möchten und wie ich einen älteren Laptop mit Windows 8.1 64-Bit haben und wie ich einen noch älteren Laptop mit Windows Vista 64-Bit haben, dann ist Cygwin das Richtige für Sie die Antwort.

Cygwin unterstützt weitere Windows-Versionen, die auf der Website aufgelistet sind :

Es ist zu erwarten, dass Cygwin auf allen modernen, freigegebenen Windows-Versionen ausgeführt werden kann. Stand Januar 2016 Dies schließt Windows Vista, Windows Server 2008 und alle neueren Versionen von Windows bis Windows 10 und Windows Server 2016 ein. Die 32-Bit-Version von Cygwin wird auch in der WOW64-32-Bit-Umgebung auf freigegebenen 64-Bit-Versionen von Windows 64 ausgeführt Bit-Version natürlich nur auf 64-Bit-Windows.

Denken Sie daran, dass Cygwin nur so viel kann, wie das zugrunde liegende Betriebssystem unterstützt. Aus diesem Grund verhält sich Cygwin in den verschiedenen Windows-Versionen unterschiedlich und weist unterschiedliche Einschränkungen auf.

WinEunuuchs2Unix
quelle
2
Die Frage ist, was die Unterschiede zwischen Cygwin und Bash für Windows sind. Cygwin wird in Ihrer Antwort nicht einmal erwähnt. Bitte klären Sie, wie dies die Frage beantwortet.
Seth
@Seth Ich habe darauf hingewiesen, wie WSL versionsspezifisch ist, während Cygwin auf allen unterstützten Versionen von Windows ausgeführt wird. Vielen Dank, dass Sie auf mein Versehen hingewiesen haben.
WinEunuuchs2Unix
1
Wir waren uns sehr sicher, dass WSL 64-Bit-Windows erfordert und in jeder Windows 10-SKU verfügbar ist, mit Ausnahme des aktuellen LTSB. WSL wird der nächsten LTSB-Version hinzugefügt. Die WSL wird auch in Windows Server enthalten sein, das im Herbst 2017 veröffentlicht wird.
Rich Turner,
@RichTurner Auf Ihrer Website wird dies klar dargestellt. Was mir nicht klar ist (und nicht deine Schuld), ist, warum der Hersteller einen i7 Quad Core 7700 mit Nvidia 1050 GPU und 12 GB System-RAM mit Windows 10 Home verkauft. Jemand hat den ursprünglichen Link gelöscht, aber hier ist er . Sie buchstabieren nicht, dass es 32-Bit ist. Wollen Sie damit sagen, dass jedes Windows 10 64-Bit ist?
WinEunuuchs2Unix
1
Es wird als Gaming-PC verkauft. Da die meisten Gamer in Win10 Pro keine zusätzlichen Funktionen benötigen, hat sich Home für Home entschieden, um den Kunden davon abzuhalten, für etwas zu bezahlen, das er wahrscheinlich nicht benötigt. Windows 10 gibt es auch in 32-Bit-Versionen, aber ich wäre erstaunt, wenn jemand eine Maschine mit> 4 GB RAM verkauft und ein 32-Bit-Betriebssystem installiert hätte, da das Betriebssystem und die Apps, die darauf ausgeführt werden, nicht in der Lage wären um auf etwas zuzugreifen> 4GB.
Rich Turner