开始Fuchsia

2023-12-08 20:49
文章标签 fuchsia

本文主要是介绍开始Fuchsia,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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。

贡献的变化

  • 查看CONTRIBUTING.md。
其它参考文档
  • 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.

这篇关于开始Fuchsia的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/471290

相关文章

如何看待 Google 最新的系统 Fuchsia?

想必大家都知道了,前几天 Google 曝光了新 OS Fuchsia 的部分信息与 UI,已经很多人在后台给我留言,让我说说看法,那么趁我还没去美国,就给大家写篇文章普及下,顺便说下我个人对 Fuchsia 系统的期待与看法。 Google 在开发一个全新的系统其实一直都不是秘密了,只不过 Google 一直没有透露出更多的消息,只透露说 Fuchsia 是完全区别于 Android 和 Ch

Fuchsia 源码下载

准备活动 Ubuntu sudo apt-get install texinfo libglib2.0-dev liblz4-tool autoconf libtool libsdl-dev build-essential golang git curl unzip 下载源码 Jiri export FUCHSIA_ROOT=$HOME/fuchsiacurl -s https://r

取代安卓?谷歌新系统 Fuchsia OS 即将杀青,详解C、C++等与Go的优劣势对比

转载自公众号|SegmentFault ID|segmentfault_sudo  作者|徐九 Fuchsia OS 作为 Google 正在开发的实验性操作系统,引发了大众很多猜测,比如其将取代 Android 系统。 实际上,这是谷歌开发的继 Android 和 Chrome OS 之后的第三个操作系统,并且是一个「非 Linux 系」的系统,采用了谷歌全新微内核 Zircon,并使用 D

雷军:年轻人入职半年内不要提意见,不靠谱;微信表情新彩蛋遭疯狂吐槽:满屏“炸屎”;谷歌正式推出 Fuchsia OS...

凌云时刻 一分钟速览新闻点 雷军称年轻人入职半年内不要提意见:很多想法都不靠谱任正非:华为要在软件领域"敢于引领世界潮流"微信表情新彩蛋遭疯狂吐槽:满屏“炸屎”无人配送车来了:京东美团新石器率先获批合规上路资质外卖平台回应收费调整:美团强调透明化 饿了么强调费率低贝壳回应被启动反垄断调查:假的谷歌正式推出 Fuchsia OS,不再基于 Linux特斯拉:已在中国建立数据中心 以实现数据

Fuchsia命名空间

Fuchsia命名空间 命名空间是Fuchsia操作系统中文件存取和服务发现的基石。 定义 命名空间是一个综合的层级结构,包括文件、目录、套接口、服务、设备和其它的有名对象,这些对象被其环境提供给组件使用。 让我们稍微解释一下。 有名对象: 命名空间中包含的可由名字枚举和访问的对象,诸如列出一个目录的内容和打开一个文件。 综合层级结构: 命名空间为一个由对象组成的树状结构,这些对象可由

Fuchsia进程创建

内核提供了底层设施以创建和启动进程。但是,由于包含为可执行文件、共享库和栈进行直接映射内存空间的工作,这些设施难以使用。替代的方法,应当使用如下的较高层机制创建进程。 fuchsia.process.Launcher Fuchsia提供的进程fuchsia.process.Launcher,实现了创立进程所需的底层工作。你只需为此服务提供创建进程所需的内核对象(例如,将在其中创建进程的job

Fuchsia蛋糕分层

Fuchsia是开源工程的名字,也是由开源工程生产的完全技术型产品的名字。名字“Fuchsia”出现在代码库的许多地方,也将出现在提供给第三方开发者的API接口名字中。以下每个单独层级(Zircon除外)的名字是我们开发Fuchsia的实现细节,不应当出现在公开的API中。 |---------|| Topaz ||-------------|| Peridot

Fuchsia编译系统的GN结构

在下载完成fuchsia的代码之后,编译代码之前,需要使用fx set命令指定要编译的目标(product.board)。参见以下的fx set命令的帮助信息。其中的PRODUCT和BOARD参数可由fx的命令list-products和命令list-boards获得,也可通过查看products目录和boards目录下的gni文件看到。--build-dir选项指定build输出目录,不指

fuchsia代码管理

google官方讲述代码获取的说明文档路径如下:https://fuchsia.googlesource.com/docs/+/ea2fce2874556205204d3ef70c60e25074dc7ffd/development/source_code/README.md。使用如下以curl开始的命令组合,最后部分的layer可以指定为topaz、peridot和garnet,或者指定仅下载操

Fuchsia操作系统workstation系统

在fuchsia编译完成之后,使用fx run可在qemu上运行。以下大致看一下它的目录结构。首先是顶层目录,如下,fuchsia没有传统的linux系统的usr、home、proc之类的目录。 $ ls -l /drwxr-xr-x 1 0 0 0 Jul 21 23:33 bindr-------- 1 0 0