據(jù)外媒 9to5mac 報(bào)道,iOS 14.2 現(xiàn)已引入 JIT編譯支持。
什么是 JIT?
正如字面意思,JIT—— just in time,即時(shí)編譯。如果一個(gè)程序在它運(yùn)行的時(shí)候創(chuàng)建并且運(yùn)行了全新的代碼,而非那些最初作為這個(gè)程序的一部分保存在硬盤上的固有的代碼,即為 JIT。
說(shuō)人話:JIT可以在固有代碼的基礎(chǔ)上生成新的代碼,并自己運(yùn)行新生成的代碼。
有什么意義?
雖然蘋果沒有特意提到,但通過(guò)外媒 9to5mac 今日?qǐng)?bào)道,可確認(rèn) iOS 14.2 中已引入 JIT編譯支持特性。
在此之前,網(wǎng)傳最廣的說(shuō)法是,由于審查等敏感問(wèn)題,蘋果不提供修改內(nèi)存頁(yè)面的訪問(wèn)權(quán)限的 API,也禁止對(duì) POSIX 函數(shù) mprotect()的調(diào)用,所以也無(wú)法實(shí)現(xiàn) JIT。簡(jiǎn)單來(lái)說(shuō),IOS 封禁了內(nèi)存(或者堆)的可執(zhí)行權(quán)限,從而從根本上干掉了 JIT的存在。
雖然蘋果一直不支持 JIT,但一些開發(fā)人員已實(shí)現(xiàn)通過(guò) hack 途徑達(dá)成 JIT的特性,但這會(huì)影響 App 運(yùn)行的效率并帶來(lái)玄學(xué) bug。此外,這種漏洞在 iOS 14 中已被封殺。
而現(xiàn)在蘋果在 iOS 14.2 中默默推出 JIT的原因是?
不知道,但不可否認(rèn)的是,這將為仿真應(yīng)用(非官方 App)在 iPhone 和 iPad 上全速運(yùn)行提供了可能。
正文
外媒就此采訪了開發(fā)者 Testut,她表示蘋果實(shí)際上已在 Beta 版本中加入了 JIT支持,且保留到正式版本中,雖然一句話沒有提,但這大概率是蘋果官方表態(tài)而非 bug。
借助 iOS 14.2 上的 JIT編譯支持,仿真應(yīng)用現(xiàn)在可以在 iOS 中全速運(yùn)行,而不會(huì)受到攻擊和其他損失。
“例如,JITDelta 可以模擬更強(qiáng)大的系統(tǒng),比如?PS2,GameCube 和 Wii。如果沒有 JIT,開發(fā)者們將需要再等幾年,才能使硬件具備此功能。起初我對(duì)此表示懷疑,但現(xiàn)在更傾向于認(rèn)為這是蘋果有意的更改?!?/p>
但是,這并不意味著用戶會(huì)在 App Store 中看到仿真應(yīng)用,用戶甚至看不到任何使用 JIT的應(yīng)用程序。Testut 表示,當(dāng)前的實(shí)現(xiàn)方法僅適用于側(cè)面加載的應(yīng)用,這些應(yīng)用通常是通過(guò) Xcode 和其他開發(fā)人員工具而非 App Store 安裝的。換句話說(shuō),這是供專門的開發(fā)人員調(diào)試 App 所使用的功能。
“我懷疑將 JIT限制為僅側(cè)加載的應(yīng)用是其背后的意圖(而且更可能與使用 Xcode 進(jìn)行調(diào)試時(shí)應(yīng)用運(yùn)行未簽名代碼的需求有關(guān)),但是我很想知道這種限制是否會(huì)長(zhǎng)期存在?!?/p>
責(zé)任編輯:PSY
-
仿真
+關(guān)注
關(guān)注
50文章
4023瀏覽量
133341 -
iOS
+關(guān)注
關(guān)注
8文章
3393瀏覽量
150369 -
源代碼
+關(guān)注
關(guān)注
96文章
2943瀏覽量
66619 -
JIT
+關(guān)注
關(guān)注
0文章
7瀏覽量
9723
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論