为什么谷歌会从零开始构建一个全新的操作系统?
上周,谷歌一个团队做了一件很奇怪的事情:他们悄悄透露自己在构建一个新的操作系统,名叫 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 计算机上使用的芯片,就是首台 IBM PC 上英特尔处理器的嫡传后裔。从这个意义上说,内核不过是一种通用产品。
“我们使用的仍然是完全相同的架构,完全相同的计算方式——寄存器、逻辑门、晶体管——出于这个原因,我们没有必要开发一个更好的内核,”德度说。 “内核我们已经搞定了。”
可能是我们以为已经搞定了。现如今,我们正在把传感器和计算能力塞进更多的设备里面,比如把普通住宅改装为智能住宅,让所有东西都能联网(也就 是物联网)的时候。谷歌之所以开发 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 的时候,也会说到它在谷歌的诞生有多么不可思议。
你也许感兴趣的:
- 谷歌抛弃滚动加载——重新采用「分页」显示搜索结果
- 【外评】泄露API文档揭示谷歌搜索如何把守互联网大门
- 【外评】谷歌搜索 API 文档泄露
- 【外评】披萨上的胶水?两只脚的大象?谷歌人工智被媒体嘲讽
- 【外评】谷歌云计算 VMware 引擎 (GCVE) 私有云宕机事故
- 【外评】Flutter 是否面临死亡?
- 【外评】Flutter 团队有多大?
- 【外评】谷歌搜索结果被人工智能编写的错误代码污染,令程序员沮丧不已
- Google Reader被“代码屎山”杀死
- 谷歌裁掉整个 Python 团队!PyTorch 创始人急得直骂人:“WTF!核心语言团队无可替换”
你对本文的反应是: