QuickTransit: alkalmazások minden platformra?
Az eddig teljesen ismeretlen Transitive szoftvercég olyan technológiát dolgozott ki, mellyel a szoftverek számára már nem jelentenek akadályt a különféle hardver- és szoftverplatformok közti különbségek, portolás nélkül szállíthatóak egyik környezetből a másikba. Cikkünkben bemutatjuk az áttörő jelentőségűnek ígérkező megoldás működését.
Az ehhez szükséges megoldás QuickTransit névre hallgat, és nagyban eltér a jelenleg elérhető hardver-virtualizációs technológiáktól, mint amilyenek például a VMware termékei, vagy a Microsoft Virtual PC/Server. Ezek a szoftverek gyakorlatilag emulátorok, amik egy olyan alkalmazást vagy szolgáltatást képesek futtatni, ami egy az egyben lemodellez egy PC-t. Utána ezzel tetszés szerint tehetünk bármit, amit egy fizikai számítógéppel is tennénk: telepíthetünk rá operációs rendszert, futtathatunk rajta alkalmazásokat, és csatlakoztathatjuk a hálózathoz is.
A QuickTransit ezzel szemben azt vállalja, hogy bármilyen platformra írt szoftver -- legyen az akár x86, MIPS, mainframe, vagy POWER/PowerPC alapú hardverplatform; Unix/Linux, Mac OS, vagy éppen Windows -- bármely másik platformon futtatható segítségével, ráadásul jelentős teljesítménycsökkenés nélkül. A megoldás kitalálója, és kezdetben fejlesztője a Manchesteri Egyetem számítástudomány-professzora, Alasdair Rawsthorne volt, aki a Transitive informatikai vezetője és alapítója is egyben. A QuckTransit alapjául szolgáló technológia gyökerei egészen 1992-ig vezethetőek vissza, magának a QuickTransitnak a fejlesztése 1995-ben kezdődött. A Transitive vállalatot 2000-ben alapították.
A Transitive állításai szerint megoldásával megszüntethető az alkalmazások portolásának szükségessége, és ezáltal a legapróbb módosítások nélkül lehet egy alkalmazást tetszőleges platformon futtatni. Bob Wiederhold, a Transitive vezérigazgatója nagy meglepetést keltve elmondta, hogy a következő generációs Xbox konzol -- ami PowerPC processzorokra, és ATI grafikus vezérlőre épül -- a QuickTransit segítségével futtathatja az Intel architektúrájú, korábbi Xboxra írt játékokat is. Kérdéses, hogy kijelentése kizárólag lehetőségként veti fel az Xboxot, és ezáltal a Microsofttal kötendő partnerséget, vagy ténylegesen születtek megállapodások a technológia konzolban történő használatára. Ugyanakkor az NVIDIA korábban azt közölte az Xbox visszafelé kompatibilitásáról, hogy annak megvalósítása nagy valószínűséggel nem lehetséges a cég szellemi tulajdonának megsértése nélkül, hiszen a most kapható Xbox konzolban az NVIDIA több hardvermodulja is található.
A vállalat az iparág elemzőinek és a sajtónak tartott bemutatóján a Quake III linuxos verzióját futtatta egy Apple PowerBookon. A résztvevők beszámolói szerint tökéletes sebességgel futott, és nem látszott lényeges különbség az eredeti platformhoz képest. Wiederhold kiemelte, hogy a szoftver egyik legfontosabb tulajdonsága, hogy kifejezetten teljesítményre optimalizált, amit egy különleges, folyamatos kódoptimalizációt végző modul segítségével érnek el. A Transitive Wiederhold bejelentése szerint már hat PC-gyártóval partneri kapcsolatban áll, de megnevezni nem óhajtotta őket. Vélhetően a Microsoft nincs közöttük, ezáltal az Xboxszal kapcsolatos pletykák sem nyertek még megerősítést. Az első partner megnevezése még ebben az évben várható.
A QuickTransit elsődleges célterülete a nagyvállalati szoftverek, ezen belül leginkább a mainframe-ek piaca, hogy a meglévő, de kizárólag elavult platformokon futtatható üzleti alkalmazásokat a mai, korszerűbb és akár tízszer gyorsabb gépeken is használni lehessen. A vállalat emellett az asztali PC-k és a szórakoztató-elektronikai eszközök szegmensét is megcélozza termékeivel, de erre érezhetően kisebb hangsúlyt fektet. A közeljövőben nem kizárt, hogy bármely két platform szoftverei között átjárást fog biztosítani a QuickTransit technológia.
Érdekesség, hogy a ma elérhető virtualizációs technológiák gyatra 3D hardvergyorsítási lehetőségeit is messze túlszárnyalja a QuickTransit, és száz százalékos kompatibilitás mellett meglehetősen nagy sebességgel futtatja a szoftvereket. Jim Turley, aki elemzőként részt vett a bemutatón, így számolt be az eseményről: "Nagyon meggyőző volt. Figyelemreméltó, mivel [működés közben] jelentéktelennek tűnt a háttérben futó technológia: egyszerűen csak működik!" Turley azt is elmesélte, hogy bemutattak egy Gimpet -- az egyik legelismertebb linuxos képszerkesztő alkalmazást -- futtató Windows operációs rendszert is, és több processzorgyilkos mutatványt végeztettek el a szoftverrel. "Arra számítottam, hogy akadozni fog, vagy lesz valami jele annak, hogy ez nem egy natív alkalmazás, de nem ez volt a helyzet. Semmi megakadás nem látszott. Teljesen normálisnak tűnt, és rettentően gyorsan reagált [a szoftver]" -- tette hozzá Turley.
Rob Enderle, az Enderle Group elemzője úgy véli, hogy a Transitive azért képes profitálni technológiájából, mert a mai számítógépek teljesítménye mellett nem okoz jelentős problémát más platformok gyors emulációja. "Általában az emulációval jelentősen csökken a sebesség. A Transitive legnagyobb áttörése, hogy mindezt sokkal hatékonyabban teszi... de mivel hatalmas számítási kapacitást igényelnek a natív szoftverek is, így nem okozhat különösebb problémát a szoftverek más platformon történő futtatása sem. A tapasztaltabb felhasználók észrevehetik a különbséget, de a felhasználók fennmaradó 95 százaléka nagy valószínűséggel nem" -- nyilatkozta Enderle.
[oldal:A megoldás működése]
A QuickTransit a forráskód és a bináris fájl módosítása nélkül teszi lehetővé, hogy az bármely processzor-operációs rendszer pároson fusson. Ennek elérése érdekében a QuickTransit egy négy fő részből álló, moduláris hardver-virtualizációs technológiát fejlesztett ki. Ennek első összetevője az Integration FUSE, ami a QuickTransit operációs rendszerbe történő integrációját végzi, a második pedig a Dynamic Binary Translator, ami a platformok utasításkészletének fordításáért felelős. A harmadik és negyedik komponens az operációs rendszer (Operating System Mapper) és a grafikus alrendszer (Graphics Mapper) hívásait fordítja le, hogy a futtatandó program által hívott utasítások olyan -- akár alapjaiban eltérő -- utasításokkal cserélődjenek ki a futás idejére, amit az éppen használt operációs rendszer megért.Az Integration FUSE az operációs rendszer részeként működik, csakúgy, mint a hagyományosan futtatott szoftverek. A statikus fordítókkal ellentétben -- amik az alkalmazás bináris állományát futás előtt egyszer fordítják le -- a QuickTransit a hívásokat futásidőben kezeli. Amikor egy, az operációs rendszer, vagy a platform számára idegen program indul el, a rendszer azonnal elindítja a QuickTransitot. Lehetőség van annak beállítására, hogy az idegen kód miként férhet hozzá a rendszer erőforrásaihoz, vagy más futó programokhoz, ezáltal két különböző platformra készített szoftver teljes körű integrációjának lehetősége is adott. Ez a megoldás szükséges ahhoz is, hogy a lefordított alkalmazás az operációs rendszer natív, grafikával kapcsolatos hívásait elérhesse. Az integrációs beállításoknál testre szabhatóak az alkalmazásfordítás optimalizációs és a cachelési lehetőségei is.
A Dynamic Binary Translator három almodulból áll, melyek mind a platformok közötti különbségek megszüntetéséért felelősek. Az első modul az a dekóder, ami a lefordítandó alkalmazás állományaiból kiolvassa az adatokat, és azokat az Intermediate Representation (IR) névvel ellátott köztes nyelvre alakítja át. Ez a lépés szükséges ahhoz, hogy a QuickTransit képet alkothasson a kód szándékairól, és ne byte-szinten kelljen kódot forgatnia, hanem komplett utasításcsoportokban.
A fordító második modulja az optimalizáló kernel, ami az IR kódot alakítja az adott platform számára értelmezhető kódsorozattá. Első lépésként egy általános, egyszerű optimalizáció történik meg a parancsok futtatása előtt. Utána, kihasználva, hogy átlagosan a kód 10 százaléka fut a futásidő 90 százalékában, a kernel a gyakran ismétlődő kódrészleteket további optimalizációnak veti alá, és azáltal az a programdarab a következő alkalommal már gyorsabban hajtódik végre. Az lefordított kódot a QuickTransit a memóriában tárolja, és mindig a frissebb, optimalizált verzióval cseréli le. Ellentétben a statikus fordítókkal, ez a megoldás az aktuális felhasználás alapján gyorsítja a végrehajtás sebességét, ezáltal a teljes alkalmazás optimalizálására nincs szükség.
A harmadik fordítómodul az elkészült parancsokat továbbítja a processzor felé. A különböző processzortípusok, így például a RISC, CISC és VLIW felépítésűek esetében a hatékonyság növelése érdekében más-más módon történik a processzor tényleges elérése, hiszen eltérő bennük például a címzés és a parancskiválasztás folyamata.
Az Operating System Mapper végzi a különféle operációs rendszerek metódushívásainak kölcsönös megfeleltetését. Jelenleg ez bármely két Unix/Linux operációs rendszer, valamint Unix/Linux és mainframe rendszerek között működik. Ennek működéséhez szükséges egy adatbázis, ami leírja, mely hívások mivel helyettesíthetőek a másik környezetben. Ennek módosítását és bővítését a felhasználó is elvégezheti. Mivel az operációs rendszerekben rengeteg API (Application Programming Interface) található, ezért ez az adatbázis nagy valószínűséggel közel sem teljes, és egyes esetekben szükségessé válhat a kézi beavatkozás, hogy a program életre keljen. Gyakorlatilag ez az a réteg, ahova a portolás feladatai átkerültek. Ugyanakkor nagy előnye, hogy a megfeleltetés elkészülte után az valamennyi, más platformról átvett program futtatásakor használható, ellentétben a hagyományos portolással, amikor minden alkalmazást egyenként kell átírni; ott nincs egységes réteg a fordítás lebonyolítására.
A Graphics Mapper ehhez nagyban hasonlít, annyi különbséggel, hogy a grafikai alrendszerekben lényegesen kevesebb hívás található, mint egy teljes operációs rendszerben. Ezáltal lehetségessé válik, hogy egy kiforrott megfeleltetési adatbázist hozzon létre a Transitive, ami arra is képes, hogy szükség esetén két eltérő hozzáállással felépített alrendszert összekössön egyedi transzformációs rutinok segítségével. Ez a megoldás teszi lehetővé, hogy a szoftverek kihasználhassák a futó rendszer grafikuskártyájának gyorsító funckióit is.
Összességében egy meglehetősen érdekes technológiával állunk szemben, és bár próbaverzió nem áll rendelkezésre, a nyilvánosságra hozott információk alapján képet alkothatunk jövőbeli hasznáról. A cég szoftverei hétfő óta vásárolhatóak meg; árukról nincs birtokunkban információ. A manapság használt hardver-virtualizációs megoldások, mint például a Virtual PC/Server továbbra is megtartja azt az előnyét a QuickTransittal szemben, hogy egyetlen gépen, párhuzamosan képes több operációs rendszer futtatására, és ezáltal tesztkörnyezet kialakítására, valamint szerverkonszolidáció szemszögből nézve kedvezőbb megoldást nyújtanak. A QuickTransit használatának viszont az a nagy előnye, hogy egyetlen operációs rendszer segítségével futtathatjuk a számunkra szükséges valamennyi szoftvert.