WSL 2: Wie Microsoft den Linux-Kernel auf Windows bringt
Das Windows Subsystem für Linux nutzt in Version 2 einen echten Linux-Kernel. Microsoft erklärt Details zum Hypervisor und Tricks zur Speicher- und Dateiverwaltung, die für Windows-Container entstanden sind.
Kommende Versionen von Windows 10 werden einen Linux-Kernel ausliefern, der für die Verwendung in der neuen Version 2 des Windows Subsystems für Linux (WSL) eingesetzt werden soll. Auf der Hausmesse Build haben zwei der an den Arbeiten beteiligten Entwickler in einem Vortrag erläutert, wie das System funktioniert. Interessant daran ist vor allem, dass erst die in den vergangenen Jahren umgesetzten Entwicklungen für Windows-Container den Einsatz des Linux-Kernels überhaupt möglich gemacht haben.
- WSL 2: Wie Microsoft den Linux-Kernel auf Windows bringt
- Spezielle Dienste und 9P zum Dateiaustausch
Grundlage dafür sind die Arbeiten an Microsofts Virtualisierungsprodukt Hyper-V, das für WSL 2 als Typ1-Hypervisor eingesetzt wird. Darauf läuft der NT-Kernel des Windows-Systems als eigentliche Host-Umgebung für das WSL. Auf diesem Host wiederum wird dann eine sogenannte Lightweight VM gestartet, die in Teilen vergleichbar ist mit dem Container-Konzept unter Linux. Allerdings nutzen hier anders als bei üblichen Linux-Containern Gast und Host nicht denselben Kernel, sondern jeweils eigene, die durch Hyper-V zusätzlich voneinander isoliert werden. Eine spezielle VM für Container zu bauen, verfolgt für Linux etwa das Kata-Projekt.
Gemeinsamer Speicher für Gast und Host
Das Konzept dieser Mini-VMs unter Windows beschreibt ein Vortrag auf der Ignite-Konferenz von Microsoft aus dem vergangenen Herbst. Demnach wird diese Lightweight VM als Prozess auf dem Host-System repräsentiert. Die physischen Speicherbereiche des Gastsystems korrespondieren hierbei mit virtuellen Speicherbereichen auf dem Hostsystem.
Das hat den Vorteil, dass die Speicherverwaltung des Host-Systems wiederverwendet werden kann, wie etwa das Paging oder die Kompression. Bei üblichen VMs ist der Speicherbereich des Gastes komplett vom Host isoliert. Ziel der Arbeiten war es hingegen, möglichst viele Container, die zudem noch schnell starten sollen, auf einem einzigen Host-System betreiben zu können.
Zur Verwaltung des Gast-Containers wird darüber hinaus der sogenannte Host-Compute-Service (HCS) von Windows genutzt. Dieser Dienst liefert analog zu den Linux-Containern unter anderem Control Groups für die Job Objects, also eine zusammengefasste Menge von Prozessen.
Hinzu kommen Object Namespaces zur Isolierung der Windows Objects, eigene Prozesstabellen sowie ein eigenes Netzwerk. Der HCS kann außerdem ein Art Union-Dateisystem aufbauen, um mehrere Schichten zu einem einheitlich wirkenden Dateisystem zusammenzuführen.
Der HCS wird unter anderem für Docker auf Windows verwendet. Dank der Wiederverwendung dieser Windows-Servertechnik für WSL werde außerdem die Linux-Umgebung mit der Fortentwicklung von HCS und Hyper-V kontinuierlich verbessert, versprechen die Entwickler.
Spezielle Dienste und 9P zum Dateiaustausch |
- 1
- 2
Und du meinst nicht, dass das vielleicht eher mit der Art und Weise zu tun hat wie man...
Offenbar ein Windows iOS oder Android Entwickler, der 99% kodiert und nur 1% testet...
9p kommt aus der Plan9 Welt, nicht der Unix Welt. Plan9 ist Unix 2.0 und hat mit dem...