Microsoft brengt x64-emulatie op Arm alleen naar Windows 11

Microsoft heeft emulatie van x64-apps op Arm64 breed beschikbaar gemaakt maar alleen voor pc's met Arm-chips die Windows 11 draaien. De preview van x64-emulatie draaide vanaf december op Windows 10 on ARM.

Microsoft heeft de brede beschikbaarheid van x64-emulatie voor Windows 11 aangekondigd en het bedrijf benadrukt dat een pc vereist is die Windows 11 on ARM draait. Die mededeling is verschenen bij een blogbericht van december vorig jaar, die de preview van x64-emulatie voor Windows 10 on ARM aankondigde.

Wie x64-apps op Windows-pc's met Arm wil draaien, zal daarmee moeten upgraden naar Windows 11. Het bedrijf blijft Windows 10 on ARM wel tot oktober 2025 ondersteunen. Windows 10 on ARM verscheen eind 2017 maar het OS kon sinds die tijd alleen 32-bits x86-apps via de WOW64-emulatie draaien, waarmee veel software niet werkte op het besturingssysteem.

Windows on ARM kon al wel 64-bitsoftware draaien, maar alleen als die voor Arm-hardware is ontwikkeld. Microsoft hoopt dat Windows ook op laptops en tablets met bijvoorbeeld Snapdragon-processors op basis van Arm populair wordt. Het bedrijf brengt zelf een Surface Pro X-apparaat met Arm-soc uit.

In juni kondigde Microsoft ARM64EC voor Windows 11 on ARM aan. Deze application binary interface is interoperabel met x64 en ARM64EC-code van ontwikkelaars in apps draaien native op Windows 11 on ARM terwijl x64-code dan via emulatie draait.

Surface Pro X met Windows 11
Surface Pro X met Windows 11

Door Olaf van Miltenburg

Nieuwscoördinator

17-11-2021 • 09:05

54

Submitter: TheVivaldi

Reacties (54)

Sorteer op:

Weergave:

Ben benieuwd of windows on arm uitsluitend op snapdragons gaat werken of ook op andere arm hardware.
https://raspberryexpert.c...ows-11-on-raspberry-pi-4/ --» dit kan al een tijdje. Technisch aan de Microsoft kant geen echte belemmering om Windows 11 op een willekeurige ARM SoC te zetten, mits deze Soc een enigzins open bootloader / bootproces heeft en dit toestaat. Daarnaast is het natuurlijk de vraag of b.v. storage drivertechnisch gaat werken. Bij SoC's is dat vaak een ratjetoe. De vraag is daarnaast ook of Microsoft Windows 11 voor ARM in de verkoop gaat gooien, net als dat bij x86 het geval is. Anders kan je het niet officieel draaien, zeker niet in een thuissituatie.
Ik heb her en der gelezen dat men windows 10 arm in een VM kan draaien op mac M1. En op die manier windows apps kunnen draaien.
Je kunt ook de ARM-versie van Windows 11 in een VM draaien op een Mac met Apple Silicon CPU. En daarin kun je dan Windows-software draaien, zowel native ARM als x86 software.

Zo kun je bijvoorbeeld met Parallels 17 een VM met Windows 11 draaien, waarin je spellen kunt draaien voor Windows op de Mac. Niet alle spellen werken en door de vertaallagen is de performance niet altijd optimaal, maar het werkt redelijk.

Zie bijvoorbeeld deze YouTube-video over hoe dat werkt.
Het kan allemaal wel, maar het werkt alleen met developer accounts/insider versies. Er is geen licentie te koop en tot op heden heeft microsoft nog niet laten weten of dat in de toekomst wel kan. Dit maakt het voor de gemiddelde apple laptop gebruiker wel allemaal wat omslachtiger.
Ik heb succesvol Windows 11 op een pi4 geïnstalleerd, werkte nog redelijk ook, maar minder snel dan native raspbian
Kon je er wel wat mee? Die Pi4 is geen powerhouse, maar vraag me vooral af of het bruikbaar was? Krijg je bijv. youtube filmpjes aan de praat? En bijv spotify oid? Zou het kunnen fungeren als een basic thuis computer?
Ik heb Windows 11 op een Pi 400 geinstalleerd. Dat moet dan wel op een externe SSD, want een SD-kaartje is veel te langzaam. Maar dan nog zou ik er niet mijn dagelijkse PC van willen maken. Het is mij net te langzaam. En Youtube moet op lage resolutie om nog een beetje soepel te lopen.
Het is mooi dat het kan, maar W11 heeft in ieder geval betere GPU drivers voor een Pi nodig denk ik. Dan wordt het misschien wel werkbaar.
Dit begint een beetje op de rare bokkensprongen van Windows Mobile te lijken. Leuk als je emulatie nog tot oktober 2025 ondersteunt maar welke developer gaat daar dan nu nog wat voor ontwikkelen? Ik snap waarom developers eerst de kat uit de boom kijken en daarmee heb je weer het kip en ei probleem. ARM is het daarmee nog steeds net niet bij Microsoft.
Ze moeten gewoon Visual Studio beschikbaar maken in een ARM64 versie, zodat je op een veel te dure en ondermaats presterende Surface Pro X software kunt ontwikkelen. Hopelijk kun je nu wel de x64 versie van Visual Studio draaien, maar dat zal traag zijn.

