取代 Android?聊聊谷歌的 Fuchsia 新操作系统

取代 Android?聊聊谷歌的 Fuchsia 新操作系统

本文转载自数码多,作者农步祥,原文链接 http://soomal.com/doc/10100007262.htm


最近,一款由谷歌开发,被称为 Fuchsia 的操作系统在网上曝光。Fuchsia 是在去年 8 月就进入了 GitHub 项目,但谷歌对此非常低调,像操作系统这样的重量级项目,却没有官方的宣传和说明介绍。网上的介绍称这个操作系统采用了代号为 Magenta[一种给给的洋红色] 的微内核设计 [MicroKernel],是一种实时操作系统 [real-time OS]。在谷歌官方介绍出现前,网上已经有了大量的「解毒」:例如说 Fuchsia 是用来取代 Android 高性能操作系统,兼容 Android 应用;也有说是针对物联网开发的一种实时操作系统;甚至有说是为了混合现实 [MR] 设计的操作系统,这众说纷纭下,哪个比较有道理?

微内核和实时系统

00067803_01.jpg操作系统架构分类 [集成型-微内核-混合型] - 图片来自维基百科

微内核在计算机术语中,特指的是操作系统的内核小型化,即操作系统核心部分架构只有线程管理、内存管理和进程间通讯等最基本的系统调用功能,即使是系统服务、硬件驱动都放在了用户空间应用。不同应用间通过进程通信方式完成。微内核是相对于 Linux 这种庞大的集成式核心的最大优势就是较好的伸缩性,其硬件驱动和系统服务可以按需取舍,效率高,因此微内核设计的操作系统和硬件在日常生活中常见于路由器等小型设备,以及一些分工明确的分布式系统。但随着硬件性能的提升,小设备的系统也正在变得大而全起来,以 Linux、Android 为基础的「智能硬件」已经广泛普及。

00067804_01.jpgWindows NT

00067805_01.jpgMac OS

在 PC 上运行的操作系统中,基于 Mach 的 MacOS 就是微内核系统的典型,虽然 WindowsNT 和 OSX 都曾经自我标榜为微内核操作系统,但由于微内核系统中用户访问程序、硬件等行为都需要通过通信而不是程序函数调用完成,因此在大型复杂的应用下性能和效率都非常捉急。现在的 Windows 和 OSX 系统都将大量的系统服务和硬件驱动放入系统核心部分,其实更为接近 Linux 这样的集成式核心设计,有时会把这种集成式内核和微内核设计的结合称为混合式核心设计。

而实时系统是一种以实时 [或尽快] 并按时完成需求任务的操作系统类型,比较著名的有 WindowsCE、VxWorks 等。这类系统并不追求大数据吞吐量,而是要求有较快的响应速度和灵活的任务执行能力。

Fuchsia 能做什么?

00067802_01.jpgGoogle Fuchia Logo - 图片来自互联网

目前比较受欢迎的微内核+实时系统有开源的 FreeRTOS 等,它没有图形操作界面,主要用于实现类似无线路由器等功能比较单一的设备系统。而 Fuchsia 已经被归类为微内核+实时系统,是不是真的奔着物联网操作系统而去的?但 Fuchsia 出名就是因为在油管上有人演示了在手机上运行 Fuchsia 图形界面的片段而开始火起来的,当然目前其图形界面还处于初始演示阶段,并没有具体的功能,但可以看出人们还是希望更愿意接触的是一个有图形界面的全能型操作系统,而不是早期的纯命令行模式界面,然而对于大多数物联网设备来说,UI 只是个累赘。

但以此要推断出 Fuchsia 是要做物联网操作系统还是取代 Android 还为时过早,从硬件支持平台来看,Fuchsia 主要支持的是 ARM64 和 X86-64 两种高性能运算处理器类型,这类高功耗处理器显然不适合用在追求低功耗和小型化的物联网平台,至少从 Fuchsia 开发者团队的意愿来看,其设计目标应该还是完整的图形操作系统。

00067808_01.jpg谷歌 Fuchsia 系统界面截图

那么 Fuchsia 的诞生是不是真为了取代基于 Linux 的 Android?许多人对大数据和复杂应用的理解可能是超算暴力运算任务或电信机房的服务器,因此误认为小型化的微内核和实时系统对于普通用户应用而言更有优势。但事实上用户日常的游戏娱乐、浏览网页看视频等应用对于目前使用微内核和实时系统的单一个体硬件来说都是非常巨大的处理器运算和数据负担 [不信打开微信支付宝客户端试试]。虽然 Android 的很多缺点是由于 Linux 内核导致,但更多的是软件开发者不注重效率地过度开发和功能堆砌,或谷歌在开发 Android 组件时技术水平有限造成的 [类似 Skia GPU 的负优化],改用微内核和实时系统设计未必能显著提升这类手机应用环境下的性能和效率。

00067809_01.jpg谷歌 Fuchsia 系统源代码开发语言构成

另外,从 Fuchsia 的开发语言构成来看,它采用了 C、C++甚至是 Dust、Go、Python 等编程语言,但并没有任何 Java 虚拟机、运行库的兼容和支持迹象,肯定是无法正常安装和运行 Android 应用的 [倒是包含了一个 qemu 操作系统虚拟机]。至少目前来看,兼容和取代 Android 也只是一些人的愿景,或者说脑补而已。这就好比微软打算推出一款完全不支持 Visual C++程序的桌面操作系统以取代现在的 Windows,只会逼着客户和开发者造反。当然也不能完全排除谷歌真有取代 Android 的打算。至于 MR 应用,那只是一种特定应用环境,并不太需要开发一套新的操作系统来解决应用层的问题。

操作系统是最复杂软件工程之一,往往需要花费顶级序员们数年甚至数十年的精力进行开发和完善,微机史上出昙花一现操作系统不计其数,绝大多数并不会被人所铭记。也有类似 FirefoxOS 等试图以「自主操作系统」的方式吸引市场和消费者,但失败者居多,也正因为操作系统已经变得越来越复杂,哪怕是利用现成的开放源代码改造也很难在技术上做好并在市场上实现弯道超车。而目前 Fuchsia 的状态也只是一个十几人的小团队项目,有很强的试验性质,真要做一个完全取代 Android 的操作系统,肯定需要更大的开发团队规模,或许三五年以后,谷歌开发新系统的真正目的和意义才会变得明显。

AndroidFuchsia转载
关注极客公园公众号
反馈