:

Szerző: Bizó Dániel

2010. október 8. 08:34

ARM chipeken is futhatnak a Windows-alkalmazások

Immár ARM architektúrán is futhat a Wine, miután az 1.3.4 kiadás teljessé tette a támogatást. Az elsődleges cél jelenleg, hogy könnyűvé tegye a multiplatform fejlesztést Windows programozók számára is, emulátorral együtt azonban lehetségessé válhat az x86/Windows desktop alkalmazások futása is.

Gyors multiplatform fejlesztés

A napokban megérkezett a Wine (Wine Is Not an Emulator) legújabb, 1.3.4 verziószámot viselő fejlesztői kiadása, amely szokás szerint számos javítást és fejlesztést hozott magával, ugyanakkor messze a legérdekesebb az ARM utasításkészlet-architektúra támogatásának kiteljesedése. Az utolsó fázisban a Winelib portja készült el, ami lehetővé teszi, hogy ARM processzorokon is fusson a Windows 32 API-kat is implementáló szoftverréteg.

A Winelib alkalmazásfejlesztői eszközkészlet lehetővé teszi, hogy a Windows platformra írt C vagy C++ forráskódot jó eséllyel le tudjuk fordítani, hogy fusson az adott Winelib verzión. Az újrafordítással a fejlesztők stabil működést, és a Linux/UNIX környezettel történő szorosabb integrációt tudják biztosítani.

A Winelib ARM architektúrára készített változata önmagában nem elég ahhoz, hogy windowsos alkalmazásokat változtatás nélkül futtassunk, hiszen az x86 utasításkészletet feltételez. Az újrafordítással ugyanakkor lehetővé válik a kód gyors, viszonylag egyszerű portolása, ha nem használ olyan specifikus hívásokat, mint a COM, amely többek közt az alkalmazások közti adatcserét teszi lehetővé. Az ARM-ra történő mozgatás előtt további akadály lehet az Intel- vagy  AMD-specifikus utasítások használata, mint például az SSE vektorműveleteké. Ha szükségesek is módosítások, ezek sokkal kisebbek és egyszerűbbek, mint a teljes kódot portolni natív Linux/UNIX környezetben történő futásra.

Út nyílhat az ARM előtt

A Wine 1.3.4 nem stabil kiadás, így éles üzemben történő használata ellenjavallott. Az ARM támogatás megjelenése ugyanakkor kétségtelenül izgalmas lehetőségeket vázol fel, még akkor is, ha a nyílt forrású szoftvernek még hosszú időbe telhet, mire bevethető szintre érleli az ARM architektúrán történő alkalmazásfuttatást. Elméletileg nincs akadálya annak, hogy natív x86/Windows kódot futtatni lehessen ARM/Linux rétegen használni, a Wine ugyanakkor nem képes utasításkészletek közti fordításra, mivel a Windows-Linux megfeleltetés megoldására koncentrált, x86 processzorokon.

Kísérletek már történtek arra, hogy QEMU emulátorral ezt áthidalják, a teljes hardveremuláció azonban rendkívül alacsony hatékonyságú teljesítmény szempontjából, így vélhetően legalább hibrid, részlegesen emulált, részlegesen dinamikusan fordított megoldásra volna szükséges az elfogadható sebességű futáshoz. Egy ilyen fejlesztési erőfeszítéshez valószínűleg komoly vállalati támogatás volna szükséges, például az ARM processzorokat fejlesztők részéről, mivel számukra a Windowszal való inkompatibilitás a PC-piaci siker előtti legnagyobb gátak egyike - igaz, őket valószínűleg a Windows operációs rendszer futtatása érdekelné jobban, nem csak az alkalmazásoké.

Ünnepi mix a bértranszparenciától a kódoló vezetőkig

Négy IT karrierrel kapcsolatos, érdekes témát csomagoltunk a karácsonyfa alá.

Ünnepi mix a bértranszparenciától a kódoló vezetőkig Négy IT karrierrel kapcsolatos, érdekes témát csomagoltunk a karácsonyfa alá.

A hardver- és szoftverplatformok közti szabad átjárás nem újdonság, hasonló mutatványra kereskedelmi szoftverek évek óta képesek, éles üzemben bizonyítottak. Az IBM által felvásárolt Transitive például nagy teljesítménnyel futtatta a SPARC/Solaris kódokat Itanium/Linux platformon is, de az IBM Power gépein is tud ezzel a technológiával x86/Linux kódokat fogadni. A Transitive tette lehetővé az Apple számára, hogy viszonylag fájdalommentesen tudjon átmigrálni PowerPC hardverről Intel processzorokra.

Igaz, kétséges, mennyire ésszerű egyáltalán belevágni ilyen irányú fejlesztésekbe, hiszen az eddigi referenciák esetén a célplatform mindig sokkal erőteljesebb hardverrel rendelkezett, mint a forrás - az Intel processzorai lelépték a G5 chipeket, az Itanium magjai is jóval potensebbek voltak MIPS vagy az UlraSPARC processzoroknál. Mindez lehetővé tette, hogy a dinamikus fordítás jelentette futásidejű költségeket ellensúlyozva a forrás platform natív sebességéhez közeli, vagy akár feletti teljesítményt érjünk el. Az ARM chipek esetében azonban éppen fordított a helyzet, olcsóbbak és kevesebbet fogyasztanak az x86 processzoroknál, de éppen emiatt felépítésük annál sokkal kevésbé erőteljes.

a címlapról