imagazin arrow2-left arrow2-right arrow2-top arrow-up arrow-down arrow-left arrow-right cart close dossiers education fb instagram menu notification oander rss rss-footer search service shuffle speech-bubble star store stores tests twitter youtube

Kezünkben az iPhone XS és iPhone XS Max!

Nézd meg és olvasd el első benyomásainkat!

Hogyan mehetett ilyen simán az Apple Watch appok 64 bites átállása?


Az Apple Watch Series 4 rengeteg újdonságot hozott. Többek között új processzort is, ami az addigi 32 bit helyett 64 bites architektúrával operál. Minek köszönhető, hogy szemben az iOS-szel vagy a macOS-szel, az átállás egy pillanat alatt megtörtént?

Bizonyára még emlékeztek, hogy nem is olyan régen, az iOS 11 megjelenésével több mint 180 ezer alkalmazás vált egy pillanat alatt használhatatlanná. Mindennek egyetlen prózai oka volt: az iOS 11 többé nem támogatta a 32 bites alkalmazásokat, így amelyiket nem frissítette a fejlesztő, az mehetett a süllyesztőbe. Hasonló radikális átállás volt tapasztalható macOS-en is.

Felmerül a kérdés, hogy az Apple Watch hogyan kerülhette el ezt a tisztítótüzet?

Az a helyzet ugyanis, hogy a most bemutatott Apple Watch Series 4 már 64 bites processzort kapott, az okosóra történetében először. A watchOS-re fejlesztőknek azonban még a kisujjukat sem kellett megmozdítaniuk, hogy alkalmazásuk támogatott maradjon az új órával, az átállás egy pillanat alatt lezajlott. Hogyan lehetséges ez?

Nos, nem vagyok fejlesztő, így a magyarázat lehet, hogy nem állja majd meg teljesen a helyét, de azért megpróbálkozom vele (aki meg ért hozzá, az javítson ki nyugodtan kommentben). Röviden a dolog hátterében az áll, hogy az Apple jóelőre egy igen okos megoldás használatára kényszerítette a Watch-fejlesztőket. Olyanra, ami iOS-en és macOS-en csak opcionális volt, watchOS-en (és tvOS-en) viszont kötelező.

Kezdjük azzal, hogy mi az az úgynevezett alacsony szintű virtuális gép, vagy ismertebb nevén Low Level Virtual Machine (LLVM). Nagyon röviden ez egy fordítóprogram-könyvtár, amit arra használnak, hogy egy kódot lefordítsanak közvetítő, vagy gépi kódra.

Gépi kód – az mi? Hogy egy kis kulturális utalást is elsüthessek: ez a Mátrix. Egyesek és nullák sorozata, azaz a gép számára olvasható műveletek és adatok sora. Csak és kizárólag ezt tudják értelmezni értelmezni a hagyományos számítógépek processzorai.

Ez mondjuk pont nem egyesek és nullák sorozata, de értitek gondolom, miről van szó…

Innen pedig már érthető is, hogy miért van szükség fordítóprogramra: az emberek számára a gépi kód olvasása jóformán lehetetlen, de legalábbis baromi kényelmetlen és macerás (kivéve ugye a Mátrixban). Pontosan ezért találták ki a programozási nyelveket, amelyeken sokkal befogadhatóbb formában adhatnak utasításokat az emberek a gépeknek. Igen ám, csakhogy a programnyelveken írt kód „nyersen“ nem olvasható a gép számára, szükség van egy tolmácsra, aki lefordítja azt gépi nyelvre, azaz egyesekre és nullákra. Ilyen a LLVM.

Az LLVM tehát két részből áll. Van egyrészt a „front end“ része, ami az adott programnyelv, amiben az alkalmazást írták, például Swift. És van egy „back end“ része, ami elvégzi a fordítást erről a nyelvről gépi kódra. Az Apple azonban bonyolított kicsit a dolgon és 2015 novemberében bevezette a Bitcode nevezetű közvetítőnyelvet az Xcode-ba. A bonyolítás azonban nem volt felesleges, ennek köszönhető a mostani zökkenőmentes átállás.

A közvetítő nyelv, ahogy azt a nevéből is sejteni lehet a front és a back end közé ékelődik. Feladata, hogy segítségével a gépi nyelvre történő fordítás/újrafordítás könnyebben kivitelezhető, rugalmasabb legyen. A Bitcode tehát arra használja az LLVM-et, hogy fogja az alkalmazás fejlesztő által megírt kódját, azt először átfordítsa Bitcode-ra, majd egy használható, végrehajtható appot kovácsoljon belőle a megadott instrukciók alapján. Egyfajta pufferként működik tehát a humán és a gépi kód között.

Amikor az Apple Watch 64 bites processzort kapott, akkor az új architektúrához másfajta gépi kódra, azaz másfajta fordításra lett szükség ahhoz, hogy az alkalmazások működhessenek. Közvetítő nyelv nélkül ez a folyamat igényelte volna a fejlesztők energiáját, pont mint iOS-en és macOS-en.

A Bitcode-nak köszönhetően viszont a fejlesztőknek az ég egy adta világon nem kellett semmit se csinálniuk 32 bites alkalmazásaik kódjával, elég volt csak a Bitcode – gépi kód fordítási instrukcióit átparamétereznie az Apple-nek, ahhoz, hogy az újrafordítás különösebb beavatkozás nélkül végbemehessen.

Mivel a Bitcode használata kötelező volt a fejlesztők számára már a kezdetek óta, ezért a felhasználói oldalon tényleg csak annyi volt érzékelhető, hogy minden alkalmazás ugyanúgy megy, csak még kicsit gyorsabban is.

Mindezt 3 éves előrelátással. Egész ügyes…

Forrás: Venturebeat, Quora

iPhone XS | Részletre is

Ezt már olvastad?

A Sirinek ez is az egyik baja, hogy mindenki a célközönség. Valószínűleg hatékonyabb lenne, ha először jól működő modulokat hoznának létre egy-egy funkcióra szabva.

Miért nem ismeri anyanyelvünket az Apple virtuális asszisztense? - Klikk ide!