據(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è)程序的一部分保存在硬盤(pán)上的固有的代碼,即為 JIT。
說(shuō)人話(huà):JIT可以在固有代碼的基礎(chǔ)上生成新的代碼,并自己運(yùn)行新生成的代碼。
有什么意義?
雖然蘋(píng)果沒(méi)有特意提到,但通過(guò)外媒 9to5mac 今日?qǐng)?bào)道,可確認(rèn) iOS 14.2 中已引入 JIT編譯支持特性。
在此之前,網(wǎng)傳最廣的說(shuō)法是,由于審查等敏感問(wèn)題,蘋(píng)果不提供修改內(nèi)存頁(yè)面的訪(fǎng)問(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的存在。
雖然蘋(píng)果一直不支持 JIT,但一些開(kāi)發(fā)人員已實(shí)現(xiàn)通過(guò) hack 途徑達(dá)成 JIT的特性,但這會(huì)影響 App 運(yùn)行的效率并帶來(lái)玄學(xué) bug。此外,這種漏洞在 iOS 14 中已被封殺。
而現(xiàn)在蘋(píng)果在 iOS 14.2 中默默推出 JIT的原因是?
不知道,但不可否認(rèn)的是,這將為仿真應(yīng)用(非官方 App)在 iPhone 和 iPad 上全速運(yùn)行提供了可能。
正文
外媒就此采訪(fǎng)了開(kāi)發(fā)者 Testut,她表示蘋(píng)果實(shí)際上已在 Beta 版本中加入了 JIT支持,且保留到正式版本中,雖然一句話(huà)沒(méi)有提,但這大概率是蘋(píng)果官方表態(tài)而非 bug。
借助 iOS 14.2 上的 JIT編譯支持,仿真應(yīng)用現(xiàn)在可以在 iOS 中全速運(yùn)行,而不會(huì)受到攻擊和其他損失。
“例如,JITDelta 可以模擬更強(qiáng)大的系統(tǒng),比如?PS2,GameCube 和 Wii。如果沒(méi)有 JIT,開(kāi)發(fā)者們將需要再等幾年,才能使硬件具備此功能。起初我對(duì)此表示懷疑,但現(xiàn)在更傾向于認(rèn)為這是蘋(píng)果有意的更改?!?/p>
但是,這并不意味著用戶(hù)會(huì)在 App Store 中看到仿真應(yīng)用,用戶(hù)甚至看不到任何使用 JIT的應(yīng)用程序。Testut 表示,當(dāng)前的實(shí)現(xiàn)方法僅適用于側(cè)面加載的應(yīng)用,這些應(yīng)用通常是通過(guò) Xcode 和其他開(kāi)發(fā)人員工具而非 App Store 安裝的。換句話(huà)說(shuō),這是供專(zhuān)門(mén)的開(kāi)發(fā)人員調(diào)試 App 所使用的功能。
“我懷疑將 JIT限制為僅側(cè)加載的應(yīng)用是其背后的意圖(而且更可能與使用 Xcode 進(jìn)行調(diào)試時(shí)應(yīng)用運(yùn)行未簽名代碼的需求有關(guān)),但是我很想知道這種限制是否會(huì)長(zhǎng)期存在。”
責(zé)任編輯:PSY
-
仿真
+關(guān)注
關(guān)注
54文章
4491瀏覽量
138368 -
iOS
+關(guān)注
關(guān)注
8文章
3401瀏覽量
155529 -
源代碼
+關(guān)注
關(guān)注
96文章
2953瀏覽量
70384 -
JIT
+關(guān)注
關(guān)注
0文章
7瀏覽量
9882
發(fā)布評(píng)論請(qǐng)先 登錄
一文詳解SystemC仿真庫(kù)的編譯
引入AGV可節(jié)省哪些成本?
【產(chǎn)品介紹】Questa One Sim軟件
CANoe與Simulink聯(lián)合仿真編譯失敗
【產(chǎn)品介紹】Modelsim:HDL語(yǔ)言仿真軟件
Arm Neoverse CPU上大代碼量Java應(yīng)用的性能測(cè)試
E203仿真編譯filelist的使用
邊緣設(shè)備AI部署:編譯器如何實(shí)現(xiàn)輕量化與高性能?
輪邊電機(jī)驅(qū)動(dòng)汽車(chē)性能仿真與控制方法的研究
【經(jīng)驗(yàn)分享】在Omni3576上編譯Redis-8.0.2源碼,并安裝及性能測(cè)試
新品 | 服務(wù):InfineonSpice 離線(xiàn)仿真工具
CY7C65215使用IOS中的USB CDC UART類(lèi)驅(qū)動(dòng)程序是否可以與IOS一起工作?
概倫電子先進(jìn)數(shù)字仿真器VeriSim介紹
請(qǐng)問(wèn)TapLinx IOS SDK與Xcode 16不兼容嗎?
大規(guī)模硬件仿真系統(tǒng)的編譯挑戰(zhàn)
iOS 14.2 引入JIT編譯 仿真應(yīng)用可具有更佳性能
評(píng)論