Pinguin im Fenster: über das Potenzial und die Perspektiven von WSL2

Hallo Habr!

Während der Sommerschlussverkauf in vollem Gange ist, möchten wir Sie einladen, eines der ehrgeizigsten Themen zu diskutieren, an denen wir in letzter Zeit gearbeitet haben - das Zusammenspiel von Windows und Linux, insbesondere im Zusammenhang mit der Entwicklung des WSL- Systems. WSL 2 ist auf dem Weg und wir bieten Ihnen einen kurzen Überblick über die Funktionen, die uns in diesem Subsystem erwarten, sowie eine Prognose für die weitere Integration von Windows und Linux.



Im Mai dieses Jahres gab Microsoft bekannt, dass WSL2, die neueste Version des Windows-Subsystems unter Linux, auf einem vollwertigen Linux-Kernel ausgeführt wird, der vom Unternehmen entwickelt wurde.
Zum ersten Mal nimmt Microsoft den Linux-Kernel in Windows als eine seiner Komponenten auf. Microsoft führt auch eine Befehlszeile unter Windows ein, die die Funktionen von PowerShell und WSL erweitert.

Sowohl der von Microsoft erstellte Linux-Kernel für WSL2 als auch die neue Windows-Befehlszeile sind vor allem für Entwickler von Interesse.

"Dies ist der stärkste Schritt im Spiel gegen AWS", sagte Joshua Schwartz, Leiter Digitalisierung bei AT Kearney, einem Beratungsunternehmen.

Die Zukunft von Microsoft hängt nicht mit dem PC-Markt zusammen, obwohl es sich in diesem Segment weiterhin behaupten wird. Es wird viel wichtiger sein, auf dem Cloud-Markt Fuß zu fassen, von dem eine der Komponenten in Zukunft Desktop-PCs werden können.

Was macht WSL2?


WSL2 ist die neueste Windows-Subsysteminfrastruktur für Linux. Sie können die Leistung des Dateisystems drastisch verbessern und sind vollständig mit Systemaufrufen kompatibel.

Eine der Hauptanforderungen der WSL-Community betraf die Verfeinerung der Funktionalität. WSL2 verfügt über viel mehr Linux-Tools als WSL, insbesondere Docker und FUSE.
WSL2 verarbeitet intensive Dateivorgänge, insbesondere Git-Klon, Npm-Installation, Apt-Update und Apt-Upgrade. Die tatsächliche Geschwindigkeitssteigerung hängt von der jeweiligen Anwendung und der Interaktion mit dem Dateisystem ab.

Frühe Tests haben gezeigt, dass WSL2 etwa 20-mal schneller als WSL1 ist, um Teer aus Zip zu entpacken. Bei Verwendung von git clone, npm install und cmake in verschiedenen Projekten zeigte das System eine zwei- bis fünffache Produktivitätssteigerung.

Wird dies dazu beitragen, das Vertrauen der Entwickler zu gewinnen?


Im Wesentlichen möchte Microsoft Anerkennung und Vertrauen in die Entwicklergemeinschaft gewinnen, indem es die Entwicklung einer eigenen Version des Linux-Kernels zur Unterstützung von WSL2-Prozessen übernimmt, sagte Cody Swann, CEO von Gunner Technology.

„Abgesehen von der Entwicklung ausschließlich für Windows war die Erstellung aller anderen Anwendungen - Cloud-, Mobil- und Webanwendungen - auf dem PC äußerst unpraktisch, weshalb der Entwickler die Linux-Distribution irgendwie parallel zum Windows-Betriebssystem herunterladen musste. Microsoft hat dies anerkannt und eine Lösung vorgeschlagen “, schließt er.

Es ist unwahrscheinlich, dass die Einführung des nativen Linux-Kernels die Arbeit mit dem System aus Sicht eines normalen Benutzers ernsthaft beeinträchtigt. In diesem Fall ergeben sich jedoch Möglichkeiten für eine engere Interaktion zwischen Microsoft-Diensten und dem Linux-Betriebssystem.
Ein solcher Schritt von Microsoft ist wirklich sehr kompetent, da er dazu beiträgt, tiefer in die Entwickler-Community einzudringen und Produkte, die von jemand anderem entwickelt werden, aktiv zu nutzen, dh sich mit Open Source zu verbinden, sagte Swann.

Willkommen bei neuem Microsoft


Der Trend zur Erstellung und Unterstützung des Linux-Kernels „speziell für Windows“ spiegelt den entscheidenden Entwicklungstrend zu Open Source wider, der von CEO Satya Nadella gefördert wird. Microsoft ist nicht dasselbe wie unter Gates und Balmer, als alles hinter einem proprietären Lattenzaun aufbewahrt wurde und niemand an Interoperabilität dachte.

„Satya hat Microsoft vollständig in eine viel modernere Plattform verwandelt, und diese Strategie hat sich gut ausgezahlt. Hallo, eine Kapitalisierung von Billionen Dollar “, sagt Schwartz.

Laut Charles King, Chefanalyst bei Pund-IT, sind die beiden Hauptstärken von Microsoft Effizienz und Sicherheit.

„Durch die aktive Nutzung seiner eigenen ernsthaften Errungenschaften - Ressourcen und Tools - kann das Unternehmen seinen Kunden garantieren, dass der Kernel vollständig auf dem neuesten Stand ist und mit den neuesten Patches und Fixes ausgestattet ist, um vollständige Sicherheit zu gewährleisten“, fügt er hinzu.

Entwickler sind auch ein Gewinner


Linux-Binärdateien führen viele Funktionen mithilfe von Systemaufrufen aus, z. B. beim Zugriff auf Dateien, beim Abfragen von Speicher und beim Erstellen von Prozessen. WSL1 basiert auf einer Übersetzungsschicht, die viele dieser Systemaufrufe interpretiert und ihnen die Interaktion mit dem Windows NT-Kernel ermöglicht.

Am schwierigsten ist es, alle Systemaufrufe zu implementieren. Da dies in WSL1 nicht durchgeführt wurde, konnten einige Anwendungen dort nicht funktionieren. WSL2 führt viele neue Anwendungen ein, die normalerweise in dieser Umgebung funktionieren.

Dank der neuen Architektur kann Microsoft die neuesten Optimierungen am Linux-Kernel viel schneller vornehmen als mit WSL1. Microsoft kann den WSL2-Kernel aktualisieren, anstatt alle Einschränkungen erneut zu implementieren.

Vollständiges Open Source Tool


Die Entwicklung eines eigenen Linux-Kernels durch Microsoft war der Höhepunkt langjähriger Arbeit der Linux Systems Group sowie vieler anderer Teams in Microsoft, sagte Jack Hammons, Programmmanager der Linux Systems Group bei Microsoft.

Der für WSL2 bereitgestellte Kernel ist vollständig Open Source, und Microsoft wird Anweisungen zum Erstellen eines solchen Kernels auf GitHub veröffentlichen. Das Unternehmen wird mit Entwicklern interagieren, die das Projekt unterstützen und Veränderungen nach oben anregen möchten.

Microsoft-Entwickler haben WSL2 mithilfe der kontinuierlichen Integrations- und Bereitstellungssysteme des Unternehmens erstellt. Diese Software wird über das Windows-Update-System verwaltet und ist für den Benutzer vollständig transparent. Der Kernel bleibt relevant und enthält alle Funktionen des neuesten stabilen Linux-Zweigs.

Um die Verfügbarkeit der Quellen sicherzustellen, spiegelt das Unternehmen die Repositorys lokal und überwacht ständig den Inhalt der Linux-Mailingliste auf Sicherheitsprobleme. Außerdem arbeitet das Unternehmen mit mehreren Unternehmen zusammen, die die Arbeit mit Datenbanken in einer virtuellen Unternehmensumgebung (CVE) unterstützen. Dadurch wird sichergestellt, dass die neuesten Linux-Updates im Linux-Kernel von Microsoft berücksichtigt werden und alle neu auftretenden Bedrohungen beseitigt werden.

Upstream-Änderungen sind verbindlich


Microsoft garantiert, dass alle Kerneländerungen in Upstream-Richtung verteilt werden - dies ist ein wichtiger Aspekt der Linux-Philosophie. Die Unterstützung von Downstream-Patches ist mit zusätzlicher Komplexität verbunden. Darüber hinaus wird diese Praxis in der freien Entwicklungsgemeinschaft nicht allgemein akzeptiert.

Das Ziel von Microsoft, das Linux aktiv nutzt, ist es, ein diszipliniertes Mitglied dieser Community zu werden und die Änderungen der Community zur Verfügung zu stellen. Um die Stabilität von Zweigen zu erreichen, die mit langfristiger Unterstützung verbunden sind, können einige Patches - beispielsweise mit neuen Funktionen - nur in neuen Versionen des Kernels enthalten sein und im Abwärtskompatibilitätsmodus nicht auf die aktuelle Version von LTS portiert werden.

Wenn die WSL-Kernelquellen verfügbar sind, bestehen sie aus Links zu einer Reihe von Patches und zu einem langjährigen stabilen Teil der Quellen. Microsoft geht davon aus, dass diese Liste im Laufe der Zeit kleiner wird, wenn sich Patches in Upstream-Richtung ausbreiten, und neue lokale Patches hinzugefügt werden, um die neuesten WSL-Funktionen zu unterstützen.

Angenehmeres Fensterdesign


Microsoft kündigte außerdem die Veröffentlichung der kommenden "Winter" -Version von Windows Terminal an, einer neuen Anwendung für Benutzer, die mit Befehlszeilentools und Shells arbeiten, insbesondere mit Eingabeaufforderung, PowerShell und WSL.



Windows-Terminal

Windows Terminal 1.0 bietet viele Einstellungen und Konfigurationsoptionen, mit denen Sie das Design des Terminalfensters sowie die Shells / Profile, die als neue Registerkarten geöffnet werden sollen, besser steuern können.

Die Einstellungen werden in einer strukturierten Textdatei gespeichert, sodass Sie das Terminalfenster ganz einfach nach Ihrem Geschmack konfigurieren und gestalten können.

Microsoft beendet die Aktualisierung der vorhandenen Windows-Konsole und erstellt eine neue von Grund auf neu, um einen neuen Ansatz zu wählen. Windows Terminal wird parallel zur vorhandenen Windows Console-Anwendung installiert und ausgeführt, die sofort verfügbar ist.

Wie funktioniert es?


Wenn ein Windows 10-Benutzer Cmd / PowerShell / etc direkt startet, wird der an die reguläre Konsoleninstanz angehängte Prozess ausgelöst. Mit dem Konfigurationsmechanismus des neuen Terminals können Windows-Benutzer viele Profile für alle gewünschten Shells / Anwendungen / Tools erstellen, sei es in PowerShell, Befehlszeile, Ubuntu oder sogar mit SSH-Verbindungen zu Azure- oder Internet of Things-Geräten.

Diese Profile können eine eigene Kombination aus Schriftdesign und Schriftgröße, Farbthemen, Unschärfe oder Transparenz des Hintergrunds enthalten. Darüber hinaus können Benutzer eine neue Monospace-Schriftart auswählen, damit das Terminalfenster moderner und cooler aussieht. Diese Schriftart bietet Programmierligaturen, wird öffentlich zugänglich gemacht und in einem eigenen Repository gespeichert.

Die Hauptvorteile der neuen Windows-Befehlsoberfläche sind viele Registerkarten und schöner Text. Die Unterstützung vieler Registerkarten wurde als die beliebteste Anforderung für die Entwicklung des Terminals angesehen. Dank der Rendering-Engine auf Basis von DirectWrite / DirectX mit GPU-Beschleunigung erhalten Sie schönen Text.

Die Engine zeigt Textsymbole, Glyphen und Sonderzeichen in Schriftarten an, darunter chinesische, japanische und koreanische Ideogramme (CJK), Emojis, Powerline-Zeichen, Symbole und Programmiererligaturen. Darüber hinaus zeigt diese Engine Text viel schneller an als die zuvor in der Konsole verwendete GDI.

