Windows je oduvijek bio napravljen za x86 procesore iz Intela i AMD-a, ali otkako se Windows RT pojavio prije deset godina za pametne telefone, operativni sustav polako postaje prijateljskiji prema Armovim rješenjima.
Stoga ne čudi da danas Windows 10 i Windows 11 nude potpunu podršku za Arm proceo, ali postoji jedna kvaka. Dok sam operativni sustav radi sasvim dobro na ovim procesorima, većina aplikacija ipak nije kompatibilna. Srećom, Microsoft ima jedan adut - emulator za pokretanje x86 aplikacija na uređajima koji se temelje na Armu.
Pojavio se 2017. i sve je popularniji. Ideja oponašanja koda napravljenog za jednu vrstu procesora kako bi se mogao izvoditi na drugoj nije ništa novo. Kada pokrenete x86 aplikaciju na Arm računalu, Windows uzima blokove koda aplikacije i kompajlira ga u nešto što može raditi na Arm čipu. Sve se to radi u stvarnom vremenu, a Windows mora predmemorirati sav kod koji je preveden, što znači da se ne mora uvijek iznova prevoditi.
Nažalost, performanse će biti lošije na emuliranim aplikacijama u usporedbi s kodom dizajniranim za hardver. Teško je reći koliko performansi gubite pokretanjem emuliranog koda na Windowsima jer su podaci testiranja vrlo rijetki, ali za usporedbu, Appleov prevoditelj Rosetta 2, koji također prevodi x86 aplikacije u Arm, gubi oko 20 posto. Moguće je smanjiti taj broj, ali obično emulacija rezultira lošijom izvedbom od originala.
Možda se pitate zašto uopće toliko problema. Arm se uglavnom koristio za pametne telefone, a preklapanje softvera za računala i softvera za telefone vrlo je malo. Većina programa napravljena je za x86 ili Arm.
Ima još jedno pitanje... Prošlo je desetak godina otkako je Windows počeo podržavati Arm, pa gdje su sve izvorne aplikacije? Primarni problem je da je potrebno vrijeme i stručnost za ponovno pisanje softvera za drugačiji ISA, pogotovo ako programeri žele to učiniti dobro. Programeri koji ne poduzmu odgovarajuću brigu o prijenosu aplikacije s jednog ISA-a na drugi mogu rezultirati smetnjama i greškama.
Sjajan primjer za to je Photoshop za Windows on Arm. Izvorno radi na Windows on Armu, no ima nekoliko grešaka i puno upozorenja da OpenCL i OpenGL nisu podržani. Zajedno s puno manjom bazom korisnika koji koriste Arm na Windowsima, manje je poticaja za developere da se uopće posvete ovome.
Dakle, u takvoj situaciji alternativa je emulacija. Iako prevođenje x86 aplikacija za Windows na Armu nije savršeno, impresivno je da uopće radi i ponekad je vrijedno gubitka performansi.