11月7日,据外媒9to5mac披露,iOS 14.2系统现已正式引入JIT编译支持功能。
什么是JIT?
JIT即“Just In Time”的缩写,意为即时编译。它指的是在程序运行过程中动态生成并执行新代码,而不是仅调用预先存储在设备中的固定代码。
通俗来说,JIT技术能够在原有代码的基础上实时生成优化后的新指令,并直接执行这些新生成的代码段。
这项技术有何意义?
尽管苹果官方并未在更新说明中特别强调,但9to5mac的报道证实了JIT编译功能已在iOS 14.2中实现。
此前业界普遍认为,出于安全审查等因素考虑,苹果系统一直禁止修改内存页面权限的API调用,包括封禁对POSIX函数mprotect()的使用,这从根本上阻断了JIT技术的实现路径。简而言之,iOS系统通过禁止内存区域获得可执行权限,彻底杜绝了JIT的运行环境。
虽然开发者曾通过非正规手段实现过类似JIT的功能,但这种方式会导致应用运行效率下降并出现各种不稳定现象。值得注意的是,这类漏洞在iOS 14系统中已被彻底修复。
苹果为何选择在iOS 14.2中悄然引入JIT?
具体原因尚不明确,但可以确定的是,这项改动将为非官方仿真类应用在iPhone和iPad设备上实现全速运行创造可能。
技术详情
开发者Testut在接受采访时透露,JIT支持功能其实早已出现在iOS 14.2的测试版本中,并最终被保留至正式版。虽然官方未作说明,但这很可能是苹果的主动调整而非系统漏洞。
借助iOS 14.2的JIT编译支持,仿真应用现在可以在不牺牲性能的前提下全速运行,同时避免安全风险。
“以Delta模拟器为例,现在能够流畅模拟PS2、GameCube和Wii等更高性能的游戏系统。若没有JIT技术,开发者可能需要等待硬件性能进一步提升才能实现相同效果。最初我对这个改动持怀疑态度,但现在更倾向于认为这是苹果的 intentional design。”
需要注意的是,这并不意味着App Store会上架仿真类应用,普通用户甚至很难察觉到哪些应用使用了JIT技术。Testut补充说明,目前该功能仅适用于通过侧载方式安装的应用,即通过Xcode等开发工具而非App Store安装的应用程序。换言之,这项特性主要面向开发者进行应用调试。
“我认为将JIT功能限定于侧载应用可能是苹果的 intentional design(或许与Xcode调试时需要运行未签名代码的需求有关),但很好奇这种限制是否会长期存在。”
相关演示
以下是关于AltStore的详细介绍与功能演示视频:
