陈徐毅
在新兴操作系统领域,谷歌除了承担着Android与Chrome OS的开发和维护之外,一直以来还有着新系统Fuchsia的研发传闻,这在不久前得以证实。谷歌公司在开源博客对外公开,Fuchsia是建立通用开放源代码操作系统的长期项目,并承认公司近年来一直致力于Fuchsia的研发,同时向团队外部寻求更多开发者。
消息一出,沉寂了四年来的Fuchsia操作系统再次浮出水面。早在2016年8月,有媒体发现开源托管平台上的神秘代码,项目显示谷歌正在开发一个名为“Fuchsia”的新操作系统,经开发者分析该源代码能跨平台运行,包括传统终端和嵌入式设备。
谷歌实验室有许多半途而废的项目,原本趋于被遗忘的Fuchsia却低调坚持了四年且再次被搬上台面,说明Fuchsia与那些“实验型”产品有着根本不同。所以,一个四年前的问题被再次重谈——谷歌为什么要开发一款全新的操作系统?这个问题的解答在今天看来被赋予了更多新时效的观点。
2010年,甲骨文起诉安卓系统侵权一事将谷歌拉入了长达近十年未果的软件知识产权诉讼大案。Java案成了一场拉锯战,历时长久,影响深远,其比之上世纪90年代著名的AT&T诉加州伯克利BSD侵权Unix案有过之而无不及。
甲骨文认为安卓系统抄袭了37个JavaAPI代码段,而这些代码属于Oracle商业私有JDK的一部分。本案最大的争议在于,API应用程序接口作为代码产物的一部分,用于约定软件系统不同组成部分的衔接,其是否适用于版权法的保护效力,在开发者未有自主声明的情况下并无法律明文约束。“37个JavaAPI代码段”成了该案双方争论的焦点。
Java案的尘埃落定至今仍不明朗,不仅如此,连Chrome OS也一度陷入麻烦,甲骨文律师曾表示,谷歌在官司期间推出的Chrome OS版Play商店正试图在桌面端打入Java SE市场,此举使甲骨文蒙受巨大损失。为了一举消除Java对谷歌未来的负面影响,因而在2016年Java案诉讼进入白热化之时,谷歌秘密开启了Fuchsia操作系统的研发项目,也就在那个时候,坊间有了Fuchsia将取代安卓系统和Chrome OS的传闻。当谷歌意识到软件知识产权问题的严重性时,安卓系统的更替方案也随之提上日程。当然也有可能让Fuchsia套上安卓的壳,但操作性就很难说了。
要重新梳理软件知识产权问题最彻底的解决方法就是另起炉灶,因为任何对原系统的修改都难以避免最初源代码权属问题而引起巨大的商业风险。谷歌曾试图在2016年的Android 7.0 Nougat中将甲骨文专利的JDK替换成开源的OpenJDK,但后来证明于事无补。
众所周知,安卓系统和Chrome OS都是基于Linux内核设计开发的,因为谷歌最早发迹于万维网,移动时代又得利于Java的流行。在开源世界的体系框架里,Linux内核是在GPL第二版许可证下发布的,GPL要求基于开源衍生的作品必须继续开源,这叫做GPL的“强传染性”;但是安卓系统还有另一个开源许可证ASL(Apache许可证),这是一个比较宽松的允许闭源的许可证,为何如此呢?
安卓发布之初,谷歌修改了Linux内核,故意引入ASL其原因是允许厂商自定义个性化的安卓系统并成为他们的独家产品,所以才会有后来的三星TouchWiz、华为EMUI等等百花齐放。但是这里有一个问题,安卓系统仅仅是部分采用了Apache许可证,系统真正的内核部分依然遵循GPL规范,这就解释了为什么安卓不能完全实行闭源。
ASL的引入成就了安卓系统高达85%的移动市场份额,同时也加剧了安卓移动设备碎片化和标准不一。因此为了一次性解决所有难题,重做内核确实是最彻底最有效的办法。Fuchsia采用独立微内核Zircon区别于Linux内核,编程语言Dart、开发引擎Flutter、渲染器Escher、应用程序框架 Mojo都与专有的商业专利无关,可以看出另起炉灶的Fuchsia系统旨在避开GPL开源的强传染性,同时又着重避免再次遭遇类同Java案的影响。
谷歌一直以来都在尝试建立一个与苹果操作系统生态相媲美的产品,但是安卓系统的历史性问题让這一愿景变得越来越难以实现。比如谷歌想设计一套稳定的驱动API接口,因为Linux不具备稳定的内核内部API接口,所有的驱动都必须放到内核里一起被维护,由于迭代过程碎片化严重,这些驱动很快过时并随着内核大部队一起向前走(新的版本)。
另外,Fuchsia的内核抽象非常小,谷歌也有可能通过用户空间的抽象层兼容目前的安卓系统上面的应用,从而实现“换核”操作。如果上述分析最终走向结果为真,那么Fuchsia基本上是取代现有安卓的全新操作系统,或者是将经历“换核”作业的“新安卓”。如此一来,替掉了GPL的核部分,安卓开发的碎片化或许能够得到改观。
但是谷歌将Fuchsia定义为通用OS,这一说法存在争议。鉴于当今第三方软件生态构建的难度,新的流行终端诸如VR、AR其开发者都在和类Unix操作系统打交道,暂时还看不到在Linux/BSD之外另起炉灶的必要。