强行兼容

一般情况,软件是面向系统的 API 所开发的,即系统高高在上。不过,有时系统也要适配软件的各种请求,防止出错。

苹果系统的给开发者的感觉,相对高高在上,因为系统大版本更新,可能会让许多软件未更新的软件直接被下架(近年倒是更多考虑开发者了)。不过苹果还是有为软件做过兼容,只是相关研究较少,仅发现 macOS 为微信做过兼容。

有人在开源代码里找到 make_tapi_happy.h 文件,里面发现了苹果开发者对微信的吐槽「WeChat references this, only god knows why. This symbol does nothing.」(微信引用了它,只有天知道为什么。这个符号不执行任何操作。)

微软的 Windows,是这方面的能手。30 多年前,为 Windows 95 开发的软件,仍有可能在 Windows 11 上顺利运行,这离不开系统开发者的努力。具体来说,Windows 有维护 Shim 数据库,它记录了许多老旧软件的分辨率或文件重定向的修补方式,以注入、hook 等方式帮助软件正确运行。

Shim 有大量的功能,包含各个旧系统的模拟环境(可在软件属性的「兼容模式」调整),EmulateSlowCPU 降低 CPU 运行速度等。然后是 WoW64,这是 Windows 升级到 64 位系统后,留下的轻量级兼容层。WoW64 可以让过去 32 位的软件,继续在 64 位的系统里运行。

不过,现在的系统过于擅长做兼容,以至于被称作「强行兼容」(强兼)。比如各大手机系统可以与 iOS 分享文件,但需要下载「互联服务」「O+互联」等 app。各种类灵动岛功能,通常也并未直接合作,而是通过通知监听等手段所实现的。

#杂谈
 
 
Back to Top