作者 | Evana Margain

译者 | 明明如月

整理 | 夕颜,责编 | 唐小引

出品 | CSDN(ID:CSDNnews)

在过去的 8 到 10 年里,移动市场一直被两个我们都熟悉的系统所主导: 安卓和 iOS。我们总是认为现在了解的事物永远不会结束,但是随着科技的发展,谷歌已经不再这么认为。自 2016 年 8 月以来,谷歌一直致力于研发全新操作系统 Fuchsia。在预想中,这个“通用”的操作系统能够无缝运行于所有平台,如智能设备、平板电脑和智能手机。一些人认为它可能是 Android 的终结者。

在这篇文章中,我们来深入了解一下这个被称为“Fuchsia”的操作系统,并讨论它是否真的能替代安卓。

预计已进入开发者试用阶段

据外媒的最新消息,谷歌新操作系统Fuchsia OS的开发已经接近尾声,进入开发者亲自试用的阶段。

据说,谷歌在软件开发周期中会进行多轮测试,在让普通用户测试之前,通常会有一个开发人员亲自上阵的“狗粮”测试期,也就是让开发者亲自安装使用操作系统,通过亲身感受找到系统的优点和不足。“狗粮”测试很可能是谷歌将开发产品推向公众之前的最后一次全公司范围的测试阶段。

除了阿尔法和贝塔等正常公共测试,谷歌还会有很多内部测试,如小范围的“鱼食”测试,以及在“鱼食”和“狗粮”之间的“团队食品”测试阶段,等等,过程繁复严苛。

这次外媒之所以声称Fuchsia OS已接近尾声,就是因为他们发现在过去的一年里,有迹象表明,至少Fuchsia OS下一代操作系统的部分功能已经经历了鱼食阶段和团队食品阶段的开发测试,而在最近Fuchsia OS的一些代码变化中,出现了“为狗粮发行版本”准备的字样,这代表着一些开发者可能已经启动了“狗粮测试”。

如果最终的内部测试进展顺利,谷歌完全有可能提前把Fuchsia OS测试版提交给第三方开发者,进入“开发者测试阶段”。

虽然近期由于新冠病毒的全球蔓延,MWC、Facebook F8开发者大会相继取消,但是谷歌却暂时没有取消2020年度I/O大会的迹象。不久前,谷歌还正式放了I/O开发者大会的注册通道,入场券的价格为1150美元,学术类通行证售价375美元。

然而,特殊情况下一切皆有变数,2020年度I/O大会能否顺利举行,以及是否会在大会上公布Fuchsia OS开发测试版,还是要打上大大的问号。

Fuchsia OS项目的起源、发展

自从4年前,也就是2016年8月15日公布初始版本之前,Fuchsia OS就一直笼罩在一层神秘的色彩之下,直到2019年Fuchsia OS的开发者网站Fuchsia.dev上线,Fuchsia OS的神秘面纱才被彻底揭开。

为了更好地了解它,下面我们来简单回顾下Fuchsia OS的起源与发展历程的时间轴:

  • 2016年8月,媒体报道了发布于GitHub上的神秘源码,显示Google正在开发一个名为“Fuchsia”的新操作系统,虽然官方没有正式公布,其源码检查显示其能够跨平台运行,包括“汽车的娱乐媒体系统和嵌入式设备,如红绿灯、数字手表、智能手机、平板电脑与个人电脑”。
  • 2017年5月,外媒首次发布关于Fuchsia的新用户界面的文章,此后多家媒体提到“Fuchsia项目”和Android似乎有密切联系,有人猜测Fuchsia可能是“重做”或替换Android以在某种程度上修复该平台上的问题。
  • 2017年11月,对Swift语言提供了初始支持。
  • 2018年1月3日,Google允许开发者以Google Pixelbook为目标设备,下载Fuchsia OS进行开发与测试。
  • 2018年4月,Fuchsia的源代码出现在AOSP的ART当中,疑似是AOSP已经开始将ART移植至Fuchsia上,但源代码仍处于被注释处理的状态。
  • 2019年5月13日,在息壤开源镜像站和重庆大学镜像站 weerac 的努力下,Fuchsia OS 源码国内镜像正式上线。国内开发者们可以通过 git 方式获得主 repo 核心代码;以及从镜像站获取完整代码,包括第三方代码,以及单独的 tar 包,Fuchsia 镜像同时提供每日当天打包的源码包。

