Windows Subsystem for Linux: Microsoft erklärt die Architektur von Bash unter Windows

Microsoft hat am 22. April 2016 die Architektur des Windows Subsystem for Linux erklärt. Die Windows-Komponente führt native Linux-ELF64-Binaries aus und richtet sich damit auch an Entwickler, die ihre Werkzeuge unter Windows und Linux kombinieren möchten.

WSL besteht laut Microsoft aus einem Sitzungsdienst, Pico-Providern und Pico-Prozessen. Diese Komponenten bilden keine herkömmliche virtuelle Maschine. Stattdessen werden Linux-Systemaufrufe in einer Kompatibilitätsschicht auf dem Windows-NT-Kernel verarbeitet.

Pico-Prozesse verbinden Linux und Windows

Der LXSS-Manager verwaltet die Lebensdauer einer Linux-Instanz und startet Linux-Binaries über Bash. Die Treiber lxss.sys und lxcore.sys nehmen Systemaufrufe entgegen. Wo eine direkte Entsprechung fehlt, übernimmt die WSL-Schicht die nötige Logik selbst. Als Beispiel nennt Microsoft fork(), das im Windows-Kernel nicht als dokumentierter Aufruf mit identischer Bedeutung vorhanden ist.

Die Entwicklerseite erläutert außerdem, dass Pico-Prozesse aus Project Drawbridge stammen. Sie laden unveränderte Linux-Programme in einen Prozessraum und leiten deren Aufrufe an die gekoppelten Kernelkomponenten weiter. Damit unterscheidet sich WSL vom Ansatz früherer POSIX- und SUA-Subsysteme, die Anwendungen häufig neu kompilieren mussten.

VolFs und DriveFs für unterschiedliche Aufgaben

Für Linux-Dateien verwendet WSL VolFs. Das Dateisystem unterstützt unter anderem Linux-Berechtigungen, symbolische Links, case-sensitive Dateinamen und typische Verzeichnisse wie /etc, /bin und /usr. Der Zugriff auf diese Dateien aus normalen Windows-Anwendungen war in der ersten WSL-Version nicht vorgesehen.

DriveFs bindet dagegen die festen Windows-Laufwerke unter /mnt/c oder /mnt/d ein. Diese Ebene dient der Zusammenarbeit mit Windows-Programmen und erlaubt es, Dateien etwa mit Editoren zu bearbeiten und sie gleichzeitig mit Open-Source-Werkzeugen in Bash zu verarbeiten. Ein ähnlicher Plattformbezug für Entwickler zeigt sich bereits beim älteren Unity Cloud Build, das Windows, OS X und Linux in einem Build-Workflow verband.

Weitere News

Weitere News

Kommentieren Sie den Artikel

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