上周,一群Google人干了件奇怪的事情:他们悄悄披露了一套新的操作系统,从理论上来说,这套系统跟Google自己的Android OS是有竞争关系的。
目前正在研发中的这套开源操作系统代号为Fuchsia,可运行在一切东西上,下至轻量的单用途的设备(比如ATM和GPS单元),上至桌面计算机都可以支持。但跟Android不一样的是,Fuchsia并不是基于Linux,也不是衍生自任何构成个人计算和通信基础的其他软件。相反,这是一次从零开始的尝试。
Fuchsia还处在早期研发阶段,至于这个系统打算怎么用,Google还没有放出任何重大公告,这只是一次实验的可能性也是存在的。尽管如此,Google仍然有大量理由来重置几十年的软件史。
执拗的内核
这个东西跟你的手机、平板和笔记本都有关,但你可能还意识不到:它们大多数采用的软件“内核”都相当老。Android使用的Linux内核,是在1991年开始研发的。Mac OS X、iOS等苹果平台是以Unix为基础的,后者源自1969年的贝尔实验室。Windows计算机基于的Windows NT内核要追溯回1993年。
内核的目的是管理操作系统的最底层。它处理键盘等硬件设备的请求,进行任务调度,并管理文件和内存。为此,它要对操作系统的纷繁复杂之处进行抽象,而这是有帮助的,比方说可以让开发者不必知道具体打印机型号的情况下进行打印。
对于一个痴迷于最新技术的行业来说,像Unix、Linux以及Windows NT等老内核的弹性似乎有点矛盾。但行业分析师Horace Dediu认为,从最底层水平来看,计算基本上跟几十年前是一样的。比方说,今天的Windows计算机使用的芯片就是第一款IBM PC的英特尔处理器的直接后代。从这个意义上来说,内核只不过是件商品罢了。
“我们仍然使用一模一样的架构,仍然使用一模一样的计算概念——寄存器、门电路、晶体管——出于这个原因,并没有做一个更好的内核的必要,”Dediu说:“内核的问题已经解决了。”
我们大概也这么想吧。这段时间以来我们把传感器和计算能力打包进更多的东西里面,比方说,把日常家庭变成了智能家庭,并且通常把一切都连接得更加紧密(行话叫做物联网)。Fuchsia背后的想法也许是认为,像Linux那样老化的内核已经不足以应对这波新设备了。同样,创造者也在替现代设想一个新的内核。(内核本身叫做Magenta,基于Google最近的另一个实验项目LittleKernel)
Zach Supalla的公司Particle为物联网提供硬件工具包和开发者工具。他指出,对于这些小规模计算设备来说,Linux存在若干问题。
一是Linux对于这类应用来说太大了。即便Linux内核是模块化的,能够让开发者剔除不必要的部分,但最终仍会占据好几兆的空间。这意味着更难以把Linux内核塞进廉价的微控制器里面,从而让处理器成为必须,而后者往往大得多、贵得多且更耗能。
“全新的供应链这道鸿沟还没有跨越,这对制造提出了更高的品质要求,而且成本还得低很多,” Supalla说。
另一个问题是Linux并不是“实时”的。跟ATM、医疗产品等单用途设备采用的嵌入式系统不同,Linux利用调度机制来处理大批任务。尽管这可以极大发挥通用计算机的性能,但也会导致需要精确定时的设备,比如说3D打印机或者汽车内部的许多电动控制系统出现问题。
“要想确保这玩意儿在确切的微秒时刻运行,你不会希望有个进程在那里决定什么时候跑什么东西,” Supalla说。
Supalla说,对于物联网应用来说,像Linux这样的通用操作系统的安全性可能也会更低。其代码量更大,这意味着可能存在更多的安全漏洞需要处理或者通过防火墙或VPN锁定。
“运行实时操作系统或者嵌入式系统的价值之一在于,这些系统无需锁定任何东西,” Supalla说:“它不需要运行一批你需要考虑的东西。除了你写的软件以外它不会运行任何东西。”
Supalla的推断是,Fuchsia是集两家之大成的一次尝试,在让应用和硬件通过操作系统进行通信方面Linux仍然处理得更好,而当今的一些嵌入式操作系统,比如FreeRTOS和ThreadX就没有前面提到的Linux的那些问题。
“他们可能既想要有Linux那种水平的抽象,又想获得RTOS的那种性能、小规模以及实时性,” Supalla说:“这些都是非常有价值的东西,而且我认为从理论上来说是可以实现的。只是之前没做过而已。”
纵向扩展
如果Fuschia的目标只是小规模设备的话,可能就没那么值得关注了。但是Fuschia的开发者野心要比这大,他们宣称该操作系统可扩展到智能手机和桌面计算机上。理论上,这会使得Fuschia成为Google的Android和Chrome OS的直接替代方案。
为什么要这么做呢?据Supalla说,可能从头开始能够做出一个更高效的操作系统,这反过来又能支持更高效的服务器——对此Google一直都很感兴趣。他还指出桌面兼容性还可以模拟一次运行大量更小的设备,从而确保规模化运行。
“让一千台服务器每次都同时跑同样的软件应用,要比折腾一百万芯片跑起来更容易,所以这对测试更好。” Supalla说。
Dediu的理论不一样:一套新的操作系统可以让Google远离Android遭遇的知识产权授权问题。“因为这是一张白纸式的设计,不会碰到有人去找IP(知识产权)方面的麻烦,”他说:“这也许是一个合理的假设,因为Linux的确有一些棘手的IP问题。”
要记住的是,这也可能就是学术性的。Fuchsia的开发者说他们会完整记录并最终发布这套操作系统,但要走的路还很长,而且还不清楚Google会不会给予其充分的支持。Android生态体系已经很庞大(并且正在跟Chromebooks进行合并)。与此同时,Google还在扩展Android的某个版本到物联网设备,这个带嵌入式特性的版本叫做Brillo——Linux的缺点见鬼去吧,它正在成为一个成熟的平台,而不仅仅是一个简单的操作系统。