Windows-Kompatibilität

Linux-Kernel in Windows 10

Linux-Kernel in Windows 10
Wie funktioniert das neue Windows-Subsystem für Linux (v2)??

Microsoft hat kürzlich angekündigt, dass sie in Kürze einen Linux-Kernel liefern werden, der direkt in Windows 10 integriert ist. Dadurch können Entwickler die Windows 10-Plattform bei der Entwicklung von Anwendungen für Linux nutzen. Tatsächlich ist dies der nächste Schritt in der Entwicklung des Windows-Subsystems für Linux (WSL). Sehen wir uns die WSL-Version 1 an, bevor wir uns mit den Feinheiten der Linux-Kernel-Intergation befassen und was sie bedeutet.

Wenn Sie mit WSL (v1) beginnen möchten, finden Sie hier eine Anleitung dafür.

1.  WSL-Version1

Das Windows-Subsystem für Linux sollte eigentlich als Linux-Subsystem für Windows bezeichnet werden. Es bietet einen Treiber (ein Subsystem) für das Windows-Betriebssystem, der Linux-Systemaufrufe in native Windows 10-Systemaufrufe übersetzt, die der NT-Kernel versteht.

Dies erzeugt eine etwas glaubwürdige Illusion für Linux-Binärdateien, dass sie tatsächlich auf einem Linux-Kernel laufen! Dies funktioniert gut genug, dass Sie nicht nur einfache 64-Bit-Binärdateien ausführen können, die für Linux kompiliert wurden, sondern Sie können ein ganzes Userland (a.k.a eine Linux-Distribution wie Debian oder Ubuntu) auf WSL v1. Wenn Sie Ubuntu aus dem Microsoft Store installieren, ruft es also nur die Ubuntu-Userland-Binärdateien ab, die Canonical für die WSL-v1-Umgebung von Microsoft liefert.

WSL v1 ist jedoch noch lange nicht perfekt. Bestimmte Semantiken, die ein Linux-System erwarten würde, sind unter Windows völlig inakzeptabel. Beispielsweise können Sie den Dateinamen einer geöffneten Datei unter Windows nicht ändern, aber Sie können dies unter Linux tun.

Andere offensichtliche Beispiele sind die schlechte Dateisystemleistung von WSL v1 und die Unfähigkeit, Docker auszuführen.

2.  WSL v2 der Linux-Kernel

Diese neue Version von WSL löst all diese Probleme, indem sie den Linux-Kernel in den Hyper-V-Hypervisor einbezieht. Während ihrer Ankündigung und Demos betonten Craig Loewen und sein Kollege von Microsoft, dass Microsoft in Zukunft massiv in Virtualisierungstechnologie investieren wird.

Die Verwendung eines Linux-Kernels löst alle semantischen Probleme, die nicht nur mit einer Systemaufruf-Übersetzungsschicht gelöst werden können. Dieser Linux-Kernel wird sehr leichtgewichtig sein und von Microsoft mit allen Änderungen am Linux-Kernel als Open Source gepflegt. In ihrer Demo haben sie gezeigt, wie Sie einfach die vorhandenen WSL v1-Apps migrieren können, um sie unverändert in eine WSL v2-Umgebung zu laufen. Die Leistung des Dateisystems hat sich um das 3-4-fache verbessert und das gesamte System fühlt sich viel reaktionsschneller an.

3.  Wie funktioniert es?

Im Grunde haben wir also eine Linux-VM mit vielen Userland-Apps, z.g, OpenSUSE- oder Debian- oder Ubuntu-Benutzerland. Sie erhalten mehr als eine Distribution auf Ihrem Windows-Rechner mit einer einzigen Linux-VM, das ist also ordentlich. Aber es bedeutet auch, dass Sie jedes Mal, wenn Sie Ihr WSL-Ubuntu-Terminal öffnen, eine komplette VM booten! Das wird eine Weile dauern, oder?

Nicht wirklich. Der Linux-Kernel ist tatsächlich klein genug und leicht genug, dass Microsoft damit wahnsinnige Bootzeiten erzielen konnte (~ 1 Sekunde). Dies erreichten sie, indem sie den gesamten Bootloader-Code entfernten und da es sich um eine VM handelt, laden sie den Linux-Kernel direkt in seinen Adressraum im Speicher und richten einige Zustände der VM ein, die der Kernel erwartet expect. Dies ist der gleiche Mechanismus, der ein weiteres neues Windows 10-Feature antreibt, nämlich Windows Sandbox.

Es hat einen sehr geringen Speicherbedarf, es wird in einer Sekunde geladen und das native ext4-Dateisystemformat ermöglicht eine sehr reibungslose Benutzererfahrung. Die VM läuft nur, wenn Sie sie brauchen.

Darüber hinaus ist es nicht wie eine herkömmliche VM vollständig isoliert. Mit WSL v2 können Sie ganz einfach mit dem Rest des Windows-Systems interagieren, einschließlich der Dateien auf Ihren Windows-Laufwerken. Es ist keine isolierte VM, sondern ein integrierter Bestandteil von Windows 10. Wie wird das erreicht?

