腾讯科技编者按 《快公司》网站日前发表文章,对谷歌开发一个全新操作系统的原因进行了分析,解释了现有操作系统存在的问题,并对谷歌此举的动机进行了推测,以下为原文:

上周,谷歌一个团队做了一件很奇怪的事情:他们悄悄透露自己在构建一个新的操作系统,名叫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的时候,也会说到它在谷歌的诞生有多么不可思议。

为什么谷歌会从零开始构建一个全新的操作系统?相关推荐

  1. 如何开发一个全新的操作系统(手机操作系统)呢?

    首先个人文笔有限,并不是专业写文章的人,同时知识面也比较局限,以下只是个人对这个问题,在日常闲余时间去对这个问题进行的一些探索总结,如有疏漏不足望客官海涵.这是系列文章,后续我会持续记录.好现在来聊聊 ...

  2. 从零开始构建一个的asp.net Core 项目(一)

    最近突发奇想,想从零开始构建一个Core的MVC项目,于是开始了构建过程. 首先我们添加一个空的CORE下的MVC项目,创建完成之后我们运行一下(Ctrl +F5).我们会在页面上看到"He ...

  3. 从零开始构建一个高可靠的RabbitMQ镜像集群

    从零开始构建一个高可靠的RabbitMQ镜像集群 1.集群环境节点规划如表所示: 1 集群构建 1.停止MQ服务,首先停止3个节点的服务的命令如下: service rabbitmq-server s ...

  4. 微软北极服务器,微软正构建一个轻量级的操作系统:代号Polaris

    IT之家1月26日消息 正式推出Windows 10之时,微软宣布,这将是Windows操作系统的最后一个版本.这意味微软将会把Windows 10作为一项服务,未来不会有"Windows ...

  5. myos1 大学生利用C++构建一个完整的操作系统打印helloworld

    myos1 大学生利用C++构建一个完整的操作系统打印helloworld myos2 大学生利用C++构建一个完整的操作系统之响应键盘中断 myos3 大学生利用C++构建一个完整的操作系统之代码重 ...

  6. 手写一个X86操作系统实战:从零开始构建一个U盘启动的自制操作系统(一)

    这个标题可能有点大了:-) 一个操作系统至少应该有自己的文件系统和进程机制,不过我们的最终目标应该是这个~ 无论如何,看完本文,你应该可以手写一段通过U盘启动的在PC上运行的不需要其他软件来协助的自启 ...

  7. 使用Spring boot,Thymeleaf,AngularJS从零开始构建一个新的Web应用程序-第1部分

    在这一系列博客文章中,我们将使用以下技术堆栈构建完整的响应式Web应用程序: 1)弹簧靴 – Spring MVC网站 – Spring Data JPA –Spring安全 2)Thymeleaf用 ...

  8. 使用Spring boot,Thymeleaf,AngularJS从零开始构建一个新的Web应用程序-第3部分

    在之前的博客中,我们使用Thymeleaf,Bower和Bootstrap构建了登录页面,并将其部署到了Heroku. 在此博客中,我们将介绍用于前端的AngularJS和在后端的Spring Boo ...

  9. 开发者说丨如何从零开始构建一个轻量级应用

    本文分享自华为云社区<伙伴分享|如何快速开发一个AppCube标准页面>,作者:Roberto. 接触AppCube是21年某日,接到领导通知,让我了解一下低代码平台--AppCube. ...

最新文章

  1. 大唐波斯将军 机器人_参观长沙博物馆“粟特人在大唐”文物展,感叹多元文明的交融互鉴...
  2. python通过DictReader实现两个csv文件的映射查找lookup之代码详解
  3. PHP反射之类的反射
  4. hdu 3062 Party(2-sat,3级)
  5. 使用jquery判断及改变checkbox选中状态
  6. 什么是系统架构?系统架构的特点分析!
  7. js mouseover mouseout 多次触发
  8. Linux系统编程 -- 信号及signal函数
  9. 深度学习笔记_ResNet
  10. c中static的含义
  11. 基于斗鱼的娱乐直播视频平台--Vue移动端页面
  12. 程序员的职业规划_程序员如何能做好职业规划,走出迷惘呢?这个能力矩阵法要告诉你...
  13. Cubist Artwork
  14. 邮储银行的规模有多大?凭什么可以成为第6大国有银行?
  15. DGV中复选框第一列可编辑 ,第一列固定显示
  16. Altium Designer18之修改画图光标大小
  17. 帝国时代2战役php文件,帝国时代各种类型文件使用说明
  18. 计算机与信息技术基础第一章总结,第一章信息与计算机《计算机应用基础》.ppt...
  19. java基础十一---Socket
  20. 大学c语言作业用什么搜题比较好,快速查找题库_什么手机软件可以把题库输入进去然后输入关键字可以查找点道题_淘题吧...

热门文章

  1. 用计算机弹一笑倾城简谱,一笑倾城歌词,一笑倾城歌词简谱
  2. fiddle无法抓包小程序解答
  3. RGB转换成CMYK
  4. 了解工业能源统计的含义、分级以及分类
  5. 杨校老师课堂之Spring框架面试题【开发工程师面试前必看】
  6. C语言中access函数的使用
  7. 实际案例说明计算机网络安全,计算机网络安全案例教程
  8. 语义分割(Semantic Segmentation)方法
  9. Linux安装数据库
  10. 计算机网络中常见的各层协议