ARM is het bij Microsoft nooit echt geweest. Als je ontwikkelaars de juiste middelen niet geeft, kunnen ze ook niet veel met je platform. Wellicht kun je een losse LLVM/Clang en Visual Studio Code of een willekeurige andere editor gebruiken.
Ze moeten gewoon Visual Studio beschikbaar maken in een ARM64 versie
Voor zover ik weet draait VS nog steeds op 32-bit. Wat Microsoft uiteindelijk wil is volledig over op .net: dan is de vraag wat de onderliggende processor is veel minder relevant.
Voor zover ik gemerkt heb in .net core 2 e.d. moet je jouw code publishen voor een bepaald platform, bv linux-arm. Publish je voor je het verkeerde target platform, bv x86, dan gaat je code ook niet werken op je ARM systeem. Het is voor alle duidelijkheid alleszins niet een gevalletje "one binary for all".
Eigenlijk kan ik hetzelfde ook wel in zekere mate met m'n C++ code, die is perfect te draaien op x86 en ARM processoren.
Het verschil met .Net is dat .Net daarboven ook nog eens in zekere mate OS onafhankelijk is. Je code voor een seriële poort aan te spreken is in essentie niet anders voor linux als op Windows. Dat is natuurlijk wel zo in C/C++, daar zit je direct op de OS API's te werken en is er geen verdere abstractie.
Eigenlijk kan ik hetzelfde ook wel in zekere mate met m'n C++ code, die is perfect te draaien op x86 en ARM processoren.
De problemen die Microsoft met 64-bit ondervond hadden vooral te maken met formaten: bij het serializeren naar bijvoorbeeld geheugen of het bestandssysteem wordt gerekend op een bepaalde processorarchitectuur. Als die architectuur wijzigt dan schrijf je opeens een heel ander bestand weg.
Los je op met libraries.. wat Microsoft eigenlijk ook een beetje doet voor jou moet .NET alleen dan net iets anders.
Visual Studio 2022 (vorige week uitgekomen) is 64-bit.
En ondertussen draait Rider vrolijk op 3 platforms en inmiddels native op ARM64.
Dan heb ik goed nieuws voor je, ga dan VS 2022 gebruiken want die is 64-bit :-).
Het goede nieuws voor mij is dat ik voorlopig niet voor of op Windows hoef te ontwikkelen :)
.net als portability oplossing is een mislukking. Als je je software op orde hebt, kun je gewoon voor meerdere platformen bouwen. Maar voor software dat een lange history heeft, is dat vaak niet zo triviaal.
Als je je software op orde hebt, kun je gewoon voor meerdere platformen bouwen.
Compileren is het probleem natuurlijk niet, of je nou Java, C#, C, C++, Rust of zelfs Python gebruikt; de belangrijkste platformen worden wel ondersteund. De uitdaging zit hem in details waar je afhankelijk bent van het OS of de hardwarearchitectuur. Die kun je wegmoffelen achter ifdefs, of verstoppen in libraries. Maar dan moeten die libraries ook weer voor alle platformen beschikbaar hebben/bouwen. Kijk bijvoorbeeld naar Paint.net. Jarenlang hebben die comptabiliteit met Mono verzorgt, maar de grafische functionaliteit van Mono werd niet meer verder ontwikkeld, dus dit 'goed op orde hebben' werd een steeds grotere uitdaging en een beperking voor de Windows-versie. Uiteindelijk hebben ze ondersteuning voor Mono laten vallen en nu is Paint.net Windows-only.
euk als je emulatie nog tot oktober 2025 ondersteunt maar welke developer gaat daar dan nu nog wat voor ontwikkelen?
Jij snapt toch ook wel dat een bedrijf als Microsoft niet de financiële middelen heeft om onvoorwaardelijk 10 jaar lang x86-64-emulatie te garanderen? Als het geen direct succes is dan zullen ze om financiële redenen de stekker er weer uit moet trekken.

;)

In alle eerlijkheid denk ik dat Microsoft een Apple/Google wil zijn, maar meer een Volkswagen is. Apple en Google introduceren nieuwe functionaliteit die meteen aanslaat. Autobedrijven als Volkswagen introduceren eerst nieuwe functionaliteit die slecht werkt, zoals stemherkenning, parkeersensoren, automatisch parkeren, anti-diefstalalarm, airco etc. De eerste jaren, misschien zelfs tientallen jaren, zet iedereen de functionaliteit uit, maar langzaamaan wordt het beter en uiteindelijk willen mensen niet zonder meer. Microsoft introduceert iets (Silverlight, Windows Phone en nu x86-64-emulatie), probeert het een paar jaar en trekt dan weer de stekker er uit. Dat terwijl ze de financiële middelen hebben om het langetermijnspel te spelen.
Dat laatste doet Google ook.

En sinds wanneer doet Apple aan nieuwe functionaliteit? Ik hoor altijd het argument dat Apple juist wacht totdat een bepaalde functie volwassen genoeg is om te implementeren.
Ik denk dat hij bedoelt dat Apple zegt van, hier is onze nieuwe M1-chip, die is gebaseerd op ARM, dus ontwikkelaars, pas jullie software maar aan. En dat is dan ook wat gebeurt. Klanten springen op de M1-kar in de hoop dat het allemaal goed werkt en ze even productief kunnen blijven en software-ontwikkelaars passen hun software aan zonder dat het allemaal erg uitzonderlijk lang moet duren.
Jij snapt toch ook wel dat een bedrijf als Microsoft niet de financiële middelen heeft om onvoorwaardelijk 10 jaar lang x86-64-emulatie te garanderen?
Microsoft cash on hand for the quarter ending September 30, 2021 was $130.615B, a 5.34% decline year-over-year.
nee dan moeten ze het kerstpakket afschaffen inderdaad
In alle eerlijkheid denk ik dat Microsoft een Apple/Google wil zijn, maar meer een Volkswagen is.
Het is inderdaad alsof ze heel goed doorhebben wat een succes is op de lange termijn, waar ze op korte termijn op inzetten en waar op de lange termijn.
Waar heb je het over?

Windows 10 wordt op ARM hardware - net als Windows 10 op alle andere hardware - nog tot 2025 ondersteund. Die ondersteuningsdatum heeft niks met deze feature te maken, wat niet eens deel is van Windows 10. x86-64 emulatie zit gewoon in Windows 11 en zal er niet meer uitgehaald worden.

[Reactie gewijzigd door Loller1 op 22 juli 2024 20:43]

Ik denk dat @synoniem bedoelt dat alle pogingen van Microsoft op mobiel gebied zijn mislukt en dat het nu met ARM probeert alsnog / weer een voet tussen die deur te krijgen. Dat was in elk geval mijn eerste gedachte. Ik vraag me daarom af wat Microsoft voor ogen staat met deze ontwikkeling. Is dat om ontwikkelaars tegemoet te komen? Lijkt me sterk....
Nee synoniem zegt hier dat Microsoft de emulatie tot 2025 zou ondersteunen, wat gewoon helemaal niet waar is.
Beter lezen misschien?
Wie x64-apps op Windows-pc's met Arm wil draaien, zal daarmee moeten upgraden naar Windows 11. Het bedrijf blijft Windows 10 on ARM wel tot oktober 2025 ondersteunen.
Herinner je de bokkensprongen van Microsoft met Mobile pre 6, 7 en 8 waarbij de compabiliteit van voorgaande versies de nek omgedraaid werd? En vervolgens verbaasd was dat developers geen apps voor Windows Mobile wilde ontwikkelen.
Leer zelf misschien eerst eens te lezen. Welk deel van het feit dat mijn reactie op jou eigen bericht was en direct reageerde op een zin in je eigen tekst begrijp je niet? Laat ik het even voor je duidelijker maken:
Leuk als je emulatie nog tot oktober 2025 ondersteunt maar welke developer gaat daar dan nu nog wat voor ontwikkelen?
Dit dus. Niet waar. Geheel je eigen verzinsel. Windows 10 ondersteuning stopt op oktober 2025. Natuurlijk wordt Windows 10 on ARM dan ook niet meer ondersteund, dat is gewoon Windows 10. Emulatie staat daar geheel los van, zit niet eens in Windows 10, maar in Windows 11 en blijft ondersteund voor zolang het besturingssysteem ondersteund blijft.

