Windows 10 on ARM: Keine Emulation von x86-64-Bit-Anwendungen

Eric Hoh 130 Kommentare
Windows 10 on ARM: Keine Emulation von x86-64-Bit-Anwendungen
Bild: Qualcomm

Kürzlich von Microsoft veröffentlichte Dokumente enthalten neue Details über die Fähigkeiten und Einschränkungen der x86-Emulation von Windows 10 on ARM. Dazu gehören beispielsweise die fehlende Unterstützung von 64-Bit-Software.

Kein Erfolg für den Vorgänger

Nachdem der erste Versuch Microsofts Windows-Betriebssystem und ARM-SoCs unter einen Hut zu bringen mit Windows RT nicht den erhofften Erfolg brachte, versucht es Microsoft nun erneut. Im Gegensatz zu Windows RT bringt Windows 10 on ARM allerdings eine x86-Emulation mit, so dass viele klassische Windows-Programme zukünftig auch auf den ARM-SoCs laufen werden. Dies war das große Problem von Windows RT, denn die meisten angestammten Programme konnten nicht genutzt werden und Entwickler scheuten den Aufwand mangels Kundschaft.

Keine 64-Bit-Emulation, keine x86-Treiber

Um dieses Problem zu umgehen, hat sich Microsoft entschieden, eine x86-Emulation einzubauen, so dass zumindest viele klassische Windows-Programme auf Windows on ARM laufen. Diese Unterstützung hat allerdings gleich mehrere bedeutende Einschränkungen. So unterstützt der Emulator keine 64-Bit-Software. Weitere Einschränkungen gibt es bei den Treibern. Kernel-Treiber müssen genau so wie Treiber, die auf das User-Mode Driver Framework (UDMF) aufsetzen, direkt für ARM(64) compiliert werden. Das gleiche gilt für Druckertreiber und Software, die eigene Treiber mitbringt. Das ist zum Beispiel bei virtuellen Laufwerken, Sicherheitssoftware und manchem Kopierschutz der Fall.

DirectX hui, OpenGL pfui

Wer auf seinem ARM-System spielen möchte, kann die 3D-Beschleunigung durch den SoC nutzen, solange das Spiel DirectX 9 bis 12 nutzt. OpenGL wird nur bis zur Version 1.1 unterstützt und auch dann nur, wenn keine Hardwarebeschleunigung gebraucht wird. Von Vulkan ist in den Dokumenten keine Rede, eine Unterstützung ist aber sehr unwahrscheinlich.

Keine Informationen zur Unterstützung von SSE, AVX und Co

Nicht erwähnt in den neuen Dokumenten werden die Befehlssatzerweiterungen wie MMX, SSE oder AVX. Dabei nutzen viele Programme, insbesondere aus dem Multimediabereich, diese Erweiterungen, um bestimmte Operationen zu beschleunigen. Das Problem, vor dem Microsoft hier möglicherweise steht, ist das gleiche wie bei AMD64. Während es technisch überhaupt kein Problem wäre, die Erweiterungen ebenfalls zu emulieren, ist es aus rechtlicher Sicht zumindest mit Risiken behaftet, denn im Gegensatz zu den Patenten auf den ursprünglichen x86-Befehlssatz oder die Befehlssatzerweiterung MMX sind die Patente auf AMD64, SSE und AVX noch gültig.

Von Intel war auch bereits zu vernehmen, dass sie ihre mehr als 1.600 x86-bezogenen Patente, falls nötig, verteidigen werden. Dabei wurden zwar weder Microsoft, Qualcomm noch Windows on ARM explizit erwähnt, auf Grund der zeitlichen Nähe dieser Aussagen zu Microsofts Ankündigung von Windows on ARM ist der Bezug aber offensichtlich.

Update 06.04.2018 09:18 Uhr

Microsoft hat gegenüber Engadget bestätigt, dass Windows 10 on ARM in Zukunft auch mit 64-Bit-Apps umgehen können wird. Allerdings nicht per Emulation. Stattdessen wird der Konzern zur Entwicklerkonferenz Build Anfang Mai ein SDK bereitstellen, mit dem Softwareanbieter ihre 64-Bit-Programme neu kompilieren müssen, damit sie in 64 Bit unter Windows 10 on ARM laufen. Der Kompiler soll sowohl mit klassischen Programmen als auch mit UWP-Anwendungen aus dem Windows Store zusammenarbeiten. Inwiefern Microsoft auch Windows 10 on ARM in Zukunft weiter ausbaut, bleibt abzuwarten.