Subsystem für UNIX-basierte Anwendungen in Windows 7


13

Bemerkt ein Ding namens Subsystem für UNIX-basierte Anwendungen in der Windows - Funktionen ein- und ausschalten Dialog unter Windows 7. es nie zuvor gesehen, und es scheint interessant. Was genau ist das wirklich? Wofür ist es und wofür könnte ich es verwenden?


1
Gibt es einen Hack, um dies in Windows 7 Professional zu verwenden?
Iceman

@iceman: Installieren Sie dann Enterprise oder Ultimate.
Joey

Eine gute Lektüre dessen, was hätte sein können: "Die traurige Geschichte des Microsoft POSIX-Subsystems" brianreiter.org/2010/08/24/…
Daniel Sokolowski

Antworten:


18

Früher als SFU oder Services for UNIX bekannt . Es ist ein Umgebungssubsystem in Windows, das vollständige POSIX-Konformität und eine große Anzahl von Tools bietet, die normalerweise mit UNIX-Systemen geliefert werden.

Als Umgebungssubsystem bedeutet dies, dass es neben der Windows-API direkt über dem Kernel ausgeführt wird. Es ist also nicht emulierter als die native Windows-API selbst und bietet daher eine viel bessere Leistung als beispielsweise Cygwin. 1

Es ist hauptsächlich zum Erstellen und Ausführen von UNIX-Anwendungen direkt unter Windows vorgesehen. Wenn Ihr bevorzugtes UNIX-Programm nicht über einen Windows-Port verfügt, können Sie versuchen, es in SUA zu erstellen:

Windows-Dienste für Unix und Subsystem für Unix-basierte Anwendungen bieten Header-Dateien und -Bibliotheken, die das Neukompilieren oder Portieren von Unix-Anwendungen für die Verwendung unter Windows erleichtern. Sie machen Unix-Binärdateien nicht mit Windows-Binärdateien kompatibel. Es wird am besten als eigenständige Unix-ähnliche Plattform angesehen.

Die aktuelle Version von SFU enthält:

  • Über 350 Unix-Dienstprogramme wie vi, ksh, csh, ls, cat, awk, grep, kill usw.
  • GCC 3.3 Compiler, enthält und Bibliotheken (über eine MS libc)
  • Ein cc-ähnlicher Wrapper für den Microsoft Visual Studio-Befehlszeilen-C / C ++ - Compiler
  • GDB-Debugger
  • NFS-Server und -Client
  • Ein pcnfsd-Daemon
  • X11-Tools und -Bibliotheken
  • Tools zum Erstellen von NFS-Mountpunkten werden als Windows-Freigaben angezeigt und umgekehrt (Gateway-Dienste)
  • Eine mit Active Directory (AD) verknüpfte NIS-Serverfunktion
  • Einige Tools zur Synchronisierung von Windows / Unix-Authentifizierungsinformationen

SFU enthält Folgendes nicht (Binärdateien sind jedoch für eine separate Installation verfügbar):

  • Bash, OpenSSH, Sudo, CVS, ClamAV, BZIP2, Gmake, Curl, Emacs, Apache, XView, Ruby, Tcl, Python

(Wikipedia)

Da SUA nicht versucht, Linux oder BSD zu sein, sondern nur POSIX, kann dies auch bedeuten, dass viele Programme, die auf plattformspezifischen Dingen basieren, möglicherweise nicht erstellt oder ausgeführt werden können. Es kommen Shell-Skripte in den Sinn, die Bash anstelle von sh oder Linux-spezifischen Systemaufrufen annehmen. Heutzutage werden nur sehr wenige Programme geschrieben, die direkt auf jedem POSIX-kompatiblen System ausgeführt werden können. Auch die enthaltene Version von gcc ist etwas alt, was bedeutet, dass sie möglicherweise nicht Ihre neueste C99 + -Güte unterstützt.


1 Es unterliegt immer noch Windows-spezifischen Einschränkungen, wie z. B. einer langsamen Prozessstartzeit, sodass extremes Forking immer noch sehr langsam ist. Deshalb warten Sie ewig, bis viele ./configureSkripte oder Makefiles ausgeführt werden.


Cool. Bedeutet das also, dass Sie eine Unix-ähnliche Shell erhalten und beispielsweise ssh verwenden können?
Svish

Kein SSH-Server oder -Client, aber csh und ksh sind enthalten (viel mehr wird von POSIX sowieso nicht vorgeschrieben). Sie können aus dem Quellcode erstellen, was Sie benötigen, in der Hoffnung, dass es funktioniert (bei komplexerer Software ist dies normalerweise nicht der Fall, da Makefiles und Software nicht für POSIX oder für gcc und eine Microsoft-Bibliothek geschrieben wurden. Linux-Tools sind ebenfalls berüchtigt bash ohne besonderen Grund erfordern Anscheinend Sie. können pkgsrc einrichten, obwohl ich das zu tun bisher nicht gelungen zu sein , obwohl , aber meine Erfahrung Daten SFU 3.5 auf Windows 2000 zurück könnte , dass die Dinge jetzt geändert werden müssen..
Joey

Während das ursprüngliche POSIX-Subsystem in NT neben den Win32- und OS / 2-Subsystemen direkt auf dem Kernel ausgeführt wurde, wird SUA über der Windows-API ausgeführt.
ン ー パ. フ ァ ミ ミ

2
matthews: Ausführbare Dateien für SUA sind immer noch POSIX-Subsystemanwendungen (ja, ich habe tatsächlich einen Hex-Editor genommen und nach innen geschaut). Der Kernel kommt also nicht einmal auf die Idee, etwas über die Windows-API auszuführen.
Joey

4
@Svish: Sie können OpenSSH SUA-Binärdateien (und vieles mehr) von suacommunity.com herunterladen
bk1e

1

Sie können BSD-Pakete zum Installieren / Deinstallieren von Software verwenden. Sie können über SSH auf SUA zugreifen, wenn Sie OpenSSH installiert haben.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.