Microsoft führt ja in dem im Sommer 2016 erwarteten Windows 10 Anniversary ein Linux-Subsystem ein. Jetzt gibt es einige Details zu dessen Architektur.
Anzeige
Zur BUILD 2016 wartete Microsoft ja mit der Info auf, dass im Windows 10 Anniversary Update ein Linux-Subsystem integriert wird, mit dem eine BASH-Shell ausgeführt werden kann. Jetzt hat das Entwicklerteam einige Details publiziert. Zitat:
We recently announced Bash on Ubuntu on Windows which enables native Linux ELF64 binaries to run on Windows via the Windows Subsystem for Linux (WSL). This subsystem was created by the Microsoft Windows Kernel team and has generated a lot of excitement. One of the most frequent question we get asked is how is this approach different from a traditional virtual machine. In this first of a series of blog posts, we will provide an overview of WSL that will answer that and other common questions. In future posts we will dive deep into the component areas introduced.
Das Windows Subsystem für Linux (WSL) besteht aus User-Mode- und Kernel-Mode-Komponenten und kann Linux ELF64 Binaries unter Windows 10 ausführen.
(Quelle: Microsoft)
Für mich war es eine faustdicke Überraschung, die folgende Erklärung zu lesen:
Anzeige
- User mode session manager service that handles the Linux instance life cycle
- Pico provider drivers (lxss.sys, lxcore.sys) that emulate a Linux kernel by translating Linux syscalls
- Pico processes that host the unmodified user mode Linux (e.g. /bin/bash)
Die Linux-Binaries werden in Pico-Prozessen im Windows-Kernel ausgeführt, die die Linux-Systemaufrufe ermöglichen und an den Windows-Kernel weiterreichen. Hierzu werden die Treiber lxss.sys und lxcore.sys eingesetzt. Diese übernehmen die Übersetzung der Linux-Systemaufrufe in NT APIs-Aufrufe und emulieren damit einen Linux-Kernel.
Mit anderen Worten: Es wird kein Linux-Basissystem in Windows integriert, sondern es kommen Pico-Prozesse mit einer API-Übersetzung zum Einsatz. Und hier klingelt bei mir war, ist das doch die Quintessenz, die Microsoft-Forscher aus dem DrawBridge-Projekt gezogen haben (siehe Linkliste). Dort wurde der gleiche Ansatz verwendet, um API-Aufrufe älterer Windows-Versionen an einen neuen Windows-Kernel weiterzureichen. Das Ganze lief unter dem Begriff MinWin.
Ich hatte daher eigentlich erwartet, dass Microsoft vor dem Auslaufen des Supports für Windows XP eine Lösung der Art „MiniWin XP-VM" bringt – also ein auf rudimentäre Funktionen abgespecktes Windows XP, welches als virtuelle Maschine in Form von Pico-Prozessen daherkommt. Das ist jetzt keine wilde Idee, denn bei Microsoft arbeitet man in den Entwicklungslabors genau an so etwas. Über das Projekt XaX bzw. Drawbridge hatte ich im Blog, unter anderem im Beitrag Microsofts "Drawbridge"-Projekt vorgestellt, mehrfach berichtet. Es gibt also diese Technologie, sogar in extrem innovativer Variante. Aber das sollte wohl nicht sein.
Was mich im Kontext dieses Linux-Subsystem zum Schluss bringt, dass Microsoft nicht wollte. Man ist, in meinen Augen, mehr auf Effekthascherei aus. Mir war bisher nicht klar, dass ich ein Linux-Subsystem unter Windows 10 bräuchte – und ich sehe auch zukünftig da wenig Bedarf. Ein MinWin mit XP-Schnittstellen, unter dem ich Anwendungen im Kompatibilitätsmodus von Windows XP als Pico-Prozesse laufen lassen könnte, hätte vielen Nutzern Kompatibilitätsprobleme mit Treibern und Software lösen können.
Weiterhin unterstützen die Treiber ein WSL-Dateisystem (VolFS und DriveFS), um Dateizugriffe aus Linux zu ermöglichen.
- VolFs: Stellt das komplette Filesystem (einschließlich Verwaltung der Zugriffsrechte samt chmod und chroot, Case-Sensitivität für Dateinamen sowie Symbolic-Links) für die Linux-Binaries bereit.
- DriveFS: Dieses Modul implementiert die Übersetzung der Linux-Dateisystemzugriffe auf Windows-Laufwerke.
Linux-Binaries können also auf das Windows-Dateisystem zugreifen. Windows-Apps bleiben diese Zugriffe aber verwehrt. Details sind im Microsoft-Beitrag zu entnehmen.
Ähnliche Artikel:
Microsofts "Drawbridge"-Projekt vorgestellt
Anwendungsvirtualisierung, Docker und Drawbridge
Phönix aus der Asche: Bekommt XaX in Win 9 ein Revival?
Windows XP-Exit-Strategie – Windows XP anpassen – Teil 3
Windows 10: Kommt die Bash-Shell in Redstone?
Bekommt Windows 10 einen Paketmanager wie Linux?
Windows 10: Sicherheitsrisiken durch Linux-Kernel
Anzeige
Das war doch schon seit der ersten Veröffentlichung von Microsoft bekannt. Schon da wurde erwähnt, dass die Linux Befehle nur in Windows API Aufrufe übersetzt werden.
Hier ein Artikel vom März, wo das schon beschrieben wurde:
http://www.heise.de/open/meldung/Microsoft-Build-2016-Windows-10-lernt-Linux-3158427.html
Die neue Erkenntnis (zumindest für mich) sind die Implementierung als Pico-Prozesse (Drawbridge) sowie die Details …
So neu finde ich das nun auch nicht, "dass die Linux Befehle nur in Windows API Aufrufe übersetzt werden".
Nur ist es mir ziemlich Wurscht, ich sehe für mich keine logischen und konstruktiven Anwendungsmöglichkeiten um unter Windows mit Bash zu arbeiten, wenn ich mit Bash Arbeit will setze ich mich einfach an meinen OpenSUSE PC und Arbeite dort, wozu in aller Welt sollte ich also dazu Windows benutzen.
Und ich glaube auch nicht das es Linux User geben wird, die sich deshalb Windows Kaufen werden, wer einmal die Linie überschritten hat sich von Windows zu trennen wird sicherlich deshalb nicht zu Windows zurückkehren, es sei denn Microsoft bietet ein kostenloses upgrade für Linux User an ;) aber das wird ganz sicher nicht geschehen.