Rechercher dans ce blog

Wednesday, November 30, 2022

Windows on ARM: Mit einem Arm in der Entwicklungshölle - Golem.de - Golem.de

Eine Entwicklungsoffensive soll die Probleme von ARM-Laptops endlich lösen. Windows on ARM, Linux-Support und die CPUs zeigen dabei aber noch deutliche Schwächen.

von
Die Thinkpad-Serie gilt als Liebling bei Entwicklern. Mit einer ARM-CPU braucht es beim Entwickeln aber noch Geduld.
Die Thinkpad-Serie gilt als Liebling bei Entwicklern. Mit einer ARM-CPU braucht es beim Entwickeln aber noch Geduld. (Bild: Oliver Nickel/Golem.de)

Über Jahre waren Laptops mit ARM-CPUs vergleichsweise langsam und relativ zur Leistung betrachtet auch viel zu teuer. Deshalb haben wir uns sehr auf das Thinkpad X13s gefreut. In einem ersten Test hat uns das Gerät zwar mit seiner Akkulaufzeit erfreut, aber vor allem beim Preis abgeschreckt und auch bei der Leistung nur wenig überzeugt. Die Thinkpad-Reihe ist aber traditionell auch bei Power-Usern und Entwicklern sehr beliebt, sodass wir uns das x13s unter diesem Gesichtspunkt erneut angesehen haben.

Denn: Der Erfolg der ARM-Plattform für Laptops und Workstations außerhalb des Apple-Ökosystems, also für Windows und damit eventuell auch Linux, steht und fällt mit der Unterstützung für Entwickler. Können diese die Plattform aber nicht adäquat unterstützen und nutzen, wird es mittelfristig kaum Ambitionen geben, mehr in Windows-on-ARM- oder gar Linux-Support zu investieren. Ein klassisches Henne-Ei-Problem.

Apple hat mit seinem Wechsel auf Apple Silicon und den M1 nach einigen Anfangsschwierigkeiten mit dem Mac Mini und später dem Mac Studio beeindruckend gezeigt, dass sich ARM-Workstations gut auch als Entwicklungsmaschinen eignen. In Kooperation setzen nun Microsoft als Software-Lieferant und Qualcomm als Chiphersteller viel daran, dem etwas entgegenzusetzen, gemeinsam mit Hardware-Herstellern wie Lenovo.

Im Fall des Thinkpad x13s zeigt sich dabei aber schnell, dass hier trotz jahrelanger Arbeit sowohl an Software als auch Hardware noch deutlich Luft nach oben ist. Der massive Rückstand insbesondere auf Apple ist leider weiter deutlich spürbar. Unser Test mit dem x13s zeigt auch: Die beteiligten Firmen stehen an einem wichtigen Wendepunkt und haben zumindest das Potenzial, zu Apple aufzuholen, um ARM auch unter Windows und Linux zu einer echten Alternative für x86-Systeme zu machen.

Toolchain mit Startschwierigkeiten

Die Ausgangslage zum Entwickeln für ARM und vor allem nativ auf ARM-Plattformen hat sich dabei in den vergangenen Jahren deutlich gebessert. So hat Microsoft 2018 damit begonnen, seine eigenen Entwicklungswerkzeuge wie Visual Studio fit für ARM64 zu machen. Zunächst galt das jedoch nur für die Cross-Kompilierung. Wollten die Werkzeuge unter Windows on ARM ausgeführt werden, ging das nur über die sehr langsame Emulationsschicht. Das ändert sich nun aber.

So steht Visual Studio seit einigen Wochen als native ARM-Version bereit. Eine Emulation ist nicht mehr nötig. Wie Microsoft selbst zur Ankündigung schreibt, kann so die gesamte Entwicklung von ARM-Apps für Windows auch nativ in Windows für ARM durchgeführt werden.

Zusätzlich dazu hat Microsoft im Frühjahr dieses Jahres eine großes Toolchain-Update für sämtliche selbst unterstützten Werkzeuge angekündigt, sodass all diese auch nativ auf ARM laufen. Umgesetzt hat das Microsoft etwa bereits für .Net 6 und .Net 7 sowie das .Net Framework 4.8.1. Hinzu kommen die MSCV-Werkzeuge, also Compiler oder die mehr als 600 Bibliotheken für C++. Hinzu kommen Werkzeuge wie CMake, Ninja und MSBuild.

Binär-Interaktion zum Übergang

Die Probleme mit der Emulation bei einer Interaktion mit x86-Abhängigkeiten löst das allein zwar noch nicht. Doch dafür hat Microsoft mit ARM64EC (Emulation Compatible) eine binäre Anwendungsschnittstelle (ABI) für Windows 11 geschaffen, die Hybrid-Apps mit ARM- und x86-Befehle ermöglichen soll. Dafür werden die Aufrufkonvention und Datenstrukturen der x86-Architektur sowie einiges Weitere übernommen.