图源:Fuchsia中文社区

  • 2019年6月28日,Fuchsia OS的开发者网站Fuchsia.dev上线。
  • 2020年2月,Fuchsia OS预计已进入开发者试用阶段。

Fuchsia OS和之前的操作系统有何不同?在谷歌 Fuchsia 开发者入门指南开头, Fuchsia这样描述这个项目: “ Pink(粉色) + Purple(紫色) == Fuchsia (Fuchsia,一种新的操作系统)”。Fuchsia OS开发者入门指南:https://fuchsia.dev/fuchsia-src/getting_started。关于入门指南,参考下文详细解释。?乍一看,这个短语只是颜色的定义以及这个产品是一个操作系统的明确声明。但事实并非如此。Pink 是指苹果第一个面向对象的微内核操作系统,而 Purple 是苹果 iPhone 的第一个代号。我的第一反应是... 为啥和苹果纠缠不清?

微内核操作系统

首先需要注意的是,该系统与基于Linux的Android或Chrome操作系统不同,Fuchsia源于 一种名为“Zircon”操作系统微内核,是支持Fuchsia的核心平台。Fuchsia还提醒开发者,Fuchsia的构建过程将考虑进Zircon的副作用,因此,为了顺利单独使用Zircon,需要按照Zircon指南文档的指导进行:https://fuchsia.dev/fuchsia-src/development/kernel/getting_started内核是所有计算机的核心,是控制一切的基本程序。这里的“微”指的是非常小规模的东西。作为微内核,Fuchsia 可以在任何设备上运行,包括传统的电脑、手机和物联网设备(如你的冰箱或微波炉)。

Fuchsia支持跨设备使用

考虑到上面提到的:Fuchsia 是一个微内核操作系统,我们可以设想谷歌设计它的目的是让不同的设备使用相同操作系统。也许我们现在很少注意到,在你的手机和电脑上运行的操作系统其实是不同的。即使你有一台 Mac 和一台 iPhone,用户界面可能看起来很相似,但核心也是不同的。那么问题来了:  跨设备使用相同的操作系统有什么好处?答案就是如果不同设备使用的操作系统相同,你只需要开发一个应用程序即可实现跨设备使用,唯一需要改变的是用户界面。这还需要考虑其他问题。例如,输入设备是不一样的,手机没有物理键盘,电脑不总是支持触摸手势,一些电脑可能不含 GPS 芯片或加速器等。这些都是谷歌需要考虑的因素。

支持多种编程语言

特别有意思的是你可以用 Xcode 11 构建 Fuchsia 。Fuchsia可以支持多种语言的应用程序,包括 README 、C/C++FIDL、Go、Rust、Python、Flutter、Java、Swift、Dart。到目前为止,移动平台只支持一种本地语言,但未来可能支持多种编程语言。

2020年就可以用了

目前 Fuchsia 已经可以在一些设备上运行,比如Acer Switch 12、Intel NUC、Google Pixelbook。目前只能参考指南的介绍自行构建此系统,市面上还没有使用 Fuchsia 的产品。

动手构建一个Fuchsia系统尝鲜吧!既然市面上还没有使用Fuchsia的产品,先动手尝下鲜也是极好的。从Fuchsia开发者网站上给出的文档中,我们至少可以得到以下几个信息:1.  这个构建过程叫做 pave (铺路)。2. 你需要一台主机和一台目标设备。换句话说,你需要在计算机上构建它,然后将其传输到目标设备上。3. 你可以在 Linux 和  Mac OS X 中使用它。具体的构建过程是怎样的呢?我们慢慢来看。

前提

准备构建环境

  • Debian
1sudo apt-get install build-essential curl git python unzip
  • macOS
  1. 安装命令行工具:
1xcode-select --install
  1. 除了命令行工具外,还需要安装最新版本的Xcode。

获得来源

获得Fuchsia来源,需要根据指南下载,这个过程耗时将近60分钟,可按照文档操作:https://fuchsia.dev/fuchsia-src/development/source_code

构建Fuchsia

如果你在获取源代码的过程中将.jiri_root / bin添加到了路径中,则fx命令应该已经在路径中了。如果没有,该命令也可以作为scripts / fx使用。

1fx set core.x64 --with //bundles:kitchen_sink2fx build