4.  Es lebe der Plan 9

Mit WSL v1 war der Zugriff auf Dateien und Verzeichnisse auf Ihren Windows-Gästen trivial. Ihr Linux-Benutzerland ist nur eine App unter Windows, sodass es ziemlich einfach Dateien lesen und schreiben kann, die ursprünglich zum nativen Betriebssystem gehören.

Mit WSL v2 läuft eine VM mit ihrer virtuellen Festplatte (natürlich mit ext4 formatiert) und wenn wir eine ähnliche Erfahrung wie die von WSL v1 wünschen, brauchen wir einige zusätzliche Mechanismen. Betreten Sie Plan 9.

Plan 9, auch geschrieben als, 9P ist ein Betriebssystem, das ursprünglich bei Bell Labs entwickelt wurde. Obwohl es unwahrscheinlich ist, dass Sie es jemals in der Produktion finden werden, lebt es dennoch weiter, da verschiedene andere Betriebssysteme interessante Ideen übernehmen, die darin inkubiert sind, einschließlich des 9P-Protokolls für einen Dateiserver.

5.  Dateisysteme

WSL v2 verfügt über einen 9P-Protokollserver, der auf Ihrem Windows 10-Host ausgeführt wird, und einen 9P-Client, der in Ihren WSL-Apps ausgeführt wird. Dies ermöglicht Ihnen den nativen Zugriff auf Windows 10-Dateien in Ihrer WSL-Umgebung files. Das Laufwerk C: wird unter /mnt/c gemountet, genau wie WSL v1, und jede Datei innerhalb des Windows 10-Hosts kann von der WSL-Umgebung erreicht werden.

Das Umgekehrte wird auch wahr sein. In Ihrer Linux-Umgebung wird ein 9P-Protokollserver mit dem entsprechenden Client auf dem Windows 10-Host ausgeführt. Dadurch können Benutzer von der Windows 10-Umgebung aus auf ihr Linux-Dateisystem (ext4) zugreifen. Ermöglicht Ihnen, Ihren Quellcode oder Ihre Konfigurationsdateien mit Ihrer unter Windows installierten bevorzugten IDE zu bearbeiten, alle Verzeichnisse mit dem Windows 10-Datei-Explorer aufzulisten und vieles mehr. Im Wesentlichen werden Sie Ihre bevorzugten Linux-Distributionen mit der Windows 10-Benutzeroberfläche ausführen.

6.  Docker

In ihrer Ankündigung deutete Microsoft auch an, dass diese neue Umgebung auch von Docker verwendet wird, um ihre zukünftigen Docker für Windows-Apps auszuliefern. Da es einen Linux-Kernel gibt, auf dem Docker läuft, wird es ziemlich einfach sein. In der Demo haben sie Docker auf Ubuntu mit WSL v2 ausgeführt und es funktionierte, als würde es auf einer nativen Ubuntu-Installation ausgeführt running.

Um ein sehr oberflächliches Beispiel zu geben: Wenn Sie mit Dockerfiles auf einem Windows-System gearbeitet haben, müssen Sie die Sicherheitsprobleme bemerkt haben, die durch das Fehlen von Unix-ähnlichen Dateiberechtigungen verursacht werden. Das wird kein Thema mehr sein. Docker unter Windows verwendet bereits eine benutzerdefinierte VM, um Linux-Container bereitzustellen, vermutlich wird es jetzt WSL v2 verwenden, um den von Microsoft gelieferten Linux-Kernel zu verwenden use.

Fazit

Insgesamt bin ich sehr beeindruckt von dem, was Microsoft tut, um Linux-Entwicklern, die auch Windows verwenden möchten, einen Zufluchtsort zu bieten. Hoffentlich wird es auf lange Sicht eine starke gegenseitige Bestäubung zwischen den beiden verschiedenen Ökosystemen fördern.

Wenn Sie Windows 10 Home, Pro oder Enterprise verwenden, können Sie WSL v2 kennenlernen, indem Sie sich für die Preview-Builds von Windows 10 entscheiden. Hier ist eine Anleitung, wie das geht.

Cursor springt oder bewegt sich zufällig während der Eingabe in Windows 10
Wenn Sie feststellen, dass Ihr Mauszeiger während der Eingabe auf einem Windows-Laptop oder -Computer automatisch und zufällig springt oder sich von s...
So kehren Sie die Scrollrichtung von Maus und Touchpads in Windows 10 um
Maus und Touchpads machen das Rechnen nicht nur einfach, sondern auch effizienter und weniger zeitaufwendig. Wir können uns ein Leben ohne diese Gerät...
So ändern Sie Mauszeiger- und Cursorgröße, Farbe und Schema unter Windows 10
Der Mauszeiger und der Cursor in Windows 10 sind sehr wichtige Aspekte des Betriebssystems. Dies kann auch für andere Betriebssysteme gesagt werden, a...