计算机与汽车都很多相似的地方,消费者无需懂得底层的纷繁复杂,只要它能开启并使用就行了——Android、Windows、OS X、以及Linux,也都是如此。当然,在开发出来之后,它们仍需经过多年的磨砺,才会变得更加成熟。不过Google正在神秘开发的、名叫“Fuchsia”的新系统,却不是这么一回事。
要构建Fuchsia,你需要注意两个方面。首先是打造在用户空间运行所需的工具和库,包括一个名叫“mxsh”的小型shell程序;其次是构建LK/Magenta。
搞定了上述部分之后,你就可以在一个文件系统上启动Magenta,然后用上Fuchsia的可执行用户空间。
想要运行Fuchsia,最简单的方法是使用热门开源机器模拟器“qemu”。事实上,Fuchsia的sourcetree中就已经包含了一个qemu副本。
当你启动Fuchsia的时候,可以看到很多内核级的调试信息,告诉你与系统启动相关的各种细节——第一句话是“welcometolk/MP”,然后是初始化各个子系统(如线程/计时器)。
再接着是CPU检测、计划任务、设备管理器、以及网络组件部分。引导完成之后,你可以看到一个名叫mxsh的简单shell程序。
mxsh自带了一些指令,包括cd(进出目录)、cp(复制)、echo(打印变量或字符串)、ls(显示目录下的文件)和rm(删除文件或目录)。
如果键入了非shell自带的指令,那么它会试图运行/boot/bin/路径下的同名程序。该路径下包含了许多不同的可执行文件,大多面向Fuchsia的测试和进一步开发。
以“thread-depth-test”为例,它主要用来测试Fuchsia的现成创建能力。此外还有一些简单的可执行文件,比如fortune和cowsay。
当然,Fuchsia最重要的是支持Dart。作为Google自家的脚本语言,其最初意在取代JavaScript)。但随着不断的发展,Dart已经是一款成熟的解释语言(Google甚至将它用到了AdWords系统中)。
Dart有两种工作方式,要么编译为Javascript(然后通过一个javascript解释器来运行)、要么直接通过单独的DartVM来“解释”(Fuchsia用的就是后者)。
要在Fuchsia上测试Dart,只需执行/boot/apps路径下的“hello_fuchsia.dart”——输入“dart/boot/apps/hello_fuchsia.dart”即可。(只会在控制台上显示Hello,Fuchsia!)
看到“Hello,Fuchsia!”,意味着Fuchsia已能够运行复杂的解释环境和运行脚本,如进程管理、线程管理、内存管理、文件I/O等。(这肯定让很多人想到了Linuxprev1.0发布的时候)
FuchsiaOS将让Dart发挥重要的作用,因为当前版本并未包含C编译器和其它高级语言(比如Java)。
鉴于Google已在Dart上投入了不少,这可能意味着该公司正在打造一款运行Fuchsia的设备、且会通过Dart进行编程。
当然,我们知道Fuchsia并不面向那些只有几KB内存的嵌入式设备。这可能是一款虚拟现实装置、家庭自动化产品、或者可以访问巨大的基础设施的AI智能设备。
有观点认为,Fuchsia可能是一款欲与Windows或OSX展开竞争的桌面操作系统,但在小编看来是有些荒谬的,毕竟已有Android和ChromeOS在前。