Egy magát rejtélyesen csupán “Christina B.”-nek nevező hacker egy érdekes dologgal állt elő nemrég. Ennek segítségével talán a távoli vagy közeli jövőben lehetővé válna, hogy androidos készülékeinken (már ha van ilyenje annak, aki e sorokat olvassa) futtassuk az iOS-t, ahogy teszik azt némely reklámgrafikusok rendszeresen. 😉
Az iOS ugye a Mac OS X leszármazottja, ami pedig a méltán híres Unix-változat, a Berkeley Software Distribution (BSD) alapjaira épült, annak a kernelét az XNU és a Mach mikrokernelekkel ötvözve. Így született meg a Darwin rendszermag, amely mindmáig az OS X és az iOS lelke. Mivel mind a BSD, mind a Mach és az XNU jelentős nyílt forráskódú, szabad szoftveres múlttal rendelkezett, ezért (pontosabban a szabad szoftveres licenszekben lévő jogi megkötések miatt) az Apple elérhetővé tette az iOS és az OS X alapjai forrásának legnagyobb részét. Ezeket felhasználva készítette el Christina B. a Magenta projektet. Ez magának a Darwin kernelnek és néhány szükséges kiegészítő – userland, tehát a kernellel együttműködő, de nem kernelszintű – komponensnek az implementációja, mindez egy linuxos rendszeren futtatható formában (tehát gyakorlatilag hasonló technológia ez, mintha egy emulátor lenne, azonban itt ténylegesen egy második operációs rendszer fut az elsőn).
Mi van készen eddig?
Csak a legalapvetőbb részek, ami elengedhetetlenül fontos az iOS rendszer futtatásához. Ez a következő komponenseket jelenti:
- Teljes ABI-kompatibilitás az iOS 5-tel
- kernel (Darwin/BSD)
- alapvető szoftverkönyvtárak (library-k): libSystem, benne libc, libmath, libunwind, libsystem_blocks, libstdc++, libobjc (ezek szerint teljeskörű C-, C++- és Objective-C-támogatásra számíthatunk!), CoreFoundation, libc++abi, libicucore és libncurses (a terminálos/parancssoros eléréshez)
Fontos megjegyezni, hogy a libc (standard C szoftverkönyvtár) kivételével minden Darwinra van fordítva, tehát tulajdonképpen (az emulációtól eltekintve) natív. A libc csupán azért van Linuxra fordítva, mivel ez működik kapocsként a mögöttes Linux rendszer és a futtatott Darwin között.
A projekt végső célja a készítő szerint az, hogy legalább az iPhone OS 1.0 teljesen reprodukálható legyen. Ez nem lehet túl nehéz annak fényében, hogy rengeteg nyílt szoftver van azok helyett az Apple-specifikus komponensek helyett, amelyek az iOS-t felépítik (erre a legjellemzőbb példa a különböző grafikus és multimédia-kezelő szoftverek; Christina javaslata szerint például az iOS grafikájának alapját képező CoreGraphics implementálható lenne a mai modern Linux-alapú rendszerek felhasználói felületét alkotó Cairo segítségével).
Hol lehet letölteni?
A projekt teljes forráskódja a http://crna.cc/magenta_source.html oldalon érhető el. Ez tartalmazza a kernelt, a linkert, illetve a fentebb már említett könyvtárakat (Objective-C runtime, CoreFoundation, etc.)
Mit várhatunk még?
Bár a készítő leírja: a Magenta célja nem az, hogy iOS-alkalmazásokat futtathassunk az androidos telefonjainkon, mivel nagyon nehéz a magasabb szintű könyvtárakat száz százalékban kompatibilisre megírni, ennek ellenére ígéretes lehet ez a projekt ilyen téren is. Gondoljunk csak arra például, hogy a Mac OS X-ben lévő mintegy 31 keretrendszert (“framework”) is elkészítették nyílt forráskódú változatban: ez a Cocotron. Esetleg ennek az iOS-re történő portolásával megoldható lenne az, hogy egy napon kedvenc iOS-alkalmazásunkat speciális hardver nélkül is használhassuk?
No comment yet, add your voice below!