Wie funktioniert das neue "Bash on Windows 10" wirklich?

25

Ich habe online gelesen, dass Ubuntu und Bash auf Windows 10 kommen. Ich habe auch gelesen, dass es sich nicht um einen Emulator oder eine virtuelle Maschine handelt, die auf Windows läuft, sondern um etwas anderes. Wie genau kommt das zusammen? Und wird es wirklich so stabil und benutzerfreundlich sein wie Bash in Ubuntu?

Maaverik
quelle
Es liefert nicht wirklich ein großartiges Bild davon, was wirklich unter der Haube passiert.
Maaverik
@maaverik Seitdem haben wir eine Reihe von Blogposts und begleitenden Videos erstellt, in denen die Interna der WSL erklärt werden. Siehe meine Antwort unten für Links :)
Rich Turner

Antworten:

21

Es ist kein Emulator wie WINE kein Emulator. Das heißt, sie haben ihrem Windows-Kernel eine Linux-Kernel-Schnittstelle hinzugefügt. Wenn eine App versucht, den Linux-Kernel zu verwenden, wird dieser in einen systemeigenen Windows-Systemaufruf übersetzt, und alle Antworten des Kernels werden in eine systemeigene Linux-Antwort übersetzt. Die App glaubt, dass sie auf einem Linux-Kernel ausgeführt wird und muss daher nicht geändert werden.

Dies ist jedoch eine reine Windows-Technologie. Wenn Sie weitere Informationen benötigen, wenden Sie sich an eine Windows-Supportgruppe oder eine andere Stelle. Windows ist weiterhin ein proprietäres Betriebssystem, daher würde ich eine begrenzte Anzahl von Details erwarten.

Und wird es wirklich so stabil und benutzerfreundlich sein wie Bash in Ubuntu?

Aus Ubuntu-Sicht laufen wir einfach auf einem primitiven Linux-Kernel, vergleichbar mit einem modernen Desktop auf einem primitiven X-Server. Wenn Sie nur die vom gefälschten Kernel unterstützten Funktionen verwenden, ist dieser stabil und benutzerfreundlich. Wenn Sie nicht unterstützte Funktionen verwenden, wird dies instabil.

Es wird in naher Zukunft keine vollständige Ubuntu-Erfahrung geben.

Jo-Erlend Schinstad
quelle
2
"Kein Emulator" gehört wahrscheinlich in Anführungszeichen; wie Wein es ist ein Emulator, nur nicht auf Hardware - Ebene , sondern auf der API - Ebene. Beides führt zu Leistungsverlusten, je nachdem, was Sie tun (dh wie viele Systemaufrufe Sie tätigen).
Thomasrutter
2
@ thomasrutter Sorry da stimme ich nicht zu. Ihre Definition von "Emulator" ist zu locker. Bei einer solchen Interpretation müssen wir auch Proxy-Emulatoren anrufen (aber sie sind es nicht). Ein Emulator emuliert per Definition Dinge. WSL (und Proxies) emulieren keine Dinge, sie transformieren und leiten Dinge weiter und geben eine Antwort zurück.
Segfault
21

Für diejenigen , die wissen möchten, wie das Windows-Subsystem für Linux (WSL) funktioniert und wie es native Linux-ELF-64-Binärdateien ausführt, haben wir eine Reihe von Blogposts und Videos veröffentlicht, in denen die WSL-Architektur, Prozesse, Systemaufrufe und Dateisystemunterstützung erläutert werden .

Scott Hanselman hat auch ein tolles Exemplar des Installationsprozesses und der Konfiguration von Bash unter Ubuntu unter Windows gezeigt:

HTH

Rich Turner
quelle
3
Der erste Link funktioniert nicht mehr, ich glaube, er ist hierher gezogen: blogs.msdn.microsoft.com/commandline/…
dpritch
Guter Fang - danke. Der Link wurde so korrigiert, dass er auf unseren verkürzten Link zeigt.
Rich Turner
2

Die Bash-Teile funktionieren in der WSL sehr gut.

Die Kernelteile sind nicht da. Zum Beispiel gibt es keinen /sys/class/backlight/intel_backlight/brightnessZugang zum Einstellen der Bildschirmhelligkeit. Es gibt Powershell-Befehle, die Sie problemlos aufrufen können, wenn Sie keine Probleme mit sehr langen Feldnamen im COBOL-Stil haben. MS Powershell kann direkt aus der Bash heraus aufgerufen werden. Sie können also sagen, dass jetzt leistungsstarke Windows-Funktionen in bash integriert sind. Aus dem gleichen Grund kann MS Powershell Bash nennen, glaube ich. Also , wenn wahres Powershell erhält Zugriff auf Funktionen wie grep, awk, head, tailetc.

Die GUI für Ubuntu Desktop ( gedit, nautilususw.) funktioniert nur nach der Installation VcXsrvoder ähnlichem.

Das Teilen von Dateien zwischen Linux und Windows WSL ist kompliziert einzurichten. Beim Verschieben von Dateien zwischen dem freigegebenen WSL + Linux NTFS-Ordner hatte ich einige Dateiberechtigungen "Verrückt", entweder aufgrund meiner Unkenntnis oder aufgrund von Softwaremängeln.

Geschwindigkeit ist in der WSL viel langsamer als in Ubuntu. Sie können die Bildschirmfarbe tatsächlich Zeichen für Zeichen sehen, wenn Sie ausführen, caloder toilet: Was sind die Unterschiede zwischen Windows Bash und Cygwin?

Ich halte die WSL für ein gutes Produkt und genieße es, beim Dual-Booten in Windows-World daran zu basteln. Es wird nie ein großartiges Produkt werden, weil MS nicht genügend Geld zur Verfügung hat, und sie wollen sowieso keine großartige Linux-Free-Ware-Distribution. Wenn Sie genug RAM hätten, wären Sie wahrscheinlich mit einer VM zufriedener. Da ich selbst nur 8 GB habe und die RAM-Preise bis etwa Mitte 2019 steigen, bleibe ich gerne bei der WSL und verzichte vorerst auf das 32-GB-RAM-Upgrade.

Ich habe ein paar MS-Foren besucht und ich muss sagen, dass Rich Turner und seine WSL-Teammitglieder einige der nettesten Profis sind, die ich gesehen habe.

WinEunuuchs2Unix
quelle