Windows 7 Ultimate im Vergleich zu Cygwin: POSIX-Kompatibilität. Es ist praktisch, ein GNU-System direkt unter Win 7 Ultimate ohne Cygwin zu installieren

1115
John Sonderson

Welche Vor- und Nachteile hat die Verwendung von GNU / Linux-Dienstprogrammen unter Windows 7 über Cygwin im Gegensatz zur Verwendung der Unterstützung für Windows 7 Ultimate SUA (Subsystem für UNIX-basierte Anwendungen) (früher als Interix bezeichnet). Offenbar ist die SUA-Implementierung unter Windows 7 vollständig POSIX-kompatibel.

Was ich gerne wissen würde, ist:

  1. Wie gut ist die POSIX-kompatible Umgebung und die mit Windows 7 Ultimate bereitgestellten Unix-Dienstprogramme?

  2. Kann ich unter Windows 7 Ultimate ausführbare Dateien (z. B. ELF-Dateien) ausführen, ohne sie für Windows 7 neu zu kompilieren?

  3. Ich habe gelesen, dass einige Systeme wie Debian auf solche Windows 7 Ultimate SUA portiert wurden. Wo kann ich solche Distributionen herunterladen?

Auf meinem Laptop betreibe ich derzeit Windows in VirtualBox, häufig über Vagrant-Konfigurationsdateien, da ich meinen Laptop nicht als Server verwenden muss und einige Anwendungen nur unter Windows laufen und das Booten von Linux auf diese Weise scheint bequemer als Linux auf einer separaten Partition zu installieren und Dual-Boot jetzt auszuführen. Wenn ich jedoch sogar eine komplette Linux-Distribution mit nativer Unterstützung durch den Windows-Kernel und nicht über die von Cygwin bereitgestellte Benutzerspeicherplatzunterstützung ausführen könnte, wäre dies vorzuziehen (keine Notwendigkeit, Linux in der VirtualBox zu starten ).

Vielen Dank.

1
Es ist keine "grundlegende" Frage, aber es fehlt etwas Forschung ... Sie können die Dienstprogramme sehen, die Sie erhalten, wenn Sie Cygwin installieren, indem Sie deren Webseite sehen. Cygwin ist jedoch kein System in der Definition eines Betriebssystems, sondern eher eine Entwicklungsumgebung. Abgesehen davon, welches System hast du? Sie erwähnen, dass Sie nicht über Windows 7 verfügen, also gehe ich davon aus, dass Sie ein Linux-System haben oder dies würde zu einem XY-Problem führen. Doktoro Reichard vor 10 Jahren 1
Die SO-Frage http://stackoverflow.com/q/4746043/318716 kann hilfreich sein. Joseph Quinsey vor 10 Jahren 1
Ja, es ist nützlich. Wenn ich es richtig verstehe, konnte das ursprüngliche Poster eine Shell ohne Neukompilierung ausführen, sagte jedoch, dass es Probleme mit der Speicherverwaltung auf seinem System gab. John Sonderson vor 10 Jahren 0

1 Antwort auf die Frage

1
Doktoro Reichard

Ich finde Ihre Frage immer noch verwirrend, aber aus der Art und Weise, wie die Frage gestellt wird, sehe ich, dass Sie versuchen, von einem Linux-System auf Windows umzusteigen und Linux / UNIX-ähnliche Funktionalität beibehalten möchten.

Nun, hier ist was Cygwin ist:

  • Eine Sammlung von Tools, die eine Linux-Look & Feel-Umgebung für Windows bieten.
  • Eine DLL (cygwin1.dll), die als Linux-API-Schicht fungiert und umfangreiche Linux-API-Funktionen bietet.

... und was ist nicht:

  • Eine Möglichkeit, native Linux-Apps unter Windows auszuführen. Sie müssen Ihre Anwendung aus dem Quellcode neu erstellen, wenn sie unter Windows ausgeführt werden soll.
  • Eine Möglichkeit, native Windows-Apps auf magische Weise mit UNIX®-Funktionen wie Signalen, ptys usw. vertraut zu machen. Auch hier müssen Sie Ihre Apps aus dem Quellcode erstellen, wenn Sie die Cygwin-Funktionalität nutzen möchten.

Vor- und Nachteile der Verwendung von Cygwin hängen davon ab, mit welchem ​​Produkt oder mit welcher Verwendung Sie zu vergleichen versuchen. Da Cygwin im Wesentlichen ein Toolset ist, haben Sie die Vorteile, die Tools in Cygwin zu integrieren. Der Hauptnachteil, wenn Sie es so nennen könnten, ist, dass die Festplatte etwas voll wird, da Sie ein Toolset installiert haben.

