zoukankan      html  css  js  c++  java
  • Google 新系统 Fuchsia 概览和浅析


    https://segmentfault.com/a/1190000006758011


    Fuchsia

    1、引言

    Pink + Purple == Fuchsia (a new Operating System)

    上面这行简单的句子就是Google在Github中公开的部分源码下方的一个介绍,真是简洁到不行,但是这个系统具体什么做什么的?下面来细细扒一下。

    讲之前先附上这个项目的Github地址:https://github.com/fuchsia-mirror/fuchsia

    2、介绍

    尽管 Google 的创新项目一直在亏钱,但这并不能阻止他们持续挖坑的脚步。近日又有消息指出, Google 正在开发一款名为“Fuchsia”的操作系统,谷歌工程经理 Chris McKillop 在随后的推文中也证实了这一消息。

    Fuchsia,使用不同的内核全新编写,支持 PC、手机以及其他智能设备。业界的声音普遍认为:Fuchsia 的目的就是打通PC和手机,可能会是谷歌未来 IoT 的融合操作系统,甚至有声音说是为了代替 Android 和 Chrome OS 而研发的下一代操作系统。

    这里有必要先提一下这个系统的开发者。该项目的贡献者有 Travis Geiselbrecht 和 Brian Swetland,这两人是 Android 系统的主力开发者,而 Dart,Flutter 又来自 Chrome 团队,加之其可以同时支持ARM和x86芯片架构及业内一直盛传的谷歌打算在2017年统一 Android 和 Chrome OS,所以才有了上面的分析认为Fuchsia的目的就是打通PC和手机,甚至是未来IoT的谷歌的融合操作系统。

    言归正传,下面从几个方面介绍下这个系统。

    2.1 内核

    它不同与安卓使用的Linux内核,而是采用的比较新的Magenta的内核。该系统与当下Android相比,无论是存储器还是内存之类的硬件要求都大幅降低,可以看出这是一款面向物联网的家用电器用的系统。据悉Flutter引擎+Dart语言将很有可能成为Fuchsia系统主要的UI开发框架。谷歌Fuchsia选择Flutter作为UI并不令人意外,毕竟Dart语言由谷歌亲生,一方面不用担心被人起诉,另外当Fuchsia有需要时,也能灵活地在Dart虚拟机做出针对性的改变。

    Fuchsia系统支持32位和64位的ARM处理器和64位PC处理器。致力于Fuchsia系统的谷歌开发者的成员之一——Travis Geiselbrecht称,Fuchsia系统亦将于近期支持树莓派3。

    该系统的UI用户界面层使用的是Dart语言开发的Flutter,渲染器是Escher,而应用程序框架是Mojo。

    2.2 Fuchsia 会是什么样子?

    前面所说的 Magenta,是一个微内核和一系列用户空间的服务、驱动的组合。目前它已经能够在虚拟机、某几款NUC小电脑和某款笔记本上启动运行。在虚拟机里面运行后就是一个字符终端,执行一个叫 mxsh 的 shell,另外还有少量的基本工具和测试程序集 。

    只有 Magenate 内核的 Fuchsia 系统,在虚拟机运行起来是这个样子:

    看起来一点都不酷,对不对?!因为这个基本系统没有图形用户界面(GUI)部分。UI部分现在还没有被合并入项目。

    不过资料说的是UI层使用的是 Dart 语言开发的 Flutter;渲染器是Escher;应用程序框架Mojo。那我们试试单独编译跨平台的 Flutter,看看用户界面会是啥样。其他如内核、开发语言、基础框架等,普通用户是感知不到的——还是留给工程师们关注吧。

    Flutter 是可以运行在 Android 和 iOS 上的用户界面开发库,从它的源代码提交和bug跟踪日志中的信息看,目前它的引擎还不能运行在 Fuchsia 上,不过已经很接近可以工作。Flutter 官网声称自己还是一个早期阶段的开源项目,经笔者检验虽然是早期项目,但是在 Android 手机上运行起来演示程序还是很容易的。所以,一起围观下 —— “未来” 操作系统上的程序可能会是什么样子:

    (附一个Flutter的Github地址:https://github.com/flutter/flutter

    Flutter采用 Materal Design 设计语言(规范),该规范定义了用户界面上的元素的用途、外观、展现形式以及形态变化的规范。

    从用户可见的角度来看,未来 Fuchsia 操作系统内运行的程序,其中的按钮,对话框,图片框等等界面组件,基本就应该跟上面图片中差不多。

    2.3 Fuchsia 操作系统的特点

    现阶段 Fuchsia操作系统的基本情况是:

    • 内核:Magenta,有可以在特定设备运行的早期版本,框架设计、核心功能、相关工具链较完善。如果需要支持新的(外围)设备,还有大量驱动需要移植。

    • UI层:Flutter,组件库已经基本完善,写一些简单程序没有障碍,暂时还无法在 Fuchsia 运行。官方自称属于早期阶段的版本,实际也是。另外目前没有OpenGL ES 方面 3D相关的支持,官方承诺未来会公开自己的优化版 3D编程接口。(所以可能也是暂时没有炫酷亮闪未来界面的原因)

    • 渲染引擎:Escher,资料较少不了解,不过应该在渲染速度和效果上有非常突出的优势。

    • 主力编程语言:Dart,面向对象的跨平台语言,相关的库已经比较完善且是 Flutter 的开发语言。以后为 Fuchsia 开发App主要使用 Dart语言。

    如果需要了解现在这个项目各个部件所处阶段以及项目上资源投入的情况,也许下面的图能有个简单说明。图中列出了最近一年以内,几个项目源代码每周被提交的数据(代表活跃情况)。左边纵坐标是被提交的次数,每个项目的横坐标是最近一年周期。

    图中标明了重要项目名字以及目前项目的贡献人数。

    可以看到参与人数多代码提交比较活跃的,是内核 Magenta 和图形界面层 Flutter 两个项目。Flutter 项目比较特殊,它其实很早就启动了,一直致力于为 Android/iOS 移动设备提供编码统一的开发环境。除了 Flutter 之外,其他所有项目大概都是最近两个月内被启动的。其中目前最活跃的是操作系统内核部分,22 名贡献者中可以看到不少 Google, Chromium 官方成员在提交代码。内核开发极度需要技术和经验,也不是劳动力密集型工种,几名核心工程师已经足够,由此可见目前谷歌对内核项目的干劲还是比较足的,只是其他配套项目关注的人数就稍微少了点。

    图上已经很明显了,总的来说就是 Fuchsia 操作系统现在还在很早期的的阶段,构架已经设计好,正一步步完善内容。

    从搭建的框架可以看出,其特点基本上是其所选取组件的优点的组合,比较有代表性的是:

    • 适合嵌入式设备和高性能设备:magenta内核的基础lk就是一个嵌入式系统的内核,它的代码非常的简洁,适合移植到不同的设备上。可以想象到的目标设备是:物联网、移动手持设备、可穿戴设备等。

    • 低延迟、高效率:在 Magenta、Escher、Flutter 的项目介绍中都可以看到“实时”、"高效”、“低延迟”这几个关键字,那么可以预见 Fuchsia 的目标也是实现一个实时性非常高的操作系统。低延迟有什么用呢,想象一下VR眼镜上看虚拟现实的时候,画面没有延迟的惊艳爽快感。所以低延迟对这个操作系统一个非常重要的考虑指标,也是核心优点之一。顺便提一下,我们普通人用到的 Windows,Linux,Android 都不是实时操作系统。OSX, iOS的延迟都比较低,但是一般也没有把他们划为实时操作系统。

    • 高级编程语言:Dart 的目标是设计一个随处部署、接口稳定、基础库完善的开发语言。用在 Fuchsia 可以看出来要摆脱掉 Java 语言的意图比较明显,另外它也是一种需要VM的语言。不过Flutter 的官方资料显示:经过对比测试,Dart 的在执行性能、开发效率、面向对象、快速内存分配(回收)上的得分都非常高,因此才会被 Flutter 选为开发语言。

    • 统一的UI体验:由于采用了 Matrial Design 设计语言,所以在 Fuchsia 上运行的程序理论上具有统一的UI体验。

    • 没有历史包袱:完全从头设计的系统,不会有为了兼容考虑的历史包袱——比如 Java 虚拟机的慢速,又比如 Android 较慢的渲染速度。因此也可以把体积做的很小,塞到存储容量很小的设备中。

    2.4 Fuchsia 会融合PC和手机,取代 Android、Chrome OS 么?

    这里到了大家讨论最多的发展前景的问题了。网上提到 Fuchsia 取代 Android、Chrome OS,又或者 Fuchsia 跨平台融合,个人觉得可能性不是很大。且不说 Fuchsia 连是否会做出来最终发布都不确定,假设这个操作系统真的发布了,想代替 Androd 和 Chrome OS,或者融合现有市场上的应用形态,都会非常难。

    在一个存量市场上,任何一个全新的产品想替代旧的产品,必须要考虑两个最大的阻碍:1、用户习惯;2、生态环境。

    Android 系统海量的用户养成的使用习惯要想被 Fuchsia 替代,除非 Fuchsia 在兼容 Android 上做得非常好,否则用户很难会使用一个不熟悉的新系统替换本来用着好好的老系统。另外Android 的上下游生态环境从开发语言、相关资料资源、从业人员数量、软件开发商、设备厂商,到最终作出的软硬件产品,这个生态圈内的资源数量都是巨大的。生态圈会自动将相关资源继续留在原有阵营,很难被攻破

    关于生态圈最好的例子就是想与 Android/iOS 竞争的 Windows Phone——它已经从我们生活中消失了。

    既然在存量市场上难以成功,全新开发的 Fuchsia 的目标一定是新兴市场 —— 一种 Android 和 Chrome OS 等现有操作系统无法适应,而且应用形态又不一样的——未来市场。

    网上的猜测都说得比较清楚了,这个市场可能是:物联网、虚拟现实、增强现实、可穿戴等。这些领域还没有成为标准的垄断者,现有的 Android,Chrome OS 等操作系统又不太适合这些领域的应用形态。而未来这几个领域增长的想象空间巨大,值得投入。

    回头看 Fuchsia 的特点:嵌入式、低延迟、高性能、一致性,正是为了这些产品领域而设计。

    所以,操作系统会融合么?Fuchsia会取代其他么?我认为非常长一段时间内都不会。

    引用

    http://news.zol.com.cn/600/60...

    http://news.mydrivers.com/1/4...


  • 相关阅读:
    18款 非常实用 jquery幻灯片图片切换
    6款强大的 jQuery 网页布局创建及优化插件
    18 个最新实用的 jQuery 插件
    jQuery中的编程范式
    JQuery _ 定时器(jQuery Timers) 学习
    21个最佳jQuery插件推荐
    7 款基于 JavaScript/AJAX 的文件上传插件
    C#
    kernel 3.10内核源码分析--hung task机制
    进程的虚拟地址空间
  • 原文地址:https://www.cnblogs.com/ztguang/p/12644833.html
Copyright © 2011-2022 走看看