欢迎光临散文网 会员登陆 & 注册

Switch的Horizon OS浅层研究(从版权信息页&网络)

2023-08-11 18:02 作者:What_Damon  | 我要投稿

注意,本文章大多内容为基于网络信息和Switch的版权信息页得出的,其中还包括了不少的猜测,研究角度也并不是依据大气层的源码,因此可能存在错误,或与事实存在差异,千万不要以偏概全啊!

Switch的固件系统(Horizon OS)基于什么系统,网上各有个的想法,长期以来主要是两大阵营:

  • 基于FreeBSD

  • 0基础开发

的确,Switch的操作体验的确会给人一种0基础开发的感觉,如果你折腾过yuzu模拟器,你会发现16.0.2的固件也才区区300MB多一些,而2016年的FreeBSD 10.3,bootonly的安装程序都接近300MB了,更不用说这还压缩了不少东西(Switch的图形界面我们另当别论)。

而认为Switch使用FreeBSD的,也有不少人是听说或者发现索尼PlayStation 4和5固件ORBIS OS写清楚基于FreeBSD才认为的。

实际上上面每一个说法都或多或少有问题,尤其是0基础的,最少在Switch不是这么干的,FreeBSD其实也没有完全对,或者说,有混合成分在,且单纯只使用了FreeBSD的Kernel(如果不添加Kernel,则代表着整个系统)。

版权信息:FreeBSD Kernel

说到这里,就不得不提一下为什么御三家除了微软都使用FreeBSD,主要原因还是为了防破解,由于FreeBSD使用的是BSD开源许可协议,分支项目允许闭源盈利,但是反观Linux,由于使用GPL协议开源,若要使用,系统必须开源且不允许拿来盈利,并且老任索尼也没有版权,这一点还是因为GPL强制的Copyleft,安卓是个例外,基于Linux但是用Apache 2.0开源的,也因为此,安卓长期以来都在被开源主义开发者所唾弃,开源社区对于AOSP骂声至今都没有停息。索尼和任天堂怀疑是发现如果光明正大使用Linux必会骂,所以纷纷投入BSD阵营。

当然个人猜测,两家人选择FreeBSD也与其整洁的代码与安全性也有关系,并且版本更新缓慢,总体也比较稳定,也用不着经常更新固件来更新内核以避免一些安全漏洞(Switch的eFuse熔断机制也只有32根,低的更新频率可以起到更好的防破解效果)。

当然了,老任对FreeBSD也进行了深度定制,不然防破解难度不又下来了吗?

微软的话反正最新的Windows NT源码又没泄露,再加上玩家可以申请开发者账号,还有西瓜皮(XGP)的加成,一方面巩固自己的Windows地位,另一方也可以做到防破解。

当然,这还没有完,如果你有所了解,在Switch还被成为NX的时候CyanogenMod ROM背后的公司Cyanogen就受到了老任的邀请,请求他们为"某款便携设备"定制ROM,当然身为上帝视角的我们来看也无可厚非,由于Tegra X1芯片是一个aarch64处理器,定制安卓的难度真的不高,更何况老黄在2015年还推出了使用Tegra X1的电视盒子兼游戏主机Shield TV,使用的也是安卓,并且老黄还把Tegra X1的技术文档给公开了,开发难度原则上会更低。


图源:Nintendo Life


但是当时的Cyanogen正好又在业务转换,公司放弃了CyanogenMod项目并逐步社区化,开始开发Lineage OS,理所应当,当时的Cyanogen执行董事长Kirt McMaster拒绝了老任的这个请求,当时流传的NX要基于安卓也彻底破灭了,Kirt也在一条删除的推文中表示他非常后悔。

图源:快科技

上图中,Kirt的回复中说“They used bits of android”,的确如此,如果你闲得发慌看过游戏的版权信息页,大多数情况你都会不约而同看见“The Android Open Source Project”,即AOSP,事实上,在主机的版权页内也有提到:

版权信息:AOSP

这也印证了Switch用到了一点安卓的东西,不过这又不禁让我好奇起来,关于ELF兼容性问题,安卓基于Linux,Linux的ELF的格式是System-V(简称SysV)的,而FreeBSD的ELF格式就是FreeBSD,两者并不兼容,再结合安卓官方开发文档页提到安卓程序是标准的SysV ELF程序,这也让我疑惑老任是怎么做到这一点的,目前的猜测是修改了AOSP的依赖并编译了一个适用于FreeBSD的安卓组件。

在研究的过程中,还发现Switch还使用了诸如core-js,JSZip等JavaScript库(部分JavaScript库还涉及系统底层行为),还用到了一些Node.js的模块,另外系统还整合了WebKit和Blink两家浏览器引擎(WebKit甚至贴心帮你标注了Apple和Google共有版权),还有ACCESS公司的NetFront Browser NX(适用于NS的基于Chromium Blink的嵌入式HTML5浏览器SDK组件),这些东西都不禁让人怀疑整个Switch的操作系统都是在浏览器下运行的,性质有点类似于ChromeOS,只不过进入游戏后浏览器会转入后台运行(游戏并不运行在浏览器中)。

版权信息:Blink


相信这并不会是事情的真相,里面肯定有更多的奥秘所在!(研究结束

顺便吐槽一下从NS传图片是真的麻烦啊


Switch的Horizon OS浅层研究(从版权信息页&网络)的评论 (共 条)

分享到微博请遵守国家法律