Die Abwärtskompatibilität bleibt in Ordnung, obwohl Sie Windows Terminal ausprobieren können, wenn Sie dies wünschen.

Zeitleiste: wie es sein wird


Microsoft wird Windows Terminal über den Microsoft Store in Windows 10 bereitstellen und regelmäßig aktualisieren. So arbeiten Benutzer immer mit den neuesten Versionen und den neuesten Verbesserungen - praktisch ohne zusätzlichen Aufwand.

Microsoft plant, diesen Winter ein neues Terminal zu starten. Nach der Einführung von Windows Terminal 1.0 durch Microsoft werden sich Entwickler weiterhin mit vielen Funktionen befassen, die bereits im Backlog enthalten sind.

Der Quellcode für Windows Terminal und die Windows-Konsole ist bereits auf GitHub hochgeladen .

Was können wir in Zukunft erwarten?


Die Möglichkeit, dass Microsoft seinen eigenen Linux-Kernel für andere Zwecke verwendet, beispielsweise um eine eigene Linux-Distribution zu entwickeln, scheint heute etwas hypothetisch.

Wahrscheinlich hängt das Ergebnis davon ab, ob Microsoft eine spürbare Nachfrage nach einem solchen Produkt feststellen kann und welche kommerziellen Möglichkeiten eine solche Entwicklung möglicherweise eröffnet, sagt Charles King.

Er glaubt, dass das Unternehmen in absehbarer Zukunft seine Hauptarbeit darauf konzentrieren wird, die immer engere Kompatibilität von Windows und Linux und deren gegenseitige Ergänzung sicherzustellen.

Joshua Schwartz glaubt, dass in diesem Fall abgewogen werden muss, welche Investitionen in diese Arbeit getätigt werden und wie hoch die Rendite ist. Wenn Microsoft heute ein sehr junges Unternehmen wäre, würde es wahrscheinlich alles auf Linux-Basis machen. Die Portierung aller Best Practices, die Microsoft bereits hat, auf die native Linux-Architektur von heute scheint jedoch ein kostspieliges und komplexes Projekt zu sein, das sich kaum auszahlt. Linux-Liebhaber werden Linux für sich selbst bekommen und die grundlegende Architektur wird unberührt bleiben.

Als Apple im Jahr 2000 erneut Mac OS erfand, basierte das Betriebssystem auf BSD Unix, das Linux ähnlicher ist als DOS. Heute wird die neue Version von Microsoft Windows speziell auf Basis von Linux erstellt.

Vielleicht öffnet sich vor uns eine neue Tür?


Der Linux-Kernel von Microsoft kann den Weg für eine engere Zusammenarbeit zwischen Windows-Diensten und dem Linux-Betriebssystem ebnen. Tatsächlich zeugen diese Microsoft-Entwicklungen davon, dass Microsoft selbst bereits versteht, dass es heute fast keine Kunden gibt, die es vorziehen, in einer Welt zu existieren, in der Windows überall ist.

Es ist viel klüger, heterogene Technologien und Systeme zu verwenden, die den Geschäftsanforderungen und spezifischen praktischen Situationen am besten entsprechen.

Die wichtigere strategische Frage ist, welche neuen strategischen Möglichkeiten sich daraus für die Microsoft-Plattform selbst ergeben.

Azure, das Cloud-basierte Ökosystem von Microsoft, bietet bereits enorme Unterstützung für Linux. Bisher unterstützte Windows Linux gut mit virtuellen Maschinen.

Die grundlegenden Änderungen, die heute auftreten, hängen mit der Tatsache zusammen, dass Linux-Prozesse jetzt nativ auf dem Windows-Kernel ausgeführt werden, was bedeutet, dass die Arbeit mit Linux unter Windows viel schneller geht als auf virtuellen Maschinen. Es ist wahrscheinlich, dass Azure infolgedessen von einer ganzen Reihe von Ingenieuren angereichert wird, die Linux im industriellen Maßstab verwenden.

Source: https://habr.com/ru/post/de459844/


All Articles