Dus ofwel moet jij leren lezen of leren schrijven, wat je vooral niet moet doen is passief agressief reageren op iemand die aangeeft dat je het fout gelezen of geschreven hebt met je "beter lezen misschien"-comment.
Goed lezen: Windows 10 ARM krijgt dus geen/niet/nooit X64 emulatie op ARM pc's daar moet je Windows 11 voor hebben. Windows 10 blijft met zijn krakkemikkige X86 emulatie wel draaien tot 2025.
Aan de ene kant: Waarom kan Windows 10 dit niet? Ik durf best te wedden, dat ALLES wat Windows 11 kan, ook op 10 kan. Alles. Als de wil er is, dan is de weg er ook.

Andere kant: Welke dommerik waagt zich nou aan Windows op ARM? Als je een laptop met een ARM-based SoC wil, dan koop je een M1 macbook (en dat zegt een Apple hateboy).

[Reactie gewijzigd door _Thanatos_ op 22 juli 2024 20:43]

Het lijkt me een beetje zinloos aan MS's kant om dit ook voor Windows 10 te implementeren (testen ervan kost vast mankracht) terwijl hoogst waarschijnlijk gebruikers met een Arm pc het toch naar Windows 11 gaan updaten (ook ivm Android apps).

Mbt Windows on Arm pc's, het is niet zo zwart wit denk ik maar op het moment een niche. WoA pc's hebben vaak bijvoorbeeld betere LTE en batterijduur dan Intel/Amd pc's in dezelfde form factor. En M1 Macbooks missen dan weer potentieel belangrijke features (pen support, tablet form factor etc.). WoA pc's ondanks prijzig voor hun performance zijn vaak ook alsnog snel genoeg als je vooral Office gebruikt. Wat MS vooral nog mist is een vlotte Arm cpu maar daar werken ze aan.
ARM-based pc's zijn juist eerder ultraportable notebooks, en als je kijkt naar de krankzinnige systeemeisen van Windows 11, lijkt me dat niet passen bij zulke devices.
Windows 10 kan dit ook, althans in de dev branches zoals WOR vermeld. Die branches hadden een veel hoger versie nummer dan Windows 10 en die versie nummering is uiteindelijk over gegaan naar wat nu in Windows Server 2021 en Windows 11 zit. Windows 10 2021 is op de build uit 2020 gebaseerd en ik verwacht dat dit zo blijft.

Windows 10 lijkt nu meer als Windows 7 achtige updates verder te gaan, service packs maar niet veel meer dan dat. Waarbij Windows 11 wel weer de echt nieuwe builds kan krijgen zoals Windows 10 die altijd had.

Natuurlijk zouden ze ook Windows 10 kunnen baseren op de nieuwe codebase en enkel de interfaces van elkaar los kunnen koppelen maar daar lijkt Microsoft vooralsnog niet voor te gaan kiezen,
Aan de ene kant: Waarom kan Windows 10 dit niet? Ik durf best te wedden, dat ALLES wat Windows 11 kan, ook op 10 kan. Alles. Als de wil er is, dan is de weg er ook.
Kunnen we even heel duidelijk onderstrepen dat deze logica totaal achterstevoren is? Waar heb je het over? iOS 14 kan ook alles wat iOS 15 kan, en als we dat dan in het verlengde doorzetten dan kan iPhoneOS 1 ook alles wat iOS 15 kan, of Windows 1 alles wat Windows 11 kan, of Android 1 alles wat Android 11 kan.
Met als verschil dat Windows 10 nog actief gebruikt wordt, verkocht wordt, en ondersteund wordt.
Heeft dit nog enige relatie tot het draaien van Windows op de M1 Macbook Pro's?
Nee. Dit gaat over het draaien van x86 apps op Windows op ARM hardware, niet het draaien van Windows zelf op ARM hardware.
Dit zou toch heel goed kunnen gaan over het draaien van x86-64 software op Windows op een M1-AMR processor? ofwel, 64-bit x86-software op een Apple M1.
Tuurlijk, maar dat heeft niks te maken met het draaien van Windows op M1, wat de vraag hier was.
maar dat heeft niks te maken met het draaien van Windows op M1
Dan begrijp ik het niet goed. Hoe zou je x86-64 voor software op Windows op een M1 kunnen draaien, als Windows niet op een M1 draait? Volgens mij is dat een voorwaarde.

@Yggdrasil vraagt niet of dit een voorwaarde is om Windows op een M1 te draaien. Maar naar mijn mening is de relatie er wel, het kan Windows op een M1 veel aantrekkelijker maken.
Ik interpreteer de vraag wel degelijk als "relatie tot het draaien van Windows" op dat platform. In die context is het niet Microsoft hun taak om de hardware te reverse engineeren en drivers te gaan schrijven.