fx set命令可配置构建内容,并在默认输出目录out / default和out / default.zircon中生成构建规则和元数据。参数core.x64是指产品和电路板的定义,描述了你的Fuchsia设备已构建并可用的软件包。运行Fuchsia的设备可以通过网络临时下载和安装软件包,在开发环境中,你的开发工作站就是这些临时软件包的来源。电路板和产品定义包含一组软件包,但是如果你需要添加其他软件包,请使用--with标签。此示例包括kitchen_sink,这个英文习语的意思是“几乎所有内容”。当你更加专注于开发时,你可能会使用更具体的--with选项,以减少构建时间。fx build命令运行构建,将源代码转换为程序包和其他构建工件。如果你修改源代码,则可以通过单独重新运行fx build命令来进行增量构建。fx -i build启动监视程序,并在文件更改时自动进行构建。有关更多详细信息,请参见基础构建系统指南:https://fuchsia.dev/fuchsia-src/concepts/build_system其他选择:使用ccache加速构建ccache通过缓存以前构建的工件来加速构建。如果设置了CCACHE_DIR环境变量并引用了存在的目录,则会自动启用ccache。要覆盖默认行为,请将标签传递给fx set:

1--ccache     # force use of ccache even if goma is available2--no-ccache  # disable use of ccache

Boot Fuchsia从硬件安装和引导要想Fuchsia在硬件上运行,需要用到paver,具体操作参见https://fuchsia.dev/fuchsia-src/development/hardware/paving从QEMU引导如果没有支持的硬件,则可以使用QEMU在仿真下运行Fuchsia。Fuchsia在prebuilt / third_party / qemu下包含QEMU的预构建二进制文件。fx emu命令将使用本地构建的磁盘映像在QEMU中启动Fuchsia:

1fx emu

fx emu有各种标志来控制仿真器配置:

  • -N启用联网(请参见下文)。
  • --headless禁用图形(见下文)。
  • -c将其他参数传递给内核。

使用fx emu -h查看所有可用选项。注意:在运行任何命令之前,你需要按照Explore Fuchsia部分中的说明进行操作。启用网络为了使临时软件在仿真器中运行,必须配置IPv6网络。在macOS上:安装“ http://tuntaposx.sourceforge.net/download.xhtml”。在Linux上:运行sudo ip tuntap add dev qemu模式,点击用户$ USER && sudo ip link set qemu up现在,仿真器可以在启用网络的情况下运行:

1fx mu -N

以上内容足以使临时软件(由fx serve提供服务)能够正常运行,其中包括许多工具,例如uname和fortune(如果已构建)。另外,希望从仿真器访问Internet的用户还需要在仿真器TAP接口上配置某种方式的IP转发和IPv4支持。

Explore Fuchsia

在单独的shell中,启动开发更新服务器(如果尚未运行):

1fx serve

用网络启动Fuchsia。可以通过-N标志在QEMU中完成此操作,也可以在已安装的硬件上完成。当Fuchsia启动并显示“ $” shell提示符后,就可以运行程序了!例如,要获得deep wisdom,运行:

1fortune

要关闭或重新启动Fuchsia,使用dm命令:

1dm shutdown2dm reboot

更改一些来源Fuchsia系统上几乎所有的东西都存储在Fuchsia的包装中。通常的开发工作流程包括重建Fuchsia软件包并将其推送到开发设备或QEMU虚拟设备。在examples / rolldice / src / main.rs中更改rolldice二进制文件。重新构建rolldice软件包并将其推入运行中的Fuchsia设备,方法是:

1fx build-push rolldice

在Fuchsia设备的shell提示符下,使用以下命令运行更新的rolldice组件:

1rolldice

选择一个标志启用了图形的引导后,Fuchsia显示多个选项卡。当前选择的选项卡在屏幕顶部以黄色突出显示。以下键盘快捷键可以浏览终端:

  • Alt + Tab在选项卡之间切换。
  • Alt + F {1,2,...}直接切换到选项卡。
    • Tab 0是控制台,该控制台显示引导和组件日志。
    • Tab 1、2和3包含shell。
    • Tab 4和更多包含你已启动的组件。
  • Alt +上/下按行上下滚动。
  • Shift + PgUp / PgDown上下滚动半页。
  • Ctrl + Alt + Delete重新启动。

注意:要选择Tab,你可能需要输入“控制台模式”。有关详细信息,请参见下一部分。启动图形组件警告:QEMU不支持Vulkan,因此无法运行我们的图形堆栈。本节中的命令不适用于QEMU。Fuchsia中的大多数图形组件都使用Scenic系统合成器。你可以启动通常在/ system / apps中的此类组件,如下所示:

1present_view fuchsia-pkg://fuchsia.com/spinning_square_view#meta/spinning_square_view.cmx

当你启动使用Scenic的东西,使用硬件加速的图形或构建默认程序包(将引导至Fuchsia System UI)时,Fuchsia将进入“图形模式”,该模式将不显示任何文本样式。为了使用文本样式,你需要按Alt-Escape进入“控制台模式”。在控制台模式下,Alt-Tab将可以进行上文所述才做,再次按Alt-Escape可返回图形样式。

运行测试

和其他组件一样,已编译的测试二进制文件也缓存在pkgfs中,并由URI引用。你可以在终端中调用来运行测试。例如:

1run fuchsia-pkg://fuchsia.com/ledger_tests#meta/ledger_unittests.cmx

如果要让Fuchsia保持运行状态,然后重新编译并重新运行测试,就在一个终端中启用联网的情况下运行Fuchsia,然后在另一终端中运行:

1fx test <test name> [<test args>]

如果要进一步操作,可以参考以下链接,篇幅所限,不能一一详解:https://fuchsia.dev/fuchsia-src/development

真的能完全代替安卓/Chrome OS吗?本文是对谷歌 Fuchsia 的一个系统性的总结,谷歌目前还尚未做出关于这个系统的任何回应和评价。自Fuchsia诞生之初,围绕它是否会成为改变操作系统格局的深水炸弹之争就一直存在。据说,Fuchsia开发团队里有35名,约1/4的开发人员也是安卓的开发人员。另据传闻,Google的设计副总裁 Matias Duarte (也是 Material Design 的创始人)可能也参与到了Fuchsia项目,与安卓千丝万缕的关系,让Fuchsia与安卓之间的关系更是好奇。一些专家认为,手握“跨平台”优势的Fuchsia将是操作系统领域下一个可以取代安卓操作系统的“大杀器”,谷歌不会放弃这个机会,而有人认为技术变化得如此之快,再加上华为鸿蒙OS的推出赶上日程,有媒体猜测,鸿蒙可能将打通手机、电脑、平板、电视、汽车和智能穿戴等多种设备的统一操作系统,并兼容全部安卓应用和所有Web应用。届时,在操作系统领域,Fuchsia还将面临更多竞争,到底谁将替代安卓/Chrome OS,是否足够强大到能够替代,还有待时间的验证。按照这份入门指南,你现在应该可以上手自行创建一个Fuchsia系统了,试用的感受如何?和安卓Chrome OS相比,它用起来更简单方便吗?欢迎留言告诉我你的想法。

参考链接:

https://medium.com/better-programming/google-fuchsia-androids-replacement-code-in-mobile-5ebafe8eb11a

本文为CSDN编译文章,转载请注明出处。

【End】

《原力计划【第二季】- 学习力挑战》

正式开始

即日起至 3月21日

千万流量支持原创作者

更有专属【勋章】等你来挑战

推荐阅读 ☞华为或将推出“华为搜索”;飞书回应微信指控;Fuchsia OS 进入开发者试用阶段 | 极客头条☞那些神一样的程序员☞超30亿人脸数据被泄露,美国AI公司遭科技巨头联合“封杀”

☞狂赚 1200 亿,差点收购苹果,影响千万程序员,那个叫做太阳的公司却陨落了!

☞AWS还是Firebase?在移动应用后端应该使用哪个?

☞两成开发者月薪超 1.7 万、算法工程师最紧缺!| 中国开发者年度报告

你点的每一个在看,我认真当成了喜欢