ARM64EC soll es Entwicklern erlauben, ihren Code inkrementell auf ARM64 portieren zu können. Ein neues Binärformat, ARM64x PE, soll außerdem nativen ARM64-Code und ARM64EC-Code in einer Binärdatei bündeln können. Das ist laut Microsoft besonders gut für Middleware-Projekte geeignet, die beide Arten von Binärcode ansprechen können müssten.

Zusammen mit dem hauseigenen Developer Kit, alias Projekt Volterra, oder Laptops wie unserem x13s-Testgerät ist die durch Microsoft verantwortete ARM-Entwicklungssoftware und ihre Nutzbarkeit ungefähr auf dem Stand, an dem Apple mit seinen ARM-Laptops vor rund zwei Jahren war. Die Probleme für Windows on ARM sind dabei zunächst zwar ähnlich, im Detail jedoch auch noch deutlich größer.

Tatsächlich überrascht uns, wie sehr uns die halbfertige Unterstützung für native Entwicklungswerkzeuge mit Windows on ARM auf dem x13s an die ersten Erfahrungen mit Apples M1 erinnert. Viele Probleme der Anfangszeit kommen uns einfach zu vertraut vor.

Das fängt schon damit an, dass für einige wichtige Werkzeuge trotz der Ankündigung von Microsoft noch keine nativen ARM64-Versionen bereitstehen. Das gilt etwa für Git, das bisher weiter offiziell nur als x86-Binary angeboten wird, auch wenn an einer ARM-Portierung bereits gearbeitet wird. Das wiederum liegt an den für Git für Windows notwendigen weiteren Werkzeugen von MSys2, die aber bereits experimentell für Windows on ARM bereitstehen.

In den Windows-System-Ordnern finden sich auch schon zahlreiche native ARM-Versionen. Dazu gehören etwa die klassischen Unix-Werkzeuge Curl und OpenSSH, die Microsoft seit einiger Zeit standardmäßig mit Windows ausliefert. Auch sonst gibt es bereits erfreulich viel nativen ARM-Code in dem System32-Ordner, lediglich DirectX und die MSVC-Runtime sind noch nicht portiert.

Portierung externer Werkzeuge angelaufen

Was außerhalb des direkten Einflussbereiches von Microsoft liegt und zur Entwicklung benötigt wird, steht unter Umständen noch nicht oder nur teilweise für Windows on ARM bereit. Mit dem aus dem Linux-Umfeld hervorgegangenen Linaro-Konsortium, das verschiedene ARM-Hersteller vereinigt, arbeiten Microsoft und Qualcomm jedoch an der Portierung verschiedener Werkzeuge.

Die Linaro-Webseite bietet eine kurze Übersicht der im Fokus stehenden Projekte, die hauptsächlich Programmiersprachen und sehr weit verbreitete Frameworks umfassen. Hier erfahren wir zum Beispiel schnell, dass es bereits experimentelle Versionen von Python für Windows on ARM gibt. Qt läuft seit Version 6.2 nativ, Rust listet den Support zwar noch als Tier-2, was aber offizielle Veröffentlichungen umfasst, Node.js lässt sich aus den Quellen für Windows on ARM bauen.

Darüber hinaus gehende Informationen sind im Zweifel aber nicht wirklich übersichtlich erhältlich. Eine Liste zum Stand der jeweiligen Ports, wie ihn das Homebrew-Team für Apple Silicon beim Start seiner Paket-Portierungen bereitgestellt hatte, gibt es unter Windows offenbar nicht.

Lediglich der Architektur-Support im Windows-Paketmanager Winget bietet hier etwas, das dem nahekommt. Dieser muss aber manuell für jedes Paket einzeln genutzt werden. Standardmäßig installiert Winget die nativen ARM-Versionen der angeforderten Software, sofern diese bereits verfügbar sind.

Ob und welche der selbst genutzten Abhängigkeiten oder Werkzeuge bereits für Windows on ARM bereitstehen, muss also unnötig kompliziert im Einzelfall immer wieder selbst überprüft werden. Apple hatte mit seinem Ökosystem für eine längere Übergangszeit ähnliche Probleme.

Das x13s mit Linux und WSL

Bereits nativ läuft das Windows-Subsystem für Linux, das uns dank der seit Jahren gepflegten ARM-Ports der Linux-Pakete direkt eine voll funktionsfähige Entwicklungsumgebung bereitstellt. Das heißt, auch Microsofts Virtualisierung Hyper-V kann in Windows on ARM bereits genutzt werden. Im Vergleich zum Start des M1 von Apple steht Microsoft hier zum Start also etwas besser da.

Ähnlich verhält es sich auch mit einem nativen Linux-Port auf Geräte, die mit Windows on ARM ausgeliefert werden. Während für Apple Silicon mühsam Reverse-Engineering-Arbeiten umgesetzt werden müssen, arbeiten Qualcomm und Lenovo im Rahmen einer Machbarkeitsstudie zumindest gemeinsam an einem Linux-Port auf das x13s.

