Szerző: Budai Péter

2004. szeptember 17. 12:06

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.

Vannak esetek, amikor nulláról induló cégek olyan technológiai innovációt képesek véghezvinni, mellyel hamar bekerülnek az informatikai piac közepes méretű szereplői közé, esetleg egy nagy hal felvásárolja őket. Így történt ez a VMware esetében is, és nagy valószínűséggel ez lesz a Transitive sorsa is. A Transitive 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.

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.

Szólj hozzá a fórumban!

Nagyon széles az a skála, amin az állásinterjú visszajelzések tartalmi minősége mozog: túl rövid, túl hosszú, semmitmondó, értelmetlen vagy semmi. A friss heti kraftie hírlevélben ezt jártuk körül. Ha tetszett a cikk, iratkozz fel, és minden héten elküldjük emailben a legfrissebbet!

a címlapról