openresty完全开发指南_谷歌 Fuchsia OS 进入开发者测试阶段,它真的会代替安卓吗?...相关推荐

  1. 谷歌 Fuchsia OS 进入开发者测试阶段,它真的会代替安卓吗?

    作者 | Evana Margain 译者 | 明明如月 整理 | 夕颜,责编 | 唐小引 出品 | CSDN(ID:CSDNnews) 在过去的 8 到 10 年里,移动市场一直被两个我们都熟悉的系 ...

  2. openresty完全开发指南_送给你,PBA商业分析指南(全书下载)

    商业分析指南简介: 预计在未来的3-5年里, 组织对商业分析师的人才需求会不断增长,PMI职业脉搏调查中有 53%的组织报告有这样的人才需求计划.研究也表明, 一些项目问题将持续困扰着组织, 而这些问 ...

  3. 七牛云php回调,回调通知_开发指南_对象存储 - 七牛开发者中心

    回调通知是指客户端在上传时指定服务端在处理完上传请求后,应该通知某个特定服务器,在该服务器确认接收了该回调后才将所有结果返回给客户端. 因为加入了回调请求和响应的过程,相比简单上传,使用回调通知机制一 ...

  4. fuchsiaos和鸿蒙os区别,谷歌Fuchsia OS和华为鸿蒙系统(HarmonyOS)没有必然联系

    谷歌Fuchsia OS和华为鸿蒙系统(HarmonyOS)都是属于新一代的操作系统,这两个系统都不基于Linux,更不基于安卓(Android).基于这个思路,有人认为它们有一些联系,或者说在开发构 ...

  5. 一周看点 | Docker创始人再创业;谷歌Fuchsia OS负责人离职;淘宝小范围内测微信支付;蒋凡卸任淘宝董事长...

    Docker创始人再创业 Solomon Hykes和他在Docker的同事一起创立了Dagger,日前刚刚完成了2000万美元的A轮融资.Dagger要帮助DevOps工程师们将自己的管道编写成CU ...

  6. 华为补助武汉员工,最高每日 2000 元;谷歌更新安卓修复数百万台芯片漏洞;Fuchsia OS进入开发者试用阶段 | EA周报...

    EA周报 2020年3月6日 每个星期7分钟,元宝带你喝一杯IT人的浓缩咖啡,了解天下事.掌握IT核心技术. 热点大事件 全国新增确诊143例(湖北126例),新增境外输入确诊16例 3月5日0-24 ...

  7. 华为或将推出“华为搜索”;​飞书回应微信指控;Fuchsia OS 进入开发者试用阶段 | 极客头条...

    整理 | 屠敏 头图 | CSDN 下载自东方 IC 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦 ...

  8. 想快速体验谷歌 Fuchsia OS?FImage 项目来了!

    整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 上周三谷歌正式官宣,要向第一代 Nest Hub 正式推出 Fuchsia OS.自此,这个谷歌"藏"了 5 年的操 ...

  9. 传 ofo 年底裁员超 50%;Vivo 支持谷歌 Fuchsia OS;Spring Boot 2.2.2 发布 | 极客头条

    整理 | 屠敏 快来收听极客头条音频版吧,智能播报由标贝科技提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注 ...

最新文章

  1. jetty debug 启动 jettyconfig配置文件
  2. 虚拟机 搭建LVS + DR + keepalived 高可用负载均衡
  3. CoffeeScript 1.9发布,引入对生成器的支持
  4. SiftingAppender:将不同的线程记录到不同的日志文件中
  5. [TODO]Python拾遗(三)
  6. 实现点击按钮复制文本(Clipboard包)
  7. 零基础想学Python,明白这2点,越快年薪30W!
  8. 几个常用存储引擎的特点
  9. 数据可视化—如何利用R,制作DashBoard
  10. android 银行卡号 4位,Android中的EditText输入银行卡号四位空一格
  11. 采集屏幕编码H264
  12. 激活Windows10,激活软件被报出,软件存在威胁或者恶意程序?
  13. 全国计算机等级考试三级Linux应用与开发技术考试-习题汇总
  14. java英语流利_day186-2018-12-23-英语流利阅读-待学习
  15. Java FTP下载文件
  16. 计算机及应用课程实验,计算机网络及应用课程实验指导书
  17. 笔记本蓝牙模块转USB接口方法
  18. 网站业务被攻击,CPU100%负载满了怎么解决
  19. vue中添加语音播报的功能
  20. 状态空间表示法----野人与修道士

热门文章

  1. 留存电脑硬盘的影视剧作品
  2. 前端实现调用手机照相机并加辅助框
  3. 前端练习记录(模仿天猫首页)
  4. bit、Byte、bps、Bps、pps单位详解
  5. python抓取网站访客手机号_三网运营商大数据实时截流网站访客
  6. 电视android内置系统界面,系统界面:原生安卓 定制界面_汽车科技评测-中关村在线...
  7. bzoj2215: [Poi2011]Conspiracy
  8. 网站分析高级细分六脉神剑之第五脉
  9. DeFi众生相:从08年美国次贷危机及技术、设计架构看行业走向
  10. V型测试,W型测试和H型测试