Microsoft gab kürzlich bekannt, dass sie bald einen Linux -Kernel versenden werden, der direkt in Windows 10 integriert ist. Auf diese Weise 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). Lassen Sie uns die WSL-Version 1 überprüfen, bevor wir uns mit dem Strickeingang der Linux-Kernel-Intergation und dem, was es bedeutet.
Wenn Sie mit WSL (V1) beginnen möchten, finden Sie hier eine Anleitung dafür.
WSL Version1
Das Windows -Subsystem für Linux sollte wirklich als Linux -Subsystem für Windows bezeichnet werden. Es bietet einen Treiber (ein Subsystem) für das Windows -Betriebssystem, das Linux -Systemaufrufe in native Windows 10 -Systemaufrufe übersetzt, die der NT -Kernel versteht.
Dies schafft eine etwas glaubwürdige Illusion für Linux -Binärdateien, die sie tatsächlich auf einem Linux -Kernel laufen! Dies funktioniert gut genug, um nicht nur einfache 64-Bit-Binärdateien auszuführen, die für Linux zusammengestellt wurden, sondern auch ein ganz.k.Eine Linux -Verteilung wie Debian oder Ubuntu) über WSL V1. Wenn Sie also Ubuntu im Microsoft Store installieren.
WSL V1 ist jedoch immer noch weit davon entfernt, perfekt zu sein. Bestimmte Semantik, die ein Linux -System erwarten würde, sind unter Windows völlig inakzeptabel. Sie können beispielsweise den Dateinamen einer geöffneten Datei unter Windows nicht ändern, dies können dies jedoch unter Linux tun.
Weitere offensichtliche Beispiele sind die schlechte Dateisystemleistung von WSL V1 und die Unfähigkeit, Docker auszuführen.
WSL V2 Der Linux -Kernel
Diese neue Version von WSL löst all diese Probleme, indem der Linux-Kernel im Hyper-V-Hypervisor ausgeführt wird. Während ihrer Ankündigung und der Demos betonten Craig Loewen und sein Kollege von Microsoft den Punkt, dass Microsoft in Zukunft enorm in die 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 leicht sein und von Microsoft mit allen Änderungen des Linux-Kernels Open Source geführt werden. In ihrer Demo zeigten sie, wie Sie die vorhandenen WSL V1 -Apps einfach migrieren können, um nicht in eine WSL V2 -Umgebung auszuführen. Die Leistung des Dateisystems hat sich 3-4 Mal verbessert und das gesamte System fühlt sich viel reaktionsfähiger an.
Wie funktioniert es?
Grundsätzlich haben wir eine Linux -VM mit vielen Userland -Apps, e.G, OpenSuse oder Debian oder Ubuntu Userland. Sie erhalten mehr als eine Distribution auf Ihrem Windows -Computer mit einem einzigen Linux -VM, also ist das ordentlich. Aber es bedeutet auch, dass Sie jedes Mal, wenn Sie Ihr WSL Ubuntu Terminal öffnen, eine vollständige VM booten! Das wird eine Weile dauern, richtig?
Nicht wirklich. Linux -Kernel ist tatsächlich klein genug und leicht genug, dass Microsoft wahnsinnige Startzeiten damit bekommen konnte (~ 1sekunden). Sie haben dies erreicht, indem sie den gesamten Bootloadercode entfernt haben. Da es sich um eine VM handelt. Dies ist der gleiche Mechanismus, der eine weitere neue Windows 10 -Funktion mit Windows Sandbox mitwirkt.
Es verfügt über einen sehr kleinen Speicherausdruck, es wird in einer Sekunde geladen und das native ext4 -Dateisystemformat ermöglicht es ihm, ein sehr reibungsloses Benutzererlebnis zu liefern. Der VM läuft nur, wenn Sie es brauchen.
Darüber hinaus ist es nicht vollständig isoliert wie eine traditionelle VM. Sie können sehr einfach mit dem Rest des Windows -Systems interagieren, einschließlich Dateien in Ihren Windows -Laufwerken mit WSL V2. Es ist keine isolierte VM, sondern ein integrierter Teil von Windows 10. Wie erreicht es das??
Es lebe den Plan 9
Mit WSL V1 war der Zugriff auf Dateien und Verzeichnisse in Ihren Windows -Gästen trivial. Ihr Linux Userland ist nur eine App unter Windows, sodass sie Dateien, die ursprünglich zum nativen Betriebssystem gehören, ziemlich einfach lesen und schreiben können.
Mit WSL V2 haben Sie eine VM mit seinem virtuellen Harddisk (natürlich mit ext4 formatiert) und wenn wir eine ähnliche Erfahrung wie die von WSL V1 wollen, brauchen wir einige zusätzliche Mechanismen. Geben Sie Plan 9 ein.
Plan 9, ebenfalls als 9P geschrieben, ist ein Betriebssystem, das ursprünglich bei Bell Labs entwickelt wurde. Es ist zwar unwahrscheinlich, dass Sie jemals in der Produktion läuft, aber es lebt immer noch weiter, da verschiedene andere Betriebssysteme interessante Ideen anwenden, die darin inkubiert sind, einschließlich des 9p -Protokolls für einen Dateiserver.
Dateisysteme
WSL V2 verfügt über einen 9p -Protokollserver, der auf Ihrem Windows 10 -Host ausgeführt wird, und ein 9p -Client, der in Ihren WSL -Apps ausgeführt wird. Auf diese Weise können Sie in Ihrer WSL -Umgebung nativ auf Windows 10 -Dateien zugreifen. Das Laufwerk C: Das Laufwerk wird wie bei WSL V1 an /mnt /c montiert, und jede Datei im Windows 10 -Host kann von der WSL -Umgebung erreicht werden.
Das Gegenteil wird auch wahr sein. Es wird einen 9p -Protokollserver in Ihrer Linux -Umgebung mit seinem entsprechenden Client unter Windows 10 Host geben. Auf diese Weise können Benutzer aus der Windows 10 -Umgebung auf das Dateisystem (Linux) zugreifen. So können Sie Ihren Quellcode oder Ihre Konfigurationsdateien mithilfe Ihrer favorisierten IDE bearbeiten, die unter Windows installiert ist, alle Verzeichnisse mithilfe von Windows 10 -Datei -Explorer auflisten, und vielem mehr. Im Wesentlichen werden Sie mit der Windows 10 -Benutzeroberfläche Ihre Lieblings -Linux -Distributionen ausführen.
Docker
In ihrer Ankündigung deutete Microsoft auch an, dass diese neue Umgebung auch von Docker verwendet wird, um ihren zukünftigen Docker für Windows -Apps zu versenden. Da es einen Linux -Kernel gibt, der Docker darüber läuft, wird es ganz einfach sein. In der Demo haben sie Docker auf Ubuntu ausgeführt, das WSL V2 ausführte, und es funktionierte, als würde es auf einer nativen Ubuntu -Installation ausgeführt.
Um ein sehr oberflächliches Beispiel zu geben, müssen Sie die Sicherheitsprobleme bemerkt haben, die aufgrund des Mangels an Unix -ähnlichen Dateiberechtigungen verursacht werden, wenn Sie mit Dockerfiles in einem Windows -System gearbeitet haben. Das wird kein Problem mehr sein. Docker on Windows verwendet bereits eine benutzerdefinierte VM, um Linux -Container bereitzustellen, vermutlich verwendet es jetzt WSL V2, um den Linux -Kernel zu verwenden, den Microsoft verschickt.
Insgesamt bin ich sehr beeindruckt von dem, was Microsoft tut, um Linux -Entwicklern, die auch Windows verwenden möchten. Hoffentlich fördert es auf lange Sicht viel Kreuzbestäubung zwischen den beiden verschiedenen Ökosystemen.
Wenn Sie Windows 10 Home, Pro oder Enterprise Edition ausführen. Hier ist ein Leitfaden, wie das geht.