WSL: Build 14951 verbindet Windows-Programme mit Bash

Microsoft erweitert das Windows Subsystem for Linux: Mit Insider-Build 14951 lassen sich Windows-Programme direkt aus der Bash-Umgebung starten und mit Linux-Werkzeugen kombinieren. Die am 19. Oktober 2016 vorgestellte Funktion verbindet Prozesse beider Umgebungen über ihre Ein- und Ausgabekanäle. Ein separates Kopieren der Ergebnisse ist damit für solche Arbeitsabläufe nicht mehr erforderlich.

Windows-Ausgaben mit Linux-Werkzeugen filtern

Ein Beispiel ist ipconfig.exe: Seine Ausgabe kann über eine Pipe an grep weitergereicht werden. Windows-Programme laufen dabei mit den Berechtigungen des aufrufenden Bash-Prozesses. Shell-interne Windows-Befehle sind keine eigenständigen Programme; für dir ist deshalb der Aufruf cmd.exe /c dir nötig.

Technisch erkennt ein registrierter Handler ausführbare Windows-Dateien und übergibt den Start an die Windows-Seite. LxBus dient dabei als Kommunikationskanal. Die Übersetzung von Linux-Systemaufrufen über den NT-Kernel bleibt davon zu unterscheiden: Die Interoperabilität macht aus einem Win32-Programm keinen Linux-Prozess.

Getrennte Umgebungsvariablen und Dateisystemgrenzen

Zum Start müssen die Windows-Dateien über DrvFs erreichbar sein, beispielsweise unter /mnt/c/Windows/System32. Auch die Übernahme des Arbeitsverzeichnisses setzt einen solchen Pfad voraus. Die Umgebungen einschließlich ihrer PATH-Werte bleiben getrennt; ein Windows-Programm ist daher nicht allein durch seine Installation automatisch unter seinem Namen in Bash auffindbar.

Die Release Notes zu Build 14951 zeigen hierfür das Ergänzen des Windows-Systemverzeichnisses in der Bash-PATH-Variable. Außerdem erhalten neue WSL-Installationen in diesem Build Ubuntu 16.04. Bestehende Installationen mit Ubuntu 14.04 werden dadurch nicht automatisch aktualisiert. Für Entwicklungsumgebungen sind Betriebssystem-Build, installierte Distribution und Suchpfad somit getrennt zu prüfen.

Weitere News

Weitere News

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein