上周,谷歌一个团队做了一件很奇怪的事情:他们悄悄透露自己在构建一个新的操作系统,名叫Fuchsia。从理论上说,Fuchsia是谷歌Android的竞争对手。
Fuchsia是一个正在开发中的开源操作系统。它可以在各种设备上运行,无论是单一用途的设备(比如自动取款机ATM和GPS单元),还是桌面电脑,都 是它的用武之地。但是,与Android不同的是,Fuchsia并不是一个基于Linux的系统,也没有以其他支柱型软件为基础。它是从零开始构建的。
Fuchsia仍处在构建的早期阶段,而且有可能是个实验性项目。谷歌目前尚未提及它将如何使用Fuchsia。软件发展已经有数十年的历史,为什么谷歌要从零开始构建操作系统呢?它的理由有很多。
内核的问题
对于你的手机、平板电脑和笔记本电脑,有一些事情可能你还不知道:大多数时候,它们使用的都是稍加改动过的古老软件“内核”。 Android使用Linux内核是1991年开发的,Mac OS X、iOS和苹果的其他平台是基于Unix系统的,那是AT&T贝尔实验室在1969年启动的一个项目。Windows计算机则是基于Windows NT内核,其历史可追溯到1993年。
内核的目的是管理操作系统最底层一些活动。它处理来自硬件设备(比如键盘)的请求、安排日程任务,对文件和存储器进行管理。在这个过程中,它对操作系统的复杂活动进行了抽象。这么做有很多好处,比如让开发人员无需了解打印机的具体型号,就可以令app执行打印操作。
Unix、Linux和Windows NT这样的老式内核一直在挑大梁,似乎与科技业一向求新求变的风尚相矛盾,但行业分析师贺拉斯 德度(Horace Dediu)认为,从最底层的角度来看,计算基本上是相同的,和几十年前区别不大。举例来说,如今Windows计算机上使用的芯片,就是首台IBMPC上英特尔处理器的嫡传后裔。从这个意义上说,内核不过是一种通用产品。
“我们使用的仍然是完全相同的架构,完全相同的计算方式——寄存器、逻辑门、晶体管——出于这个原因,我们没有必要开发一个更好的内核,”德度说。 “内核我们已经搞定了。”
可能是我们以为已经搞定了。现如今,我们正在把传感器和计算能力塞进更多的设备里面,比如把普通住宅改装为智能住宅,让所有东西都能联网(也就是物联网) 的时候。谷歌之所以开发Fuchsia,可能是觉得Linux这样的老式内核不适用于这一代新的设备。因此他们想为新的世代研发出一个新的内核。 (内核本身被称为Magenta,它以谷歌近期的另一个实验性项目LittleKernel为基础)。
扎克 苏帕拉(Zach Supalla)在硬件开发工具和物联网服务提供商Particle公司工作。他指出,Linux用在小型计算设备上时有些问题。
首先,对于这类设备来说,Linux过于庞大了。尽管Linux内核是模块化的,开发者可以去除多余的部分,但它还是会占用大量空间。这意味着要把Linux内核塞到一个价格便宜的微控制器里比较困难,你必须选用更大、价格更高,更加耗电的处理器。
“整个供应链本来可以以远远更低的成本制造品质更高的东西,”苏帕拉说。
另一个问题是,Linux不是“实时”的。自动取款机、医疗产品和其他单一用途设备采用了嵌入式操作系统,和它们不一样的是,Linux是靠一个时间表来 处理多任务的。虽然这可以最大限度地发挥通用计算机的性能,但却也会给那些需要精确定时的设备带来麻烦。像3D打印机,汽车内部的很多电动控制装置等等, 都对精确定时有很高的要求。
“如果你想确保这些设备在某个微秒准时启动,你真的不希望由一个进程来决定运行时间,”苏帕拉说。
对于物联网应用来说,像Linux这种通用的操作系统可能会不太安全,苏帕拉说。它的代码更多,这也就意味着需要防范的漏洞也会更多,你必须使用防火墙或者VPN来解决或封堵这些安全漏洞。
“使用实时操作系统(嵌入式系统)的优点之一,就是不需要封堵任何东西,”苏帕拉说。 “你不需要运行一堆你必须小心留神的东西。它只运行你写的软件,不会运行其他任何东西。”
但在软硬件通信方面,Linux仍然有很大的优势。苏帕拉认为,谷歌开发Fuchsia是希望把Linux和嵌入式系统这两者的长处结合起来。当今主流的嵌入式系统包括FreeRTOS和ThreadX等,
“他们可能想要开发一个抽象程度达到Linux水平,但性能、体量和实时性与RTOS相当的操作系统,”苏帕拉说。 “这样的操作系统有很大的价值,我觉得从理论上说是可以办到的。只是以前从来没有人这么做过。”
扩展性问题
如果Fuschia针对的只是小型设备,它可能没有那么引人瞩目。但是Fuchsia的开发人员有更远大的雄心,他们声称该操作系统可以扩展到智能手机和台式电脑上。从理论上讲,Fuchsia可以直接替代谷歌的Android和Chrome OS。
谷歌为什么要这么做?苏帕拉认为,从零开始或许可以构建出更高效的操作系统,从而获得更高效的服务器——谷歌一向都对这方面很感兴趣。他还指出,兼容台式机有助于模拟大量小型设备同时运行,确保它们可以在大规模使用的时候正常运行。
“和开动一千台服务器,每台同时运行一千个同样的程序相比,启动一百万个小型设备远远麻烦得多,不有利于开展测试,”苏帕拉说。
德度的看法与苏帕拉不同,他认为谷歌Android受到了知识产权方面的限制,而一个全新的操作系统则没有这样的问题。 “因为这是一个全新的设计,在知识产权方面它没有任何麻烦,”他说。 “这可能是一个合理的假设,因为Linux确实存在一些难缠的知识产权问题。”
别忘了,这可能纯粹是个学术研究。Fuchsia的开发人员表示,最终他们会发布这个操作系统,但可能还有很长的路要走,而且目前也不清楚谷歌是否会支持这个项目。 Android生态系统已经是十分庞大(而且正在开始和Chromebook合并)。而且谷歌还在开发一个嵌入式的轻量级物联网操作系统Brillo,它是Android的一个简化版本——Brillo正在形成一个成熟的平台,而不仅仅是一个基础性的操作系统。
话又说回来,Unix最开始也是一个志愿性项目,并没有贝尔实验室的正式立项,而林纳斯 托瓦兹最初开发Linux的时候也只是把它当作业余爱好。也许几十年后,当我们谈到Fuchsia的时候,也会说到它在谷歌的诞生有多么不可思议。