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

Hey Habr!

Während wir noch in vollem Gange sind Sommerschlussverkauf, möchten wir Sie einladen, eines der größten Themen zu diskutieren, an dem wir in letzter Zeit gearbeitet haben – das Zusammenspiel von Windows und Linux, insbesondere im Zusammenhang mit der Entwicklung des Systems WSL. WSL 2 ist auf dem Weg, und hier ist ein kurzer Überblick darüber, was in diesem Subsystem kommen wird, sowie eine Prognose für die zukünftige Integration zwischen Windows und Linux.

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

Im Mai dieses Jahres kündigte Microsoft an, dass WSL2, die neueste Version des Windows-Subsystems unter Linux, auf einem vollständig selbst erstellten Linux-Kernel laufen würde.
Dies ist das erste Mal, dass Microsoft den Linux-Kernel als Komponente in Windows integriert. Microsoft führt außerdem eine Befehlszeile in Windows ein, die die Funktionen von PowerShell und WSL erweitern wird.

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

„Das ist der stärkste Schachzug im Spiel gegen AWS“, sagt Joshua Schwartz, Direktor für Digitalisierungsprogramme beim Beratungsunternehmen AT Kearney.

Die Zukunft von Microsoft ist nicht mit dem PC-Markt verbunden, obwohl das Unternehmen seine Position in diesem Segment weiterhin fest behaupten wird. Viel wichtiger wird es sein, im Cloud-Markt Fuß zu fassen, zu dessen Bestandteil künftig auch Desktop-PCs gehören könnten.

Was macht WSL2?

WSL2 ist das neueste Windows-Subsystem-Framework für Linux. Es ermöglicht Ihnen, die Leistung des Dateisystems radikal zu verbessern und bietet volle Kompatibilität mit Systemaufrufen.

Eine der Hauptanfragen der WSL-Community betraf die Verbesserung der Funktionalität. WSL2 führt viel mehr Linux-Tools als WSL aus, insbesondere Docker und FUSE.
WSL2 verarbeitet dateiintensive Vorgänge, insbesondere Git Clone, NPM Install, APT Update und APT Upgrade. Die tatsächliche Geschwindigkeitssteigerung hängt von der jeweiligen Anwendung und deren Interaktion mit dem Dateisystem ab.

Die ersten Tests zeigten, dass WSL2 beim Entpacken von tar aus zip etwa 20-mal schneller als WSL1 ist. Bei der Verwendung von Git Clone, NPM Install und CMake in verschiedenen Projekten zeigte das System eine zwei- bis fünffache Leistungssteigerung.

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

„Im Wesentlichen versucht Microsoft, Anerkennung und Vertrauen in der Entwicklergemeinschaft zu gewinnen, indem es eine eigene Version des Linux-Kernels entwickelt, um WSL2-Prozesse zu unterstützen“, sagte Cody Swann, CEO von Gunner Technology.

„Abgesehen von der reinen Windows-Entwicklung war die Erstellung aller anderen Anwendungen – Cloud-, Mobil- und Webanwendungen – auf einem PC äußerst umständlich, weshalb der Entwickler irgendwie eine Linux-Distribution parallel zum Windows-Betriebssystem booten musste. Microsoft hat dies erkannt und eine Lösung gefunden“, schließt er.

Aus Sicht des Durchschnittsbenutzers ist es unwahrscheinlich, dass die Einführung eines benutzerdefinierten Linux-Kernels schwerwiegende Auswirkungen auf das System haben wird. Dies eröffnet jedoch Möglichkeiten für eine engere Interaktion zwischen Microsoft-Diensten und dem Linux-Betriebssystem.
Dieser Schritt von Microsoft ist in der Tat sehr klug, da er dazu beiträgt, tiefer in die Entwicklergemeinschaft einzudringen und die Produkte, die jemand anderes entwickelt, aktiv zu nutzen – das heißt, eine Verbindung zu Open Source herzustellen, sagt Swann.

Willkommen bei New Microsoft

Der Trend zur Erstellung und Wartung eines Linux-Kernels „speziell für Windows“ spiegelt die starke Open-Source-Richtung wider, die CEO Satya Nadella vorantreibt. Microsoft ist nicht mehr dasselbe wie unter Gates und Ballmer, als alles hinter einem proprietären Zaun gehalten wurde und niemand an Interoperabilität dachte.

„Satya hat Microsoft vollständig in eine viel modernere Plattform verwandelt, und diese Strategie hat sich hervorragend ausgezahlt. Hallo, Billionen-Dollar-Kapitalisierung“, 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 seriösen Entwicklungen – Ressourcen und Tools – kann das Unternehmen seinen Kunden garantieren, dass der Kernel vollständig auf dem neuesten Stand und mit den neuesten Patches und Fixes ausgestattet ist, um vollständige Sicherheit zu gewährleisten“, fügt er hinzu.

Auch Entwickler profitieren

Linux-Binärdateien führen mithilfe von Systemaufrufen viele Funktionen aus, z. B. den Zugriff auf Dateien, das Anfordern von Speicher und das Erstellen von Prozessen. WSL1 basiert auf einer Übersetzungsschicht, um viele dieser Systemaufrufe zu interpretieren und ihnen die Interaktion mit dem Windows NT-Kernel zu ermöglichen.

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 in dieser Umgebung gut funktionieren.

Die neue Architektur ermöglicht es Microsoft, die neuesten Optimierungen viel schneller als mit WSL1 auf den Linux-Kernel zu übertragen. Microsoft kann den WSL2-Kern aktualisieren, anstatt alle Einschränkungen erneut zu implementieren.

Vollständig Open-Source-Tool

„Die Entwicklung eines eigenen Linux-Kernels durch Microsoft war der Höhepunkt jahrelanger Arbeit der Linux Systems Group sowie vieler anderer Teams bei Microsoft“, sagte Jack Hammons, Programmmanager bei der Linux Systems Group von Microsoft.

Der für WSL2 bereitgestellte Kernel wird vollständig Open Source sein und Microsoft wird Anweisungen zum Erstellen eines solchen Kernels auf GitHub veröffentlichen. Das Unternehmen wird mit Entwicklern zusammenarbeiten, die bereit sind, das Projekt zu unterstützen und Veränderungen von unten nach oben voranzutreiben.

Microsoft-Entwickler haben WSL2 mithilfe der Continuous-Integration- und Continuous-Delivery-Systeme des Unternehmens erstellt. Diese Software wird über das Windows-Update-System bereitgestellt und ist für den Benutzer völlig transparent. Der Kernel bleibt auf dem neuesten Stand und enthält alle Funktionen des neuesten stabilen Linux-Zweigs.

Um die Verfügbarkeit der Quellen sicherzustellen, spiegelt das Unternehmen Repositorys lokal, überwacht ständig den Inhalt der Linux-Sicherheitsmailingliste und arbeitet mit mehreren Unternehmen zusammen, die Datenbanken in virtuellen Umgebungen (CVEs) für Unternehmen unterstützen. Dadurch wird sichergestellt, dass der Linux-Kernel von Microsoft mit den neuesten Updates auf dem neuesten Stand ist und alle neu auftretenden Bedrohungen beseitigt werden.

Bottom-up-Änderungen werden obligatorisch

Microsoft stellt sicher, dass alle Kerneländerungen im Upstream weitergegeben werden, ein wichtiger Aspekt der Linux-Philosophie. Die Unterstützung von Downstream-Patches bringt zusätzliche Komplexität mit sich; Darüber hinaus ist diese Praxis in der Open-Source-Community nicht üblich.

Das Ziel von Microsoft als aktiver Linux-Benutzer ist es, ein diszipliniertes Mitglied der Community zu sein und Änderungen in die Community einzubringen. Um die Stabilität von Zweigen im Zusammenhang mit einer langfristigen Unterstützung sicherzustellen, dürfen einige Patches – beispielsweise solche mit neuen Funktionen – nur in neue Versionen des Kernels eingebunden und nicht im Abwärtskompatibilitätsmodus auf die aktuelle LTS-Version portiert werden.

Wenn die WSL-Kernquellen verfügbar sind, bestehen sie aus Links zu einer Reihe von Patches und einem langlebigen stabilen Teil der Quellen. Microsoft geht davon aus, dass diese Liste im Laufe der Zeit kleiner wird, da Patches im Upstream verteilt werden und neue lokale Patches hinzugefügt werden, um neue WSL-Funktionen zu unterstützen.

Angenehmere Fenstergestaltung

Microsoft hat außerdem die kommende Winterversion von Windows Terminal angekündigt, einer neuen App für Benutzer, die mit Befehlszeilentools und Shells wie der Eingabeaufforderung, PowerShell und WSL arbeiten.

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

Windows-Terminal

Windows Terminal 1.0 bietet viele Einstellungen und Konfigurationsoptionen, die Ihnen mehr Kontrolle über das Erscheinungsbild des Terminalfensters sowie über die Shells/Profile geben, die als neue Registerkarten geöffnet werden sollen.

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

Microsoft verfeinert die bestehende Windows-Konsole nicht mehr, sondern erstellt eine völlig neue Konsole und entscheidet sich für einen neuen Ansatz. Windows Terminal wird parallel zur vorhandenen Windows-Konsolenanwendung installiert und ausgeführt, die im Lieferumfang enthalten ist.

Wie funktioniert das

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

Diese Profile können eigene Kombinationen aus Design und Schriftgröße, Farbthemen, Hintergrundunschärfegraden oder Transparenz bereitstellen. Darüber hinaus können Benutzer eine neue Monospace-Schriftart auswählen, um das Terminalfenster moderner und cooler aussehen zu lassen. Diese Schriftart enthält Programmierligaturen; sie wird öffentlich zugänglich gemacht und in einem eigenen Repository gespeichert.

Die Hauptvorteile der neuen Windows-Befehlsoberfläche sind viele Registerkarten und schöne Texte. Die Unterstützung mehrerer Registerkarten galt als die am häufigsten nachgefragte Anfrage für die Terminalentwicklung. Dank der auf DirectWrite/DirectX basierenden Rendering-Engine, die mit GPU-Beschleunigung ausgestattet ist, erhält man schöne Texte.

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

Die Abwärtskompatibilität bleibt in vollem Umfang erhalten, Sie können jedoch Windows Terminal ausprobieren, wenn Sie möchten.

Chronologie: wie es passieren wird

Microsoft wird Windows Terminal über den Microsoft Store in Windows 10 bereitstellen und regelmäßig aktualisieren. Auf diese Weise sind Benutzer immer auf dem neuesten Stand der neuesten Versionen und Erweiterungen – praktisch ohne zusätzlichen Aufwand.

Microsoft plant, im kommenden Winter ein neues Terminal auf den Markt zu bringen. Sobald Microsoft Windows Terminal 1.0 einführt, werden die Entwickler weiterhin an vielen der bereits zurückgebliebenen Funktionen arbeiten.

Quellcode für Windows-Terminal und Windows-Konsole bereits gepostet auf GitHub.

Was kann uns in Zukunft erwarten?

Die Möglichkeit, dass Microsoft seinen eigenen Linux-Kernel für andere Zwecke nutzen wird, beispielsweise um eine eigene Linux-Distribution zu entwickeln, erscheint heute eher hypothetisch.

Das Ergebnis hängt wahrscheinlich davon ab, ob es Microsoft gelingt, eine erhebliche Nachfrage für ein solches Produkt zu finden und welche kommerziellen Möglichkeiten solche Entwicklungen möglicherweise eröffnen könnten, sagt Charles King.

Er glaubt, dass der Fokus des Unternehmens in absehbarer Zukunft darauf liegen wird, Windows und Linux zunehmend kompatibel und komplementär zu machen.

Joshua Schwartz glaubt, dass in diesem Fall abgewogen werden muss, wie hoch die Investition in diese Arbeit sein wird und wie hoch die Rendite sein wird. Wenn Microsoft heute ein sehr junges Unternehmen wäre, würde es wahrscheinlich alles auf Basis von Linux machen. Allerdings scheint die Portierung aller bereits verfügbaren Entwicklungen von Microsoft auf die native Linux-Architektur heute ein teures und komplexes Projekt zu sein, das sich wahrscheinlich nicht lohnen wird. Linux-Liebhaber erhalten ihr eigenes Linux und die Kernarchitektur bleibt erhalten.

Als Apple im Jahr 2000 Mac OS neu erfand, basierte das Betriebssystem auf BSD Unix, das eher Linux als DOS ähnelt. Heute entsteht eine neue Version von Microsoft Windows auf Basis von Linux.

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

Der Linux-Kernel von Microsoft könnte den Weg für eine größere Interoperabilität zwischen Windows-Diensten und dem Linux-Betriebssystem ebnen. Im Wesentlichen deuten diese Entwicklungen von Microsoft darauf hin, dass Microsoft selbst bereits verstanden hat: Es gibt heute fast keine Kunden mehr, die lieber in einer Welt leben, in der alles Windows ist.

Viel sinnvoller ist es, heterogene Technologien und Systeme einzusetzen, die den Geschäftsanforderungen und spezifischen Praxissituationen am besten gerecht werden.

Die größere strategische Frage lautet: Welche neuen strategischen Möglichkeiten eröffnet dieser Schritt für die Microsoft-Plattform selbst?

Azure, das Cloud-Ökosystem von Microsoft, bietet bereits hervorragende Unterstützung für Linux. Zuvor unterstützte Windows Linux mithilfe virtueller Maschinen gut.

Die grundlegenden Änderungen, die heute stattfinden, sind darauf zurückzuführen, dass Linux-Prozesse jetzt nativ auf dem Windows-Kernel laufen, was bedeutet, dass die Arbeit mit Linux unter Windows viel schneller sein wird als auf virtuellen Maschinen. Es ist wahrscheinlich, dass Azure dadurch um eine ganze Schicht von Ingenieuren bereichert wird, die Linux im industriellen Maßstab nutzen.

Source: habr.com

Kommentar hinzufügen