Apple maakt deze claim:
Apple's software engineering chief Craig Federighi last year said that Windows coming to ‌‌M1‌‌ Macs is "up to Microsoft." The ‌‌M1‌‌ chip contains the core technologies needed to run Windows, but Microsoft has to decide whether to license its Arm version of Windows to Mac users.
Wat best zwak is. Als ik morgen een retail windows 11 ARM license zou kunnen kopen, heeft Apple écht niet plots alle drivers klaar.
Als ik morgen een retail windows 11 ARM license zou kunnen kopen, heeft Apple écht niet plots alle drivers klaar.
En andersom, als de drivers er morgen zijn heb je er niets aan als Microsoft niet van plan is de licentie te regelen.
De technologie heeft Windows al in huis en er bestaan ARM laptops die idd een OEM license krijgen. Technisch kan je dus ook perfect al een ARM image downloaden en installeren. Het lijkt me ook een beetje dat er weinig vraag naar is. Voorlopig geen reden om over te stappen. Ook geen software beschikbaar. Kip en ei.

x86 zelfbouw is ook poepsimpel, overal verkrijbaar. Zoek eens een losse ARM CPU en bijhorend moederbord? Áls een systeem dan toch op ARM draait is het prebuilt voor ofwel servers ofwel goedkope mobiele dingen. Beide komen met een OEM license.

Kip en ei. Als er vraag naar is lijkt me niet dat Microsoft retail licenses zou mijden,
Het gaat om het emuleren van 64-bit x86-software binnen Windows on ARM. Het OS zelf draait gewoon native. Het native draaien van Windows on ARM op een Apple M1 CPU moet Windows support voor bieden - wat Microsoft niet gaat doen (en apple overigens ook niet; drivers). Het is wel (voor nu) mogelijk om Windows 11 via virtualisatie te gebruiken (1), (2), (3). Daarnaast gaat Microsoft ook alleen Windows on ARM licenties uitgeven aan OEM's.

[Reactie gewijzigd door lennardrk op 22 juli 2024 20:43]

ARM64EC is een zogenaamde 'fat binary'? Net zoiets als op macOS, waar je in principe PowerPC, x86, x86_64 en AArch64{e,} in één app kan combineren.
Nee. ARM64EC is ARM code op een manier gecompileerd is dat het op runtime het gedrag heeft van Windows-X64 code. Hierdoor kan er in een memory space zowel ARM64 code, als ge-emuleerde X64 code gedraaid worden die hetzelfde ram eenvoudig kan benaderen.

Dit haalt veel werk bij de emulatie tools weg, wat weer goed is voor de performance.

Developers kunnen dan gewoon hun X64 code draaien op ARM, met het kleine performance critical deel in native ARM64... En verder in kleine stappen migreren.

[Reactie gewijzigd door rhuijben op 22 juli 2024 20:43]

Het is dus een pure 64-bit ARM Windows .exe, die ook ge-emuleerde Intel .dll's kan inladen?
Voor een exe wel. Maar het kan ook een geoptimaliseerde ARM dll zijn die door ge-emuleerde X64 applicaties geladen kan worden, zoals bijvoorbeeld een Photoshop/Excel plugin.

Het idee is dat je geleidelijk kan switchen... Windows dlls meteen, je belangrijkste deel van je app eerst en de rest later. Dit alles met het idee van al snel winst kunnen hebben
Biedt dit ook een achterdeurtje of uitbreiding van functionaliteit om windows op m1 macs te draaien, met of zonder kvms als vmware ?
technisch gezien is er geen blocking point om Windows te draaien binnen Fusion op een M1. Er is echter geen reguliere licentie beschikbaar vanuit Microsoft vandaar dat VMware het geen hoge prioriteit geeft om te ondersteunen.
MS volgt hier Apple, op hun toekomstige ARM platform alleen 64bits applicaties zoals het er uit ziet, en alleen met hun nieuwste OS.
Fijn dat Microsoft nog steeds investeert in hun producten op ARM machines. Ik hoop dat ze in de toekomst ook wat met de licenties doen waardoor je het bijvoorbeeld ook op Apple's M1 spul mag gebruiken.
Ik heb het gevoel dat ARM in de pc wereld komende jaren alleen maar verder gaat groeien.
Geef ze groot gelijk, de x64 emulatie op Windows 10 voor ARM was sowieso een testbed, en aangezien Windows 11 voor ARM nu de mainbranche is ga je niet nog extra moeite stoppen om het nog op de oude versie draaiende proberen te houden.

Op dit item kan niet meer gereageerd worden.