Pink + Purple == Fuchsia (一个新的操作系统)
欢迎来到Fuchsia!本文档有关于你需要的所有有关Fuchsia相关的资料
注意: Fuchsia资源包括平台底层核心Zircon。Fuchsia构建进程会将Zircon作为构建协同进程;要查看Zircon相关内容,请查看Zircon 开始文档。
准备工作
准备开发环境(只需一次)
Debian
sudo apt-get install build-essential curl git python unzip
macOS
1.安装命令行工具
xcode-select --install
2.除了需要命令行工具,你还需要安装最新版本的Xcode
获取源码
根据获取Fuchsia源码说明获取源码后返回本文档
构建Fuchsia
注意: 在这里可以快速浏览基本的构建和铺路工作流。
构建
如果你在获取源码的过程中已经把 .jiri_root/bin添加到了path路径里面,fx指令也已经添加到了path里面。如果没有,scripts/fx指令需要添加。
fx set core.x64 --with //bundles:kitchen_sink
fx build
第一个命令选择要构建的构建配置,并在输出目录(例如out/x64)中生成构建系统本身。Fuchsia可以通过网络临时下载软件包;在这里,我们使用 --available标志使本指南中涉及的必要包可供下载。
第二个命令实际执行构建,在构建产品中转换源代码。如果您修改了源代码树,您可以通过单独重新运行fx build命令来执行增量构建。fx - build启动一个监视程序,并在文件被更改时自动生成。
或者,您可以直接使用底层构建系统。
[可选] 自定义构建环境
默认情况下,您将得到一个x64调试构建。你可以跳过这一节,除非你想要别的。
运行fx set 可以查看编译选项列表。例如:
fx set workstation.x64 # x64 debug build
fx set core.arm64 # arm64 debug build
fx set core.x64 --release # x64 release build
[可选]使用ccache和goma加速构建
ccache通过缓存来自以前构建的构件来加速构建。如果设置CCACHE_DIR环境变量并引用存在的目录,则自动启用ccache。
[Googlers only: goma通过在许多机器上分发编译来加速构建。如果在~/goma中安装了goma,默认情况下使用它。默认情况下,它也优先使用ccache。]
若要覆盖默认行为,请将标志传递给fx set:
–ccache # force use of ccache even if goma is available
–no-ccache # disable use of ccache
–no-goma # disable use of goma
Boot Fuchsia
从硬件安装和引导
要让Fuchsia 在硬件上运行,需要使用铺路机(paver),这些说明将帮助您启动和运行。
**注意:**在这里可以快速浏览基本的构建和铺路(build-and-pave)工作流。
Boot from QEMU
如果没有支持的硬件,可以使用QEMU在模拟下运行Fuchsia。在buildtools/ QEMU下,Fuchsia包括为QEMU预构建的二进制文件。
fx run命令将在QEMU中启动Zircon,使用本地构建的磁盘映像:
fx run
有各种各样的标志fx运行控制QEMU的配置:
- -m sets QEMU’s memory size in MB.
- -g enables graphics (see below).
- -N enables networking (see below).
- -k enables KVM acceleration on Linux.
使用fx run -h查看所有可用选项。
QEMU 技巧
- ctrl+a x将在文本模式下退出QEMU。
- ctrl + a ?或ctrl+a h打印所有支持的命令。
使用图形
**注意:**由于缺乏Vulkan支持,QEMU下的图形非常有限。只有Zircon UI渲染。
要启用QEMU下的图形,请将-g标志添加到fx run:
fx run -g
使用网络
首先,为QEMU的使用配置一个虚拟接口。
一旦完成这一步,你可以添加-N和-u标志到fx运行:
fx run -N -u scripts/start-dhcp-server.sh
u标志运行一个脚本,该脚本设置一个本地DHCP服务器和NAT来配置IPv4接口和路由。
浏览Fuchsia
在一个单独的shell中,启动开发更新服务器,如果它还没有运行:
fx serve -v
网络状态下启动Fuchsia。这可以在QEMU中通过-N标志完成,也可以在上面描述的已铺好的硬件上完成。当Fuchsia引导并显示“$”shell提示符时,就可以运行程序了!
例如,要接受深度智能,运行:
fortune
要关闭或重新启动Fuchsia,请使用dm命令:
dm help
dm shutdown
修改一些资源
几乎所有存在于Fuchsia系统中的东西都存储在Fuchsia包中。典型的开发工作流包括重新构建并将Fuchsia包推入开发设备或QEMU虚拟设备。
在示例/rolldice/src/main.rs中更改rolldice二进制文件。
重新构建并将rolldice包推送到运行中的Fuchsia设备,使用:
fx build-push rolldice
从Fuchsia设备上的shell提示符,运行更新后的rolldice组件:
rolldice
选择选项卡
启用图形启动后,Fuchsia显示多个选项卡。当前选中的选项卡在屏幕顶部以黄色突出显示。您可以使用键盘上的Alt-Tab切换到下一个选项卡。
- 选项卡0是控制台,显示引导和组件日志。
- 选项卡1、2和3包含shell。
- 选项卡4及以上包含已启动的组件。
**注意:**要选择制表符,您可能需要进入“控制台模式”。有关详细信息,请参见下一节。
启动图形组件
QEMU不支持Vulkan,因此无法运行我们的图形堆栈。
Fuchsia中的大多数图形组件都使用Scenic系统合成器。你可以启动这些组件,通常可以在/system/apps中找到,如下所示:
lauch spinning_square_view
Scenic 示例应用程序的源代码在这里。
当您启动使用Scenic、使用硬件加速图形的东西,或者构建默认包(将引导到Fuchsia系统UI)时,Fuchsia将进入“图形模式”,不会显示任何文本shell。为了使用文本shell,您需要通过按Alt-Escape进入“控制台模式”。在控制台模式下,Alt-Tab将具有上一节描述的行为,再次按Alt-Escape将返回图形化shell。
如果您希望在终端仿真器中使用文本shell,可以从图形化shell中启动术语,方法是选择“Ask Anything”框并键入moterm。
####运行测试
编译后的测试二进制文件像其他组件一样缓存在pkgfs中,并由URI引用。您可以通过在终端中调用它来运行测试。如。
run fuchsia-pkg://fuchsia.com/ledger_tests#meta/ledger_unittests.cmx
如果您想让Fuchsia继续运行,并重新编译和重新运行测试,请在一个终端上运行启用联网的Fuchsia,然后在另一个终端上运行:
fx run-test < test name> [< test args>]
您可能希望仔细阅读测试FAQ。
贡献的变化
其它参考文档
- Fuchsia documentation hub
- Working with Zircon - copying files, network booting, log viewing, and more
- Documentation Standards - best practices for documentation
- Information on the system bootstrap component.
- Workflow tips and FAQ that help increase productivity.