Subsystem für Linux: Microsoft entschlackt den Kernel für Ubuntu on Windows
Damit die Bash und der Ubuntu-Userspace auf Windows 10 laufen, hat Microsoft seinen Kernel mit sogenannten Pico-Prozessen deutlich entschlackt. Außerdem nutzt das Subsystem für Linux zwei neue Dateisysteme, wie das Unternehmen erklärt.
Bisher waren kaum technische Details zu Windows Subsystem für Linux (WSL) bekannt, das Microsoft nutzt, um die Bash und den Ubuntu-Userspace unverändert auf Windows 10 laufen zu lassen. Das Unternehmen will das mit einer Artikelserie nun ändern und erklärt zu Beginn die grundlegenden Konzepte für das WSL, wozu sogenannte Pico-Prozesse gehören sowie neue Treiber und Dateisysteme.
Isolierte Prozesse und beschränkte Kernel-API
Die Pico-Prozesse sind aus dem Forschungsprojekt Drawbridge hervorgegangen, dessen Konzepte nun unter anderem als Sandbox-Lösung in Microsofts Cloud-Dienst Azure verwendet werden. Die Pico-Prozesse verzichten dabei auf die Nutzung und Bereitstellung sämtlicher unter Windows sonst üblichen Traps für andere Betriebssystem-Dienste, die typischerweise vom Win32-Subsystem bereitgestellt werden.
Das heißt, Pico-Prozesse laufen direkt auf dem vergleichsweise kleinen NT-Kernel und bekommen zudem einen isolierten Adressraum zugewiesen. Darüber hinaus können diese Prozesse nur festgelegte Systemaufrufe (Syscalls) nutzen, die im Fall des WSL von einem mit dem Prozess assoziierten Treiber verarbeitet werden.
Die zum WSL gehörenden Windows-Kernel-Treiber Lxcore und Lxss werden genutzt, um die Linux-Kernel-API zu emulieren. Sofern möglich, übersetzt der Lxcore-Treiber einen Linux-Syscall dann in einen entsprechenden Windows-Syscall. Gibt es keine solche Entsprechung, muss der Lxcore-Treiber den Syscall selbst ausführen.
Anwendungen des Ubuntu-Userspace im WSL werden als Pico-Prozesse ausgeführt. Verwaltet wird dies von einem speziellen Windows-Dienst in Zusammenarbeit mit den Kernel-Treiber. Sämtliche Prozesse, Threads und Laufzeitdaten einer solchen Instanz werden dazu in einer gemeinsamen Datenstruktur im Arbeitsspeicher repräsentiert. Sobald der Windows-Dienst beendet wird, werden auch sämtliche Prozesse der laufenden Instanz, also die Ubuntu-Anwendungen, beendet.
Zwei neue Dateisysteme
Damit die vom Linux-Kernel unterstützten Optionen für Dateisysteme auch auf dem WSL genutzt werden, hat Microsoft das VolFS erstellt. Dieses unterstützt Berechtigungen, die per chmod geändert werden können, symbolische Verknüpfungen, Dateinamen mit Zeichen, die unter Windows eigentlich nicht genutzt werden können, sowie Case Sensitivity, also die strikte Unterscheidung von Groß- und Kleinschreibung. Die Ordner des Ubuntu-Systems sowie Home-Verzeichnisse nutzen VolFS.
Für die Interoperabilität mit dem Windows-System existiert das Dateisystem DriveFS. Dateinamen müssen hier wie in Windows gestaltet sein, Case Sensitivity wird nicht unterstützt ebenso wie einige weitere Funktionen, die in Linux-Dateisystemen bereitstehen. DriveFS wird zum Einhängen der Windows-Festplatten genutzt.
Microsoft will künftig noch weitere technische Details zu dem WSL bekanntgeben.
Das wird oft missverstanden. Es geht nicht darum etwas billiger zu machen. Das eine hat...
Ja, Windows hat nun also dahingehend aufgeholt, was seit Jahrzehnten unter Unix/Linux...
Es dürfte sich tatsächlich um Wrapper handeln. Dieser wird die System Pfade umleiten, die...