TA的每日心情 | 无聊 2016-9-11 15:26 |
---|
签到天数: 107 天 连续签到: 1 天 [LV.6]常住居民II 扫一扫,手机访问本帖
|
外媒Android Authority在几天前撰写了一篇介绍Fuchsia的文章,其中包含了一个指向编译指南的链接,感兴趣的网友可以到那里查看如何构建一个可启动的系统。
打造Fuchsia的最简单的方法,就是使用基于64位英特尔平台的Ubuntu Linux机器(当然也支持在OS X和Debian等其它Linux发行版上编译)。
如果你对Linux不熟悉,接触命令行的技能也相对有限,那么这份工作可能并不是很适合。当前Fuchsia主要由两大部分组成——Magenta内核,以及工具组、库、程序等。
Magenta是个小内核(LK),所以Fuchsia也是个功能相对有限的小系统。其主要面向嵌入式设备和bootloaders,支持连接诸多外设的驱动、还有一个“用户模式”。
要构建Fuchsia,你需要注意两个方面。首先是打造在用户空间运行所需的工具和库,包括一个名叫“mxsh”的小型shell程序;其次是构建LK/Magenta。
搞定了上述部分之后,你就可以在一个文件系统上启动Magenta,然后用上Fuchsia的可执行用户空间。
想要运行Fuchsia,最简单的方法是使用热门开源机器模拟器“qemu”。事实上,Fuchsia的source tree中就已经包含了一个qemu副本。
当你启动Fuchsia的时候,可以看到很多内核级的调试信息,告诉你与系统启动相关的各种细节 —— 第一句话是“welcome to lk/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解释器来运行)、要么直接通过单独的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发布的时候)
Fuchsia OS将让Dart发挥重要的作用,因为当前版本并未包含C编译器和其它高级语言(比如Java)。
鉴于Google已在Dart上投入了不少,这可能意味着该公司正在打造一款运行Fuchsia的设备、且会通过Dart进行编程。
当然,我们知道Fuchsia并不面向那些只有几KB内存的嵌入式设备。这可能是一款虚拟现实装置、家庭自动化产品、或者可以访问巨大的基础设施的AI智能设备。
有观点认为,Fuchsia可能是一款欲与Windows或OS X展开竞争的桌面操作系统,但在小编看来是有些荒谬的,毕竟已有Android和Chrome OS在前。
|
|