开发者社区> 玄学酱> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

简介:
+关注继续查看

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

微内核和实时系统

取代Android?聊聊谷歌的Fuchsia新操作系统
操作系统架构分类 [集成型-微内核-混合型] - 图片来自维基百科

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

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

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

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

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

Fuchsia 能做什么?

取代Android?聊聊谷歌的Fuchsia新操作系统
Google Fuchia Logo - 图片来自互联网

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

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

取代Android?聊聊谷歌的Fuchsia新操作系统
谷歌 Fuchsia 系统界面截图

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

取代Android?聊聊谷歌的Fuchsia新操作系统
谷歌 Fuchsia 系统源代码开发语言构成

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

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






本文作者:佚名
来源:51CTO

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Android App开发超实用实例 | ​Broadcast
介绍Broadcast的静态注册、动态注册及有序广播。 Broadcast(广播)分为发送者和接收者,可实现跨应用的消息传递。重启手机、闹钟、来电、接收短信等都会发出广播,通过BroadcastReceiver就可以接收广播并进行相应处理。
0 0
Android程序猿从零开发小程序项目(二)
Android程序猿从零开发小程序项目(二)
0 0
Android程序猿从零开发小程序项目(一)
Android程序猿从零开发小程序项目(一)
0 0
Android 蓝牙BLE开发从官方源码demo开始(二)
Android 蓝牙BLE开发从官方源码demo开始(二)
0 0
Android 蓝牙BLE开发从官方源码demo开始(一)
Android 蓝牙BLE开发从官方源码demo开始(一)
0 0
Android开发:获取安卓App版本号的方法步骤
在Android开发过程中,想要开发一个完整功能的App,各个地方的内容都要涉及到,比如获取App的系统版本号就是必须要有的功能。Android的App版本号相关内容比iOS的App版本号内容要多,而且iOS版的App版本信息跟Android的还不一样。本篇文章就来介绍一下Android开发中获取App版本号的方法步骤,方便以后使用。获取App版本号常用的有两个方法,这两种方式都能获取到系统版本号,请根据实际需求或者偏好来选择任何一种方法即可。
0 0
Android开发:往项目工程里面新引入工具包的步骤
在Android开发过程中,有些时候会根据实际需要,要往项目里面引入工具包,作为初级开发者或者刚开始入门的Android开发者来说会不太熟练怎么引入,所以往项目工程里面新引入工具包也是必备技能。那么本篇博文就来分享一下给项目工程里面引入工具包的步骤,只分享给有需要的人。
0 0
Android开发:Android Studio同时打开多个项目的正确打开姿势
刚接触Android开发的初级程序猿比较实用,比如在开发过程中,已经通过Android Studio打开了一个项目工程之后,还想重新再打开一个另外的项目工程,这种解决方法,一般资深的Android开发工程师不屑于看,但是对于不知道的小白程序猿来说却是很实用,而且网上也没有太多的基础知识点的介绍,所以还是那句话,只分享给有需要的人,只要能帮到一个人,这篇博文就有存在的意义。
0 0
+关注
玄学酱
这个时候,玄酱是不是应该说点什么...
文章
问答
文章排行榜
最热
最新
相关电子书
更多
手机卫士性能优化方案-Android篇
立即下载
Facebook iOS App技术演化十年之路
立即下载
Android开发之多进程架构
立即下载