近日,谷歌公司终于公布了其 Fuchsia 操作系统迄今为止最为完整的说明文档,旨在供开发人员以及修复人员闲暇时进行阅读了解,这份名为《Fuchsia is not linux》的文档正式揭开 Fuchsia 操作系统的神秘面纱。此前,用户要获取这款操作系统相关的细节信息,需要通过各类渠道。
Fuchsia 操作系统:
由谷歌公司开发的继 Android 和 Chrome OS 之后的第三个系统,目前Android 和 Chrome OS都是使用 Linux 内核,但从这份最新发布的说明文档中,谷歌明确 Fuchsia 并非基于 Linux内核。
《Fuchsia is not linux》内容简介
本周发布的《Fuchsia is not linux》终于不再是一大堆 Git 管理下的开源代码,而是一份真正面向程序员的 Fuchsia 交互引导指南。
作为一套适用于嵌入式设备的操作系统,Fuchsia 采用微内核架构。《Fuchsia is not linux》说明文档列出了其内核设计,软件界面,用于运行程序、存储数据以及访问网络 的周边服务与库,外加用户在屏幕上进行图形绘制的具体方式。根据这份说明文档判断,该操作系统的开发工作仍在进行当中。
重点介绍“Little Kernel 微内核”
这些文档中大量提及lk,即 研究人员 Travis Geiselbrecht 开发而成的 Little Kernel 微内核,他于2012年正式加盟谷歌公司,并自2015年以来带领谷歌员工致力于开发 Fuchsia。他的操作系统设计功力在该项目当中发挥了巨大作用。
Fuchsia 内核 Zircon
Fuchsia 内核被命名为 Zircon,其基于 lk 并以 C 语言编写而成。该内核为应用程序提供了32位句柄以通过系统调用处理各类对象。这些对象分别负责管理内存、与其它运行中的程序交换信息并使用同步原语。此外,Fuchsia 内核中还包含通过 syscalls 实现对象操作的 C++类。
这份内核说明文档中还定义了其它一些概念,包括作业、进程以及线程,信号,等待规则以及事件等。
接下来值得一提的是 Zircon Core,其负责处理设备驱动程序、POSIX 兼容输入与输出、一套 C 运行时外加 ELF 二进制加载。在此之上的是 Zircon 框架,其负责运行核心库、应用程序并提供命名空间与沙箱环境。目前的这份文档已经完整涵盖存储、网络与图形等相关内容。而相关源代码指定 x86-64 与 arm64 作为受支持处理器架构。
不过谷歌公司在《Fuchsia is not linux》中并没有完成兼容性章节的内容,其中虽然列出了“向下兼容性”一章,但未提供具体链接。但已经提到将对所支持的 POSIX 子集作出解释,且给出了“Web 运行时”这一模棱两可的标题。
Fuchsia 或淘汰 Android
一旦 Fuchsia 投入使用,它就能解决安卓最大的问题,碎片,此外,Fuchsia 或许还能修复另一个关于安卓系统的恼人的问题,就是开发人员将会利用 Flutter,来让他们生产能够在不同的操作系统上运行,并且适应各种设备的应用,无论是 iPhone X 的 iOS 11 还是谷歌 Pixel 的 Android P。谷歌表示,通过Flutter,开发人员能够开发更优质、性能更高的应用,还能够更快的部署其应用。
关于Flutter和Fuchsia的关系,这是因为,Fuchsia 的用户界面时利用 Flutter SDK 构建,而 Flutter 能够在安卓系统和 iOS 系统上运行,因此 Flutter 制作的 iPhone 和安卓应用都可以和 Fuchsia 兼容。
当 Fuchsia 最初于2016年面市时,人们本以为谷歌将其作为一套备用移动操作系统,以避免因甲骨文长期 Java 诉讼而给 Android 系统造成毁灭性影响,如果谷歌方面不看好Android 这款基于 Linux 的操作系统,拥有 Fuchsia 这样一套备用选项无疑也更为方便。
两周前,美国法院正式宣布谷歌公司在 Android 开发过程中存在侵犯甲骨文 Java 版权的行为。法院下令,要求谷歌方面向数据库巨头交付90亿美元的罚款,谷歌公司尚未就此事是否会影响到 Android 的未来作出明确表态。即使这份说明文档表明谷歌公司对 Fuchsia 的重视程度,也仍无法断言 Android 是否终究会被淘汰。