Google酝酿中名叫Fuchsia的神秘新系统

计算机与汽车都很多相似的地方,消费者无需懂得底层的纷繁复杂,只要它能开启并使用就行了——Android、Windows、OS X、以及Linux,也都是如此。当然,在开发出来之后,它们仍需经过多年的磨砺,才会变得更加成熟。不过Google正在神秘开发的、名叫“Fuchsia”的新系统,却不是这么一回事。

Google酝酿中名叫Fuchsia的神秘新系统的照片 - 1

外媒Android Authority在几天前撰写了一篇介绍Fuchsia的文章,其中包含了一个指向编译指南的链接,感兴趣的网友可以到那里查看如何构建一个可启动的系统。

打造Fuchsia的最简单的方法,就是使用基于64位英特尔平台的Ubuntu Linux机器(当然也支持在OS X和Debian等其它Linux发行版上编译)。

如果你对Linux不熟悉,接触命令行的技能也相对有限,那么这份工作可能并不是很适合。当前Fuchsia主要由两大部分组成——Magenta内核,以及工具组、库、程序等。

Magenta是个小内核(LK),所以Fuchsia也是个功能相对有限的小系统。其主要面向嵌入式设备和bootloaders,支持连接诸多外设的驱动、还有一个“用户模式”。

Google酝酿中名叫Fuchsia的神秘新系统的照片 - 2

要构建Fuchsia,你需要注意两个方面。首先是打造在用户空间运行所需的工具和库,包括一个名叫“mxsh”的小型shell程序;其次是构建LK/Magenta。

搞定了上述部分之后,你就可以在一个文件系统上启动Magenta,然后用上Fuchsia的可执行用户空间。

想要运行Fuchsia,最简单的方法是使用热门开源机器模拟器“qemu”。事实上,Fuchsia的source tree中就已经包含了一个qemu副本。

当你启动Fuchsia的时候,可以看到很多内核级的调试信息,告诉你与系统启动相关的各种细节 —— 第一句话是“welcome to lk/MP”,然后是舒适化各个子系统(如线程/计时器)。

Google酝酿中名叫Fuchsia的神秘新系统的照片 - 3

再接着是CPU检测、计划任务、设备管理器、以及网络组件部分。引导完成之后,你可以看到一个名叫mxsh的简单shell程序。

mxsh自带了一些指令,包括cd(进出目录)、cp(复制)、echo(打印变量或字符串)、ls(显示目录下的文件)和rm(删除文件或目录)。

如果键入了非shell自带的指令,那么它会试图运行 /boot/bin/ 路径下的同名程序。该路径下包含了许多不同的可执行文件,大多面向Fuchsia的测试和进一步开发。

以“thread-depth-test”为例,它主要用来测试Fuchsia的现成创建能力。此外还有一些简单的可执行文件,比如 fortune 和 cowsay 。

Google酝酿中名叫Fuchsia的神秘新系统的照片 - 4

当然,Fuchsia最重要的是支持Dart。作为Google自家的脚本语言,其最初意在取代Java)。但随着不断的发展,Dart已经是一款成熟的解释语言(Google甚至将它用到了AdWords系统中)。

Dart有两种工作方式,要么便以为Java(然后通过一个java解释器来运行)、要么直接通过单独的Dart VM来“解释”(Fuchsia用的就是后者)。

要在Fuchsia上测试Dart,只需执行 /boot/apps 路径下的 “hello_fuchsia.dart”—— 输入“dart /boot/apps/hello_fuchsia.dart”即可。(只会在控制台上显示Hello,Fuchsia!)

看到“Hello, Fuchsia!”,意味着Fuchsia已能够运行复杂的解释环境和运行脚本,如进程管理、线程管理、内存管理、文件I/O等。(这肯定让很多人想到了Linux pre v1.0发布的时候)

Google酝酿中名叫Fuchsia的神秘新系统的照片 - 5

Fuchsia OS将让Dart发挥重要的作用,因为当前版本并未包含C编译器和其它高级语言(比如Java)。

鉴于Google已在Dart上投入了不少,这可能意味着该公司正在打造一款运行Fuchsia的设备、且会通过Dart进行编程。

当然,我们知道Fuchsia并不面向那些只有几KB内存的嵌入式设备。这可能是一款虚拟现实装置、家庭自动化产品、或者可以访问巨大的基础设施的AI智能设备。

有观点认为,Fuchsia可能是一款欲与Windows或OS X展开竞争的桌面操作系统,但在小编看来是有些荒谬的,毕竟已有Android和Chrome OS在前。

[编译自:Android Authority]

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: