Suchen

So viel Open Source steckt in Windows

| Autor: Ulrike Ostler

„Kein anderes Unternehmen lässt so viele Mitarbeiter*innen an Open-Source-Projekten mitwirken“, heißt es in einem der jüngsten Blog-Beiträge von Microsoft. Das zeige nun auch rund um „Windows“ deutliche Auswirkungen, so Verfasserin Irene Nadler. Es sei Zeit zu beleuchten, wie viel Open Source bereits in Windows steckt.

Firmen zum Thema

Die „Powershell“ steht schon lange als Open Source zur Verfügung.
Die „Powershell“ steht schon lange als Open Source zur Verfügung.
(Bild: Microsoft)

2016 übernahm Microsoft die Software „Xamarin“, eine offene Umgebung zur Entwicklung von plattformübergreifenden Anwendungen mit .NET und C#. Vor rund zwei Jahren folgte der Erwerb der Software-Entwicklungsplattform Github für 7,5 Milliarden Dollar (siehe auch: „Wir sollten Microsofts cleveren Schritt feiern!“ Linux Foundation kommentiert Github-Übernahme durch Microsoft). Dort veröffentlichen Developer-Teams ihren Software-Code und arbeiten gemeinsam an Projekten, auf welche Unternehmen wie Organisationen weltweit zugreifen können.

„Project Reunion ist unsere Vision, die Windows-Entwicklerplattform zu vereinheitlichen und weiterzuentwickeln“, heißt es auf der Microsoft-Site. Damit werde der Zugriff auf bestehende Win32- und UWP-APIs vereinheitlicht und über Tools wie „Nuget“ vom Betriebssystem entkoppelt verfügbar gemacht.
„Project Reunion ist unsere Vision, die Windows-Entwicklerplattform zu vereinheitlichen und weiterzuentwickeln“, heißt es auf der Microsoft-Site. Damit werde der Zugriff auf bestehende Win32- und UWP-APIs vereinheitlicht und über Tools wie „Nuget“ vom Betriebssystem entkoppelt verfügbar gemacht.
(Bild: Microsoft)

Das sind nur ein paar jüngste Beispiele für Microsofts Engagement im Bereich Open Source. Auch für „Windows 10“ ist Open Source elementar. Die wichtigsten Neuigkeiten rund um Windows 10 und Open Source hat Microsoft erst kürzlich auf der Entwicklerkonferenz „Microsoft Build 2020“ digital präsentiert.

So entkoppelt Microsoft mit dem Projekt „Reunion“ die Windows-Plattform vom Betriebssystem und Entwickler*innen können Apps über Win32- sowie UWP-Programmierschnittstellen einfacher integrieren.

Project Reunion soll dabei helfen, bestehenden Anwendungen mit den jüngsten Funktionen zu aktualisieren und zu modernisieren, egal ob es sich dabei um C++, .NET (einschließlich „WPF“, „Windows Forms“ und „UWP“) oder „React Native“ handelt. Die bestehenden APIs werden entkoppelt und neue APIs hinzugefügt und bei Bedarf gibt ein „Polyfill“, damit die APIs auf der unteren Ebene über alle unterstützten Windows-Versionen hinweg funktionieren. Bereits begonnen hat Microsoft mit Programmierschnittstellen wie WinUI 3, WebView2 und MSIX (MSIX-Core).

„WinUI 3 Preview 1“ ist eine der ersten Komponenten: Es handelt sich um das native UI-Framework für Windows, das jetzt allen Windows-Anwendungsentwicklern sowohl für UWP- als auch für Desktop-Anwendungen zur Verfügung steht. Mit WinUI lassen sich neue Anwendungen mit einer Benutzeroberfläche erstellen, die sich geräteübergreifend anpassen und skalieren lässt, oder die Benutzeroberfläche vorhandener Desktop-Anwendungen, einschließlich C++, WPF und WinForms, schrittweise modernisieren.

Die dafür benötigte Code-Plattform stellt das Unternehmen als offenen Quellcode bereit. Für uns mittlerweile ein bekanntes Vorgehen, Komponenten von der Windows-Plattform zu lösen und diese als Open-Source-Projekt verfügbar zu machen – Powershell ist ein weiteres Beispiel für diesen Ansatz. Support für Linux ist dabei selbstverständlich.

Die enge Verbindung von Windows und Open Source wird wohl kaum so deutlich wie am Beispiel unseres neuen Browsers „Microsoft Edge“. Seine Basis ist die Open-Source-Engine „Chromium“ und wir arbeiten fleißig an der Weiterentwicklung mit.

Linux-Kernel unter Windows per Update
Linux-Kernel unter Windows per Update
(Bild: Microsoft)

So profitiert das Unternehmen mit von der Arbeit anderer, aber auch alternative Browser können den Input für sich nutzen. So hat Microsoft bis heute über 3.000 Commits eingebracht, also Verbesserungen, um das Surfen im Web nutzerfreundlicher, performanter und zugänglicher machen.

Open Source im Kernel

Linux ist schon länger ein fester Bestandteil von Windows 10. Vor kurzem hat Microsoft nun einen kompletten Linux-Kernel für das Windows-Subsystem im Rahmen des Windows-Update vom Mai 2020 bereitgestellt – und Linux für Windows 10 damit rundum erneuert.

Hierfür nutzt Microsoft eine virtuelle Maschine und der Linux-Kernel wird per Windows-Update aktualisiert. Das macht Linux in Windows 10 schlanker und schneller. Darüber hinaus werden auch Anwendungen mit grafischer Oberfläche unterstützt und Linux kann auf die Rechenleistung der Grafikkarte zugreifen.