Dankenswerterweise hat der an diesen Arbeiten beteiligte Lenovo-Angestellte Mark Pearson die intern dafür verwendete Installationsanleitung veröffentlicht. Genutzt werden dabei Debian und ein angepasster Linux-Kernel der Version 6.0. Die Installation unterscheidet sich zunächst nicht von der auf x86-Geräten. Lediglich das Verhalten des Bootloaders muss noch aufwendig manuell über eine EFI-Shell konfiguriert werden.

Der Hardware-Support ist noch sehr rudimentär, so funktionieren Audio- und externe Video-Ausgabe bei uns nicht. Es gibt auch keine 3D-Beschleunigung, und wir sind weit von der guten Akkulaufzeit unter Windows entfernt. Immerhin das WLAN geht. Das Gerät kann trotzdem nur mit Abstrichen genutzt werden.

Lenovo selbst will das x13s noch nicht offiziell mit Linux ausstatten. Die Linux-Community könnte dies aber selbst übernehmen. So gibt es bereits ein Projekt für einen Arch-Linux-Port und Initiativen für Ubuntu. Das Interesse an derartigen Arbeiten scheint aus Nutzerperspektive groß. Ob sich jedoch eine ähnlich aktive und vor allem produktiv erfolgreiche Linux-Community für die Windows-on-ARM-Laptops findet, wie dies Asahi Linux für die Apple Macs ist, bleibt abzuwarten.

Mit dem Thinkpad x13s oder Microsofts eigenem Devkit sowie Windows 11 samt der nun portierten Entwicklungswerkzeuge ist es nach Jahren der Verfügbarkeit von Windows on ARM nun endlich auch möglich, nativ auf dem System zu entwickeln und die eigene Software leicht direkt auf der Zielhardware zu testen.

Microsoft steht damit aber erst am Anfang einer Entwicklung, die wohl analog zu den Arbeiten im Apple-Ökosystem noch einige Jahre benötigen wird, bis sie als vollwertig betrachtet werden kann. Denn erst jetzt haben auch externe Entwickler die Möglichkeit, ihre eigenen Werkzeuge entsprechend auf Windows on ARM umzusetzen.

Erfreulich ist, dass Microsoft gemeinsam mit Qualcomm innerhalb des Linaro-Konsortiums auch für die Portierung wichtiger Sprachen wie Python oder weiterer Werkzeuge sorgt. Wichtig ist dies vor allem, weil sich damit endlich auch Anwendungen mit entsprechenden Abhängigkeiten nativ unter Windows on ARM ausführen lassen können, statt wie bisher über den Emulator. Das sollte auch Endnutzern einen Geschwindigkeitsvorteil bringen.

Im Vergleich mit Apple Silicon ist derzeit aber vor allem die Hardware von Qualcomm schlicht noch nicht schnell genug und überzeugt uns auch mit Blick auf den Preis nicht. Das haben wir bei unserem ersten Test des x13s bereits festgestellt. Als Plattform für eigene native Entwicklungen gilt das umso mehr.

Mit Blick auf das bisher meist sehr leicht umsetzbare Dual-Booting von Windows und Linux auf Enterprise-Geräten, die zur Entwicklung gedacht sind, enttäuscht das x13s. Wir hätten nicht nur gern mehr Auswahl bei ARM-Laptops für Linux mit angemessener Leistung, sondern zunächst auch überhaupt erst einmal ein entsprechendes Gerät mit solidem Linux-Support. Ob das noch geschieht, ist derzeit jedoch völlig unklar. Immerhin lässt sich das Windows-Subsystem für Linux bereits problemlos nutzen.

Dennoch: Zu empfehlen ist Entwicklern ein Wechsel auf Windows on ARM derzeit eigentlich nur für den Fall, dass sie sich mit entsprechenden Portierungsarbeiten beschäftigen wollen oder müssen. Als Laptop dafür praktisch verfügbar ist derzeit eigentlich nur das Thinkpad x13s.

Alternativ könnte auch das Surface Pro 9 genutzt werden, das auf den gleichen CPU-Kernen aufbaut, das aber bei ähnlicher Ausstattung noch deutlich teurer ist. Sinnvoller dürfte das deutlich günstigere Devkit sein. Die Leistung ist aber leider noch nicht konkurrenzfähig, wie verschiedene Benchmarks gezeigt haben.

Adblock test (Why?)


Windows on ARM: Mit einem Arm in der Entwicklungshölle - Golem.de - Golem.de
Read More

No comments:

Post a Comment

One UI 5.1: Samsung kündigt Update-Start für ältere Galaxy-Smartphones an, los geht es u.a. mit Galaxy S20, S21 und S22 - Notebookcheck.com

Nachdem es vor wenigen Tagen bereits inoffizielle Informationen zum Rollout von Samsungs One UI 5.1 für die ersten Modelle jenseits der ne...