Ich habe Cygwin zwar nie ausgiebig verwendet, da es nichts deinstalliert cmdund bashin Cygwin enthalten ist, sollte es separat betrieben werden. Als solche können Sie bashnebeneinander verwenden cmd, obwohl Sie sich an eine einzige Befehlszeile halten sollten.

Es ist nahezu unmöglich (außer bei der Virtualisierung), ein Betriebssystem über einem anderen zu installieren, ohne das erste unbrauchbar zu machen. Daher wurden keine GNU-Systeme im Sinne von Betriebssystemen geschaffen, die neben einem anderen Betriebssystem funktionieren. Damit ist Cygwin in der Nähe, denn es beweist, dass Sie in einer Windows-Umgebung die meisten Tools haben, die Unix bietet.

(Nebenbei gesagt, ich denke immer noch, dass Ihre Frage verwirrend ist, insbesondere der POSIX-Teil. Windows (nicht NTFS) und einige Linux-Versionen sind nicht vollständig POSIX-kompatibel, da Sie sich nicht auf die speziellen Funktionen von POSIX bezogen haben, die Sie wollten zu benutzen, ich bin in dieser Hinsicht verblüfft)

Vielen Dank für Ihre Klarstellung. Offensichtlich besteht der Hauptunterschied darin, dass Software, die in Cygwin ausgeführt wird, neu kompiliert und mit den Cygwin-DLLs zusammengebaut werden muss, um in Cygwin ausgeführt zu werden, während unter Windows 7 Ultimate für Unix-basierte Anwendungen solche Anwendungen bereits aus dem Lieferumfang kommen kompiliere sie neu. Mein Verständnis ist, dass ich beispielsweise eine Unix-Partition mounten und die Anwendungen von Windows aus ausführen kann. John Sonderson vor 10 Jahren 0
Wenn ich über POSIX-Kompatibilität spreche, meine ich die Verfügbarkeit von POSIX-API-Funktionen für die Programmiersprache C und die Verfügbarkeit von POSIX-Implementierungen von Tools wie vi, sed, awk und so weiter. Anscheinend ist Windows 7 Ultimate POSIX-kompatibel (obwohl einige Leute es vielleicht nicht wissen), was macht dieser Wikipedia-Artikel sonst? http://en.wikipedia.org/wiki/Interix John Sonderson vor 10 Jahren 0
Wenn Sie sich auf [this] (http://technet.microsoft.com/de-de/library/cc771470.aspx) beziehen, dann stoßen Sie auch auf dasselbe Problem. Doktoro Reichard vor 10 Jahren 1
Sorry, wenn ich nicht folge, aber auf welches Problem beziehen Sie sich hier? Vielen Dank. John Sonderson vor 10 Jahren 0
Sie müssten (anscheinend) Ihren Code neu kompilieren, damit er unter Windows funktioniert. Können Sie versuchen, Ihre Frage zu bearbeiten? Es scheint mir, als würden Sie versuchen, ein Problem zu lösen, indem Sie sehen, ob Ihre Lösungen funktionieren (dh das XY-Problem) (http://meta.stackexchange.com/questions/66377/what-is-the-xy- problem). ). Wenn Sie Ihr konkretes Problem erläutern können, helfen möglicherweise mehr qualifizierte Personen bei der Lösung dieses Problems. Ich persönlich habe nicht viel Erfahrung mit UNIX, so dass sich die Erfahrungen anderer Leute als nützlich erweisen werden. Doktoro Reichard vor 10 Jahren 1
OK, ich habe meine Frage umformuliert. Hoffentlich ist es jetzt klarer. John Sonderson vor 10 Jahren 0
Ich verstehe jetzt deine Antwort. In beiden Fällen, ob Cygwin verwendet wird oder die SUA-Unterstützung von Windows 7 Ultimate in beiden Fällen zum Ausführen einer Unix / Linux-Anwendung verwendet wird, die auf dem System nicht vorhanden ist, muss diese für dieses System kompiliert werden ( aus dem Quellcode, es sei denn, eine für dieses System entwickelte Binärdatei wird über das Netzwerk (wie bei Cygwin über das Installationsprogramm) zur Verfügung gestellt. John Sonderson vor 10 Jahren 0
Obwohl SUA quellkompatibel zu POSIX ist (aber nicht binärkompatibel mit Unix-Anwendungen (die so kompiliert wurden, dass sie auf Unix-Systemen laufen)), finde ich, dass sich die POSIX-Unterstützungsfunktion durchaus als nützlich erweisen kann. John Sonderson vor 10 Jahren 0
Hier ist der Link für das Portierungsprojekt von Debian unter Windows. Leider scheint es derzeit nicht aktiv zu sein: http://www.debian-interix.net/ John Sonderson vor 10 Jahren 0