„Powertoys“ feiern ihr Comeback via Open Source.
„Powertoys“ feiern ihr Comeback via Open Source.
(Bild: Microsoft)

Powertoys

Erfahrene Windows-Nutzer*innen erinnern sich bestimmt an die „Powertoys“ für „Windows 95“ oder „Windows XP“: Eine beliebte Sammlung von kostenlosen Werkzeugen, mit denen Anwender*innen zusätzliche Funktionen nachrüsten konnten. Nun kommen die Tools für Windows 10 als Open-Source-Projekt zurück.

Die Sammlung umfasst aktuell sieben Programme. Ganz smart finde ich den Launcher „Powertoys Run“: Über die Tastenkombination „Alt“ und „Leertaste“ wird er gestartet. Danach braucht man nur noch eintippen, was gesucht wird und schon hat der Launcher die passenden Programme parat.

Windows-Terminal

Ein weiterer Open­-Source-Star auf der diesjährigen Build war „Windows Terminal“. Unsere modernisierte Kommandozeile startete zur Konferenz als Version 1.0. Sie enthält viele der von der Windows-Befehlszeilen-Community am häufigsten nachgefragten Funktionen, darunter Unterstützung für Registerkarten, Rich-Text, Globalisierung, Konfigurierbarkeit, Thematisierung und Styling.

Das Besondere: Alle bisherigen Kommandozeilen lassen sich über Tabs integrieren. Zudem gibt es jede Menge Möglichkeiten, um Windows Terminal zu individualisieren.

Windows-Konsolen-Host

Der Windows-Konsolen-Host, conhost.exe, ist die ursprüngliche Befehlszeile von Windows, auf die die Nutzer treffen. Er hostet auch die Befehlszeileninfrastruktur von Windows und den „Windows Console API-Server“, die Eingabe- und Rendering-Engine, die Benutzereinstellungen und mehr. Der Konsolen-Host-Code in diesem Repository ist die eigentliche Quelle, aus der die conhost.exe in Windows selbst erstellt wird.

Seit der Übernahme der Windows-Befehlszeile im Jahr 2014 hat das Team der Konsole zware mehrere neue Funktionen hinzugefügt, darunter Hintergrundtransparenz, zeilenbasierte Auswahl, Unterstützung für ANSI-/Virtual-Terminal-Sequenzen, 24-Bit-Farbe und eine Pseudokonsole („ConPTY“). Doch auch bei neuen Funktionen muss die Aufrechterhaltung der Abwärtskompatibilität gewährleistet sein. So war es aber unmöglich, viele der Funktionen hinzuzufügen, die sich die Gemeinschaft (und das Team) gewünscht hätten, darunter Registerkarten, Unicode-Text und Emoji. Diese Einschränkungen veranlassten Microsoft Windows-Terminal zu erneuern.

Bei der Konsolenüberholung hat das Team die Codebasis beträchtlich modernisiert. Dazu gehört, dass logische Einheiten sauber in Module und Klassen getrennt werden, mehrere alte, selbst entwickelte Sammlungen und Container durch sicherere, effizientere STL-Container ersetzt werden und der Code durch die Verwendung von „Microsofts Windows Implementation Libraries“ (WILL) einfacher und sicherer wird.

Der Umbau hat dazu geführt, dass mehrere der Schlüsselkomponenten zur Wiederverwendung in jeder Terminal-Implementierung unter Windows zur Verfügung stehen. Zu diesen Komponenten gehören eine neue „Directwrite“-basierte Text-Layout- und Rendering-Engine, ein Textpuffer, der sowohl UTF-16 als auch UTF-8 speichern kann und ein VT-Parser/Emitter. Außerdem wurde dem Team klar, dass es auf diese Weise einen Großteil des Terminal-Kerns selbst als wiederverwendbares UI-Steuerelement aufbauen könnte, das sich von anderen in ihre eigenen Anwendungen integrieren lässt.

In der Pipeline

Ein weiteres Open-Source-Projekt befindet sich bereits in der Entwicklung: der „Windows Package Manager Client“. Mit dieser Paketverwaltung lassen sich in der PC-Umgebung Programme schnell finden und installieren. Das sind die Funktionen, die bisher zur Verfügung stehen. Doch schon bald sollen Deinstallation, Auflistung und Aktualisierung folgen.

Das Tool lässt sich mit dem folgenden Befehl installieren:

winget install <tool>

Der integrierte „Package Manager Service“ ist für die Genehmigung von Pull-Anfragen verantwortlich. Er validiert die YAML und manifestiert die Einhaltung der Spezifikationen.

Das zugehörige Client-Repository „winget-cli“ enthält den Quellcode zur Erstellung eines Client. Dieser ist um das Konzept der „Sources“ herum aufgebaut; ein Satz von Paketen, die effektiv sind. Quellen bieten die Möglichkeit, die Metadaten zu den Paketen zu entdecken und abzurufen, so dass der Client darauf reagieren kann. Die Standardquelle spiegelt die im „Community-Repo“ verfügbaren Daten wider.

Im Blog heißt es: „Wir planen, in Zukunft zusätzliche Quellen und zusätzliche Arten von Quellen besser zu unterstützen. Im Moment können zusätzliche Quellen konfiguriert werden, aber jeweils nur eine auf einmal verwendet werden.“

Dieser Beitrag stammt von unserem Partnerportal Datacenter-Insider.de.

* Irene Nadler arbeitet im Presseteam von Microsoft.

Artikelfiles und Artikellinks

(ID:46687974)

Über den Autor

 Ulrike Ostler

Ulrike Ostler

Chefredakteurin DataCenter-Insider, DataCenter-Insider