Fuchsia 是什么?Fuchsia OS 的未来如何?

最近谷歌的Fuchsia发布编程语言政策,Go没有通过,Rust不予提供,建议使用Dart、C/C++在知乎上了热话题。很多人解释了Go为什么没通过,那么Fuchsia是什么?为什么会引起热议?今天的文章对 Fuchsia做了一个全面的普及。

作者:恋猫de小郭

来源: 掘金

原文链接: https://juejin.im/post/5e5dfac751882549422...

今天意外地看到 Fuchsia 系统即将进入 “dogfood” 测试,也就是开发者已经对系统开始亲自测试的阶段,未来不远就可能进入公开测试阶段了,这对于 Flutter 开发者来说算是一个好消息。

img

Fuchsia 是 Google 开发的继 AndroidChromeOS 之后的第三个系统,它是在 2016 年首次被人提及,之后陆陆续续曝光的信息也可以看出 Fuchsia 是计划运行在智能手机、智能家具、电脑等设备之上,而目前看到最有可能采用 Fuchsia OS 的就是各类智能嵌入式设备

因为目前 Android 在手机平台上相对稳定,而通过物联网相关的智能设备如:智能音响、电视等开始试水风险较低。

Fuchsia 的独特之处在于它并非是一个 “Linux ” 相关的系统,而是采用了 Google 自己研发的全新微内核 Zircon,并使用 DartFlutter 作为界面开发的语言和框架

Linux 无关

因为 Linux 的 GPL “污染”,在 Fuchsia 之前 Google 其实对自己的操作系统是没有完全控制权的,而 Fuchsia 系统摆脱了 Linux ,所以也就摆脱了 GPL 开源协议的“污染”, FuchsiaZircon 内核采用的是混合开源协议(BSD 3 clause/MIT/Apache 2.0),而这样的选择显然可以让 Google 对系统更有控制力度。

因为 Linux 采用 GPL 开源许可证,一旦有代码涉及 Linux 部分的代码也需要被开源,所以当年 Android 不得不用 HAL 中间层来保护各大厂商的“利益”。

事实上目前的 Android 在非手机的智能设备上并不符合谷歌未来的期望,而相对较”轻”和自由的 Fuchsia 成了 Google 新的目标,毕竟之前 AndroidChromeOS 的底层都是 Linux,而 Linux 对于 Google 来说是不可控的。

Flutter

是的,说到 Fuchsia 就不得不说 DartFlutter,对很多开发者而言可能还不知道 Fuchsia ,但是一定听说过 DartFlutter

Flutter 作为谷歌推出的跨平台 UI 框架,2019 年 Flutter 成为跨平台开发的“新贵”,Flutter 框架目前支持 AndroidiOSWebMacOS 等平台,WinLinux 也在后续的支持计划中,所以从这里可以看出 Google 对于 Fuchsia 的部署还是相当有战略性,从 Flutter 的布局可以折射出:Google 希望通过 Fuchsia OS 去统一整个生态圈的表现

为什么说 Fuchsia 的部署具备战略性呢?正如当年 WinPhone 其实也相当优秀,但是在和 AndroidiOS 的竞争中却逐步失利,其中最大的外在原因之一就是:生态

img

所以这次 Google 在 Fuchsia 还未成熟之前,就先通过 Flutter 框架培养了一群应用开发者,并且通过 pub 插件平台提供了一系列的第三方持

虽然不能说 Google 会全力推广 Fuchsia, 但是在 Fuchsia 的未来上可以说是”步步为营”,比如接触过 Flutter 的开发者(Android/iOS/Web)可以更简单地在需要时转化为 Fuchsia 开发者,并且可以很快地将现有的应用或者功迁移到 Fuchsia 上,这是潜在的生态价值

粗旷点说:就像当年很多 Java 开发者可以转入 Android 一样,现阶段的 Flutter 开发者就是未来的 Fuchsia 开发者

Midori 曾是微软做过关于操作系统的全新尝试,但是在面对移植 Windows 功能代价不可接受的情况下被放置了。所以生态和成本是一个新系统的基石

另外, Fuchsia 在开发上彻底脱离了 JVMJAVA ,这样的好处就是: Dart语言是由 Google 亲生的,既不用担心被人“起诉”,又可以自由地修改 Dart 虚拟机,同时是 Flutter 使用 Dart 也不用再和 Oracle “相亲相爱”

最后可以看到,如下图所示是 Fuchsia 语言策略,其中大家比较不熟悉的 FIDL 其实就是: Fuchsia Interface Definition Language is the IPC system for Fuchsia ; 而 CC++ 是常年必备;Dart 也可以看到是 Flutter 的重要组成部分。

img

Fuchsia 的未来还不好说,但是至少目前的状态看起来还不错,不过 Fuchsia 是否能在国内取得和 Android 一样的成功这就不好说了,不过保持关注是没有错的,毕竟它是开源的,未来或者会有 CV 进阶版呢?

公众号:网管叨bi叨 | Golang、Laravel、Docker、K8s等学习经验分享
讨论数量: 1

emmm 我是新入坑的 Gopher 。弱弱地说一些,只属自己的理解,说错了大佬别打我。 Golang 应用场景主要在服务器后端。用来做界面开发,好像并不算得上是 Golang 的强项。(虽然可以借助第三方模块开发 Golang 界面应用)。既然是针对界面开发,而 Golang 也并不是那么地合适,最终小儿子 Dart 被选中也是情理之中。一开始我还以为这个系统连 Go 写的代码都不让运行了。况且 Google 也不可能对 Dart 采取放养的方式,毕竟两门编程语言都是亲儿子。Golang 在持续强势中,市场占有率只会越来越高。而如果 Dart 跟不上 Golang 的市场占有率,Google 会很心急。我认为,也许为了让 Dart 的市场占有率有所上升,Google 做了这样的决定。Java 我一点都不懂,但听说 Java 很适合做界面应用开发,而 Google 连候选名单中都不让 Java 上,可以说 Google 就想要跟甲骨文对怼。甲骨文有 Java 来实现霸权,那么 Google 手握 Golang 和 Dart 来跟你争。

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!