From d88e0b360ad3cb6e78a9471caccadeda98ce4613 Mon Sep 17 00:00:00 2001 From: Eric X Date: Sat, 16 Jul 2022 07:39:57 +0800 Subject: [PATCH 001/118] translate components overview --- get-started/_common/components/_overview.md | 34 ++++++++++++++------- get-started/build_fuchsia.md | 15 +++++---- 2 files changed, 32 insertions(+), 17 deletions(-) diff --git a/get-started/_common/components/_overview.md b/get-started/_common/components/_overview.md index fd829dc0..26934923 100644 --- a/get-started/_common/components/_overview.md +++ b/get-started/_common/components/_overview.md @@ -1,28 +1,40 @@ -A component is a program that runs on Fuchsia in its own sandbox. + +一个组件是一个运行在 Fuchsia 沙盒中的程序。每个组件都是一个可组合的模块,依据各自功能与其它组件交互。 +Fuchsia 中的所有软件都被定义为一个个组件,除了内核、引导进程以及组件管理器。 -Fuchsia's component framework is responsible for running nearly all user space + +Fuchsia 的组件框架致力于让系统可以运行几乎所有的用户空间软件。 +组件管理器是一个系统进程,负责协调各个组件实例的执行和生命周期,维护组件拓扑,给组件提供相应功能,并使它们彼此隔离。 -Components obtain privileges to access various parts of the wider system through + +组件通过功能获得访问更广泛系统的各个部分的特权。 +每个组件都可以声明它们提供给系统的新功能以及需要其他组件(或框架)提供的功能。 +组件管理器解析并验证组件之间的所有功能请求,以确保它们与组件已被正确授予的功能相匹配。 diff --git a/get-started/build_fuchsia.md b/get-started/build_fuchsia.md index 7e66e119..58964b9d 100644 --- a/get-started/build_fuchsia.md +++ b/get-started/build_fuchsia.md @@ -1,14 +1,17 @@ -# Configure and build Fuchsia {#configure-and-build-fuchsia} + +# 配置和构建 Fuchsia -This guide provide instructions on how to configure and build Fuchsia -on a host machine. + +本指南提供如何在宿主机上配置和构建 Fuchsia 的指令。 -The steps are: + +步骤如下: -1. [Prerequisites](#prerequisites). + ## 1. Prerequisites {#prerequisites} From f275840668d566f91c7bb9c70a0625c5b23a1e9f Mon Sep 17 00:00:00 2001 From: Eric X Date: Wed, 20 Jul 2022 11:04:01 +0800 Subject: [PATCH 002/118] translate components overview --- .../_common/components/_product_driver.md | 21 ++++++++++++------ .../_common/components/_product_intro.md | 12 +++++++--- .../_common/components/_product_session.md | 22 +++++++++++++------ get-started/_common/intro/_overview.md | 11 ++++++---- 4 files changed, 45 insertions(+), 21 deletions(-) diff --git a/get-started/_common/components/_product_driver.md b/get-started/_common/components/_product_driver.md index e56a8b82..7271df4f 100644 --- a/get-started/_common/components/_product_driver.md +++ b/get-started/_common/components/_product_driver.md @@ -1,13 +1,20 @@ -## Driver framework + +## 驱动框架 -Similar to session, the Fuchsia Driver Framework enables developers to + +与 session 类似,Fuchsia 驱动框架使开发人员能够将产品特定的设备驱动程序实现为组件。 +一些驱动程序组件代表硬件接口控制器,例如 PCI 或 USB,而其他驱动程序组件则与终端设备交互, +例如以太网控制器或键盘。 -As devices are discovered or attached to the system, the `driver_manager` + +当设备被发现或连接到系统时,`driver_manager` 平台组件启动必要的驱动程序组件, +将它们绑定到硬件接口,并管理它们的生命周期。 -Note: For more details on the driver framework, see -[Fuchsia Driver Framework](/development/drivers/concepts/fdf.md). + +注:有关驱动框架的细节,参考[Fuchsia 驱动框架](/development/drivers/concepts/fdf.md). diff --git a/get-started/_common/components/_product_intro.md b/get-started/_common/components/_product_intro.md index cc748e6a..186ceaa7 100644 --- a/get-started/_common/components/_product_intro.md +++ b/get-started/_common/components/_product_intro.md @@ -1,10 +1,16 @@ -Components form the basis for the software that runs in Fuchsia user space. The + +组件构成了在 Fuchsia 用户空间中运行的软件的基础。 +到目前为止,您探索的组件是运行 Fuchsia 的所有产品通用的核心平台的一部分。 +Fuchsia 产品由平台组件和产品特定元素组成,以满足设备硬件和用户体验的独特需求。 +在本节中,您将探索 Fuchsia 如何构建组件以实现产品级定制。 -![Data table showing how Fuchsia enables product customization on top of the + +![数据表展现了 Fuchsia 通过会话框架和驱动框架让产品在核心平台上的定制成为可能.] (/get-started/images/components/product.png){: width="582"} diff --git a/get-started/_common/components/_product_session.md b/get-started/_common/components/_product_session.md index d776e8c1..4e78ca99 100644 --- a/get-started/_common/components/_product_session.md +++ b/get-started/_common/components/_product_session.md @@ -1,15 +1,23 @@ -## Session framework + +## Session 框架 -Sessions are components that encapsulate a product’s user experience. The + +会话是一系列封装了产品用户体验的组件。会话框架充当 Fuchsia 平台和产品级用户交互之间的边界。 +每个 Fuchsia 产品都将单个会话实例定义为产品体验的根,并可能管理其他子组件。 -The `session_manager` platform component starts the session component on boot + + +`session_manager` 平台组件在启动时打开会话组件,并为其提供一组固定的功能,以支持诸如窗口管理、 +输入事件处理或可访问元素的会话框架 API. -Note: For more details on the session framework, see -[Introduction to the session framework](/concepts/session/introduction.md). + +注: 有关会话框架的更多细节,请参考 +[会话框架介绍](/concepts/session/introduction.md). diff --git a/get-started/_common/intro/_overview.md b/get-started/_common/intro/_overview.md index 14ce6cb7..be913011 100644 --- a/get-started/_common/intro/_overview.md +++ b/get-started/_common/intro/_overview.md @@ -1,6 +1,9 @@ -Fuchsia is a new open source operating system created at Google from the kernel -up to meet the needs of today's growing ecosystem of connected devices. + +Fuchsia 是谷歌从内核创建的一种新的开源操作系统,旨在满足当今不断增长的连接设备生态系统的需求。 -In this training module, you'll learn the core principles behind this new + +在本培训模块中,您将了解这一新操作系统背后的核心原理, +并探索 Fuchsia 如何为开发人员在各种设备上创建经久耐用的产品和体验奠定基础。 From f693f4ae5d26ef643c3de9662bd807bd3bda42b3 Mon Sep 17 00:00:00 2001 From: Eric X Date: Wed, 20 Jul 2022 11:09:10 +0800 Subject: [PATCH 003/118] modify session translate --- get-started/_common/components/_product_session.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/get-started/_common/components/_product_session.md b/get-started/_common/components/_product_session.md index 4e78ca99..1d4d1f56 100644 --- a/get-started/_common/components/_product_session.md +++ b/get-started/_common/components/_product_session.md @@ -1,5 +1,5 @@ -## Session 框架 +## 会话框架 -# 配置和构建 Fuchsia +# Configure and build Fuchsia {#configure-and-build-fuchsia} - -本指南提供如何在宿主机上配置和构建 Fuchsia 的指令。 +This guide provide instructions on how to configure and build Fuchsia +on a host machine. - -步骤如下: +The steps are: - +1. [Build Fuchsia](#build-fuchsia). ## 1. Prerequisites {#prerequisites} diff --git a/get-started/explore_fuchsia.md b/get-started/explore_fuchsia.md index c1e32ae8..5163fed2 100644 --- a/get-started/explore_fuchsia.md +++ b/get-started/explore_fuchsia.md @@ -1,81 +1,115 @@ -# Explore Fuchsia {#explore-fuchsia} + +# 探索 Fuchsia {#explore-fuchsia} -Once you have Fuchsia up and running on a device or emulator, -check out the following resources: + +一旦 Fuchsia 在真机或者模拟器上启动并运行起来之后,可以查阅如下资源: -* [Run ffx commands](#run-ffx-commands). + +* [运行 ffx 命令](#run-ffx-commands). +* [运行示例](#run-examples). +* [创建 Fuchsia 组件](#create-fuchsia-components). +* [贡献修订](#contribute-changes). -## Run ffx commands {#run-ffx-commands} + +## 运行 ffx 命令 {#run-ffx-commands} -[`ffx`][ffx-overview] is a host tool for Fuchsia target workflows that + +[`ffx`][ffx-overview] 是一个 Fuchsia 目标工作流的主机工具,为所有 Fuchsia 环境和主机平台上提供一致的开发体验。 -The following are some of `ffx` command examples: + +以下是一些 `ffx` 命令示例: -* Display the list of devices: + +* 显示设备列表 ```posix-terminal ffx target list ``` -* Display the device information: + +* 显示设备信息 ```posix-terminal ffx target show ``` -* Print the device logs: + +* 输出设备日志 ```posix-terminal ffx log ``` -* Reboot the device: + +* 重启设备 ```posix-terminal ffx target reboot ``` -## Run examples {#run-examples} + +## 运行示例 -To try out Fuchsia's sample software, check out the guides below: + +想试试 Fuchsia 的样例程序,参考如下指南: -* [Run an example component](/development/run/run-examples.md) + +* [运行一个样例组件](/development/run/run-examples.md) +* [运行一个测试组件](/development/run/run-test-component.md) +* [运行一个端到端测试](/development/testing/run_an_end_to_end_test.md) -## Create Fuchsia components {#create-fuchsia-components} + +## 创建 Fuchsia 组件 {#create-fuchsia-components} -The basic executable units of software in Fuchsia are + +Fuchsia 中最小可运行软件单元是[组件](/concepts/components/v2),这些组件通过 +[FIDL](/concepts/fidl/overview.md)(Fuchsia 接口定义语言)协议彼此交互。 -To learn more about Fuchsia components and FIDL, check out the guides below: + +想要了解更多有关 Fuchsia 组件和 FIDL的信息,参考如下指南: -* [Build components](/development/components/build.md) + +* [构建组件](/development/components/build.md) +* [FIDL 概览](/development/languages/fidl/README.md) +* [FIDL 教程](/development/languages/fidl/tutorials/overview.md) -## Contribute changes {#contribute-changes} + +## 贡献修订 {#contribute-changes} -When you're ready to contribute to the Fuchsia project, -see [Contribute changes][contribute-changes]. + +当您准备好为 Fuchsia 项目做出贡献,请参阅[贡献修订][contribute-changes]。 -## See also + +## 其它参考资料 -For more information on Fuchsia's development workflows, -check out the following resources: + +更多有关 Fuchsia 的开发流程信息,请参考如下资源: -* [fx workflows](/development/build/fx.md) + +* [fx 工作流程](/development/build/fx.md) +* [工作流程技巧和问题](/development/source_code/workflow_tips_and_faq.md) +* [配置编辑器](/development/editors/) +* [源码规划](/development/source_code/layout.md) +* [构建系统](/development/build/build_system/index.md) From 03bee084b8250143ad547caae31db72fb0e37dd2 Mon Sep 17 00:00:00 2001 From: wy Date: Thu, 21 Jul 2022 22:34:28 +0800 Subject: [PATCH 005/118] translate build_fuchsia.md --- get-started/build_fuchsia.md | 197 ++++++++++++++++++++++++++--------- 1 file changed, 149 insertions(+), 48 deletions(-) diff --git a/get-started/build_fuchsia.md b/get-started/build_fuchsia.md index 7e66e119..4cc57f5c 100644 --- a/get-started/build_fuchsia.md +++ b/get-started/build_fuchsia.md @@ -1,167 +1,268 @@ -# Configure and build Fuchsia {#configure-and-build-fuchsia} + +# 配置和编译 Fuchsia {#configure-and-build-fuchsia} +这篇文档将引导你在主机上如何配置并编译 Fuchsia。 + +步骤如下: + +1. [准备](#prerequisites) +1. [配置设置项](#set-your-build-configuration) +1. [编译调优(可选)](#speed-up-the-build) +1. [编译](#build-fuchsia) + +## 1. 准备 {#prerequisites} + +在开始之前,先检查是否满足如下要求: + +* [准备源码](#source-code-setup) +* [硬件要求](#hardware-requirements) + +### 准备源码 {#source-code-setup} + +根据文档 [下载 Fuchsia 源码](/get-started/get_fuchsia_source.md) 指示下载 Fuchsia 的源码,然后在你的机器上设置开发环境。 + +### 硬件要求 {#hardware-requirements} + +Fuchsia 的编译支持如下架构的机器: + +- x86-64 Linux (只支持 Debian 系列的) +- x86-64 macOS + +注意:Windows 和 ARM64 是不支持的。 + +## 2. 配置设置项 {#set-your-build-configuration} + +Fuchsia 的编译设置项告诉编译系统如何编译,以及编译什么架构的文件。 + +设置你的 Fuchsia 编译选项,可以运行 [`fx set`][fx-set-reference] 命令: ```posix-terminal fx set {{ '' }}PRODUCT{{ '' }}.{{ '' }}BOARD{{ '' }} ``` - + +替换以下选项: + +* `PRODUCT`: 编译的目标文件类型, 比如可以设置为: `core` 和 `workstation_eng`. +* `BOARD`: 编译的可执行文件架构,比如:`x64` 和 `qemu-x64` + +下面的示例设置了编译选项为 `core.qemu-x64`: ```posix-terminal fx set core.qemu-x64 ``` - + +在这个示例中: + + * `core` 就是选择了特性最小化的 Fuchsia, 当然包括了常见的网络相关。 + * `qemu-x64` 这个选项设置了编译架构为在开源的虚拟机 (FEMU)中的 x64 架构 [QEMU][qemu]{:.external}. + +在看另一个编译选项示例,下面这个命令配置了 [在设备中安装 Fuchsia 工作站][build-workstation] 中常用的一个架构, `workstation_eng.x64`: ```posix-terminal fx set workstation_eng.x64 ``` - + +如果想查看更详细的编译选项介绍,参考 [配置编译选项](/development/build/fx.md#configure-a-build) + +## 3. 编译调优(可选) {#speed-up-the-build} + +注意:这一步不是必选项,但是建议您设置,因为设置了这一步能节省很多的编译时间。 + +编译调优的话,需要下面的服务: + +* [使用 Goma](#enable-goma) +* [安装 ccache](#install-ccache) + +### 使用 Goma {#enable-goma} + +[Goma](https://chromium.googlesource.com/infra/goma/server/){:.external} 是一个分布式编译服务,常用在一些开源项目中,如 Chrome,Android 以及 Fuchsia。 + +如果你能访问 Goma, 使用下面的命令来开启 Goma 客户端: ```posix-terminal fx goma ``` - + +### 安装 ccache {#install-ccache} + +如果不能访问 Goma,但是想加速本地编译时间,那就使用 [ccache](https://ccache.dev/){:.external} 来缓存来进行增量编译。 * {Linux} - + + 在 Linux 中使用 `ccache`,安装如下安装包: ```posix-terminal sudo apt install ccache ``` * {macOS} - + + 至于 macOS ,参考 [在 Mac 上使用 CCache](https://chromium.googlesource.com/chromium/src.git/+/HEAD/docs/ccache_mac.md){:.external} 中的安装步骤。 + +如果你的 `CCACHE_DIR` 环境变量指向一个存在的路径,`ccache` 就会自动开启。 + +如果想关闭这个特性,可以指定下面的标志为 `fx set`: + +* 强制使用 `ccache`,即使其他的加速项可以使用:
     fx set PRODUCT.BOARD --ccache
     
- + +* 关闭 `ccache`:
     fx set PRODUCT.BOARD --no-ccache
     
- + +## 4. 编译 {#build-fuchsia} + +[`fx build`][fx-build-reference] 命令可以把源代码编译打包,或者编译成其他的类型。 + +使用如下命令编译 Fuchsia: + +注意:编译时间一般为 90 分钟。 ```posix-terminal fx build ``` - + +当你修改源代码后,要运行命令 `fx build` 来增量编译,或则运行 `fx -i build` 命令来开启一个监视进程,这个监视进程一旦发现源码有更新就会自动编译。 + +想要更多编译 Fuchsia 的相信信息,参考 [开始编译](/development/build/fx.md#execute-a-build)。 + +## 下一步 + +关于如何在你的主机上打开 Fuchsia 模拟器 (FEMU),参考 [开启 Fuchsia 模拟器](/get-started/set_up_femu.md)。 + +如果你无论如何都想要在硬件平台上运行 Fuchsia, 可以参考 [在硬件设备中安装 Fuchsia](/development/hardware/README.md)。 + From 7533e33e37f016b14dcaca6e1f3316ab2b6367c6 Mon Sep 17 00:00:00 2001 From: Eric X Date: Fri, 22 Jul 2022 10:56:18 +0800 Subject: [PATCH 006/118] first version --- .../_common/intro/_components_intro.md | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/get-started/_common/intro/_components_intro.md b/get-started/_common/intro/_components_intro.md index fbdc8fe7..0f0a9260 100644 --- a/get-started/_common/intro/_components_intro.md +++ b/get-started/_common/intro/_components_intro.md @@ -1,20 +1,30 @@ -**Components** are the foundational building blocks of software running in + +**组件**是 Fuchsia 中运行的软件的基石。每一个组件是可以组合的沙盒模块,相互之间通过功能交互。 +这提高了系统安全性并在各个组件之间建立了清晰的接口,使它们更容易更新或替换。 -In Fuchsia, **everything is a component** (almost). Recall from the previous + +Fuchsia 中**一切都是组件**(几乎)。回想一下之前对 Zircon 的讨论,内核有意设计得很小, +大多数核心服务都是在用户空间中实现。这意味着在 Fuchsia 上运行的大多数软件都是使用组件框架实现的,包括: -* User-facing applications + +* 面向用户的应用 +* 设备驱动 +* 文件系统 +* 媒体编解码器 +* 网络栈 -Outside the kernel there are only a few low-level exceptions not using the -component framework, such as bootloaders and the `userboot` process. + +内核之外有少数不使用组件框架的底层例外,如引导程序和 `userboot` 进程。 From e1d140982c7b089686ac9d27b24b6205fa307d64 Mon Sep 17 00:00:00 2001 From: Eric X Date: Fri, 22 Jul 2022 14:37:16 +0800 Subject: [PATCH 007/118] first version of components organization --- .../_common/intro/_components_organization.md | 52 ++++++++++++------- 1 file changed, 34 insertions(+), 18 deletions(-) diff --git a/get-started/_common/intro/_components_organization.md b/get-started/_common/intro/_components_organization.md index a088092f..4272a15a 100644 --- a/get-started/_common/intro/_components_organization.md +++ b/get-started/_common/intro/_components_organization.md @@ -1,28 +1,38 @@ -## Component organization + +## 组件架构 -All components in the system are composed into a single rooted + +系统中所有组件组成一棵单根**组件实例树**。这棵树结构控制着组件行为的几个重要方面。 -![Tree diagram illustrating how component instances are organized. These parent + +![树图展示了组件实例是如何组织的。这种父子结构控制组件行为的几个方面。] (/get-started/images/intro/component-organization.png){: width="712"} -Parent components in the tree are responsible for creating instances of + +树中的父组件负责其子组件的创建并提供必要功能。与此同时,子组件向父组件公开功能。 +子组件可被如下方式之一创建: -* **Statically**: The parent declares the existence of the child in its own + +* **静态创建** 父组件在自身组件声明中声明子组件。 +* **动态创建** 父组件在运行时通过 `fuchsia.component.Realm` 协议将子组件添加到组件集中。 -Any parent component and all its children form a group within the tree called + +任何一个父组件和它所有子组件在树中形成一个称之为**领域**的组,领域使父组件可以控制哪个功能流可以进出组件子树, +以此建立一个功能边界。组件自行决定是否通过 `expose` 关键字暴露其功能给领域外部。 ```json5 expose: [ @@ -33,8 +43,9 @@ expose: [ ], ``` -Once a capability is exposed to the realm, the parent can share it with other -components within the same realm. This is done using the `offer` keyword: + +一旦功能暴露到领域之中,父组件可以将其分享给领域内的其它组件。这可以通过使用 `offer` 关键字达成: ```json5 offer: [ @@ -45,21 +56,26 @@ offer: [ ], ``` -[Component manager][glossary.component-manager] is responsible for resolving + +[组件管理器][glossary.component-manager]负责解析与功能提供者之间的访问请求(如目录或协议)。 +这就是**功能路由**。组件管理器只能解析那些在领域内**公开**和**供应**的功能。 -![Diagram showing how components share capabilities through + +![组件如何通过“功能路由”共享功能的图示,“功能路由”描述了资源如何在特定领域内变得可用。] (/get-started/images/intro/capability-routing.png){: width="614"} [glossary.component-manager]: /glossary/README.md#component-manager From 3f9f731573eef9f88aca29fee981bc937242676b Mon Sep 17 00:00:00 2001 From: Eric X Date: Fri, 22 Jul 2022 17:09:31 +0800 Subject: [PATCH 008/118] first version of components manager --- .../_common/intro/_components_manager.md | 51 ++++++++++++------- 1 file changed, 33 insertions(+), 18 deletions(-) diff --git a/get-started/_common/intro/_components_manager.md b/get-started/_common/intro/_components_manager.md index 6bc5c22f..22ecdb6c 100644 --- a/get-started/_common/intro/_components_manager.md +++ b/get-started/_common/intro/_components_manager.md @@ -1,39 +1,52 @@ -## Component manager + +## 组件管理器 -The heart of the component framework is the **component manager**. It is + +组件框架的核心是**组件管理器**。它负责协调所有组件实例的执行,提供相应的功能,连接各个组件。 -Components can be launched explicitly (from a URL, for example) or implicitly + +组件可以显示地启动(例如,通过 URL调用)或者隐式地通过响应特定功能的请求启动。 +组件管理器采取必要的步骤以决定是启动一个新组件还是将请求路由到现有实例。为实现这种路由功能, +没给组件须声明任何它能**供应**给系统和它需要**使用**的功能。 -Component manager parses each component's **declaration** to determine how to + +组件管理器解析每个组件的**声明**以决定如何运行组件并提供必要的功能。组件常常通过组件包中包含的**组件清单** +文件向系统声明自己。 -Below is a simple example of a component manifest that describes an ELF -executable with some additional command arguments: + +以下是一个组件清单的简单例子,它描述了一个包含一些附加命令参数的 ELF 可执行程序。 ```json5 program: { @@ -43,6 +56,8 @@ program: { }, ``` -Notice the runtime declaration telling the component manager that this + +留意这个运行时声明,它告诉组件管理器这个组件需要[ELF 运行器](/concepts/components/v2/elf_runner.md)。 +**_这是一个功能示例!_** From 5942223030f8a12685bbf0c2745a7c1c993419f2 Mon Sep 17 00:00:00 2001 From: wy Date: Sun, 24 Jul 2022 10:38:26 +0800 Subject: [PATCH 009/118] modified build_fuchsia.md file --- get-started/build_fuchsia.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/get-started/build_fuchsia.md b/get-started/build_fuchsia.md index 4cc57f5c..ac90293e 100644 --- a/get-started/build_fuchsia.md +++ b/get-started/build_fuchsia.md @@ -6,7 +6,7 @@ on a host machine. --> # 配置和编译 Fuchsia {#configure-and-build-fuchsia} -这篇文档将引导你在主机上如何配置并编译 Fuchsia。 +这篇文档将引导您在主机上如何配置并编译 Fuchsia。 @@ -45,7 +45,7 @@ Complete the guide to download the Fuchsia source code and set up the Fuchsia development environment on your machine. --> -根据文档 [下载 Fuchsia 源码](/get-started/get_fuchsia_source.md) 指示下载 Fuchsia 的源码,然后在你的机器上设置开发环境。 +根据文档 [下载 Fuchsia 源码](/get-started/get_fuchsia_source.md) 指示下载 Fuchsia 的源码,然后在您的机器上设置开发环境。 @@ -78,7 +78,7 @@ Fuchsia 的编译设置项告诉编译系统如何编译,以及编译什么架 To set your Fuchsia build configuration, run the following [`fx set`][fx-set-reference] command: --> -设置你的 Fuchsia 编译选项,可以运行 [`fx set`][fx-set-reference] 命令: +设置您的 Fuchsia 编译选项,可以运行 [`fx set`][fx-set-reference] 命令: ```posix-terminal fx set {{ '' }}PRODUCT{{ '' }}.{{ '' }}BOARD{{ '' }} ``` @@ -161,7 +161,7 @@ and Fuchsia. -如果你能访问 Goma, 使用下面的命令来开启 Goma 客户端: +如果您能访问 Goma, 使用下面的命令来开启 Goma 客户端: ```posix-terminal fx goma @@ -175,7 +175,7 @@ If you do not have access to Goma, but want to accelerate the Fuchsia build locally, use [ccache](https://ccache.dev/){:.external} to cache artifacts from previous builds. --> -如果不能访问 Goma,但是想加速本地编译时间,那就使用 [ccache](https://ccache.dev/){:.external} 来缓存来进行增量编译。 +如果不能访问 Goma,但是想加速本地编译时间,则可以使用 [ccache](https://ccache.dev/){:.external} 来缓存来进行增量编译。 * {Linux} - 至于 macOS ,参考 [在 Mac 上使用 CCache](https://chromium.googlesource.com/chromium/src.git/+/HEAD/docs/ccache_mac.md){:.external} 中的安装步骤。 + 对于 macOS ,参考 [在 Mac 上使用 CCache](https://chromium.googlesource.com/chromium/src.git/+/HEAD/docs/ccache_mac.md){:.external} 中的安装步骤。 -如果你的 `CCACHE_DIR` 环境变量指向一个存在的路径,`ccache` 就会自动开启。 +如果您的 `CCACHE_DIR` 环境变量指向一个存在的路径,`ccache` 就会自动开启。 @@ -242,7 +242,7 @@ When you modify source code, run the `fx build` command again to perform an incremental build, or run the `fx -i build` command to start a watcher, which automatically builds whenever you update the source code. --> -当你修改源代码后,要运行命令 `fx build` 来增量编译,或则运行 `fx -i build` 命令来开启一个监视进程,这个监视进程一旦发现源码有更新就会自动编译。 +当您修改源代码后,要运行命令 `fx build` 来增量编译,或则运行 `fx -i build` 命令来开启一个监视进程,这个监视进程一旦发现源码有更新就会自动编译。 -关于如何在你的主机上打开 Fuchsia 模拟器 (FEMU),参考 [开启 Fuchsia 模拟器](/get-started/set_up_femu.md)。 +关于如何在您的主机上打开 Fuchsia 模拟器 (FEMU),参考 [开启 Fuchsia 模拟器](/get-started/set_up_femu.md)。 -如果你无论如何都想要在硬件平台上运行 Fuchsia, 可以参考 [在硬件设备中安装 Fuchsia](/development/hardware/README.md)。 +如果您无论如何都想要在硬件平台上运行 Fuchsia, 可以参考 [在硬件设备中安装 Fuchsia](/development/hardware/README.md)。 From 78032f8946ade350efd97fbbecf2908f1ffaba6d Mon Sep 17 00:00:00 2001 From: wy Date: Sun, 24 Jul 2022 10:42:26 +0800 Subject: [PATCH 010/118] modified build_fuchsia.md file --- get-started/build_fuchsia.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/get-started/build_fuchsia.md b/get-started/build_fuchsia.md index ac90293e..33940dcf 100644 --- a/get-started/build_fuchsia.md +++ b/get-started/build_fuchsia.md @@ -28,7 +28,7 @@ The steps are: -在开始之前,先检查是否满足如下要求: +在开始之前,请先检查是否满足如下要求: -- x86-64 Linux (只支持 Debian 系列的) +- x86-64 Linux (只支持基于 Debian 系列的发行版) - x86-64 macOS -如果您能访问 Goma, 使用下面的命令来开启 Goma 客户端: +如果您能访问 Goma, 那么请使用下面的命令来开启 Goma 客户端: ```posix-terminal fx goma @@ -242,12 +242,12 @@ When you modify source code, run the `fx build` command again to perform an incremental build, or run the `fx -i build` command to start a watcher, which automatically builds whenever you update the source code. --> -当您修改源代码后,要运行命令 `fx build` 来增量编译,或则运行 `fx -i build` 命令来开启一个监视进程,这个监视进程一旦发现源码有更新就会自动编译。 +当您修改源代码后,要运行命令 `fx build` 来增量编译,或者运行 `fx -i build` 命令来开启一个监视进程,这个监视进程一旦发现源码有更新就会自动编译。 -想要更多编译 Fuchsia 的相信信息,参考 [开始编译](/development/build/fx.md#execute-a-build)。 +要获取关于编译 Fuchsia 的更多信息,请参考参阅[开始编译](/development/build/fx.md#execute-a-build)。 From cfa4a7fe2b5cec634554cf7787bf259d0ce3af18 Mon Sep 17 00:00:00 2001 From: tabidachinokaze Date: Sun, 24 Jul 2022 20:53:21 +0800 Subject: [PATCH 011/118] =?UTF-8?q?=E7=BF=BB=E8=AF=91=20get-started/=5Fcom?= =?UTF-8?q?mon/components/=5Forganizing=5Fidentifying.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_common/components/_organizing_identifying.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/get-started/_common/components/_organizing_identifying.md b/get-started/_common/components/_organizing_identifying.md index 1c3fd62e..f5a03062 100644 --- a/get-started/_common/components/_organizing_identifying.md +++ b/get-started/_common/components/_organizing_identifying.md @@ -1,21 +1,31 @@ -## Identifying components + +## 标识组件 + +组件由 URL 标识。框架借助**组件解析器**将组件 URL 解析为组件声明。解析器本身就是能够处理特定 URL scheme 并获取组件清单、程序和资源的组件。 + +大多数组件都发布在 Fuchsia 包内,因此组件 URL 是对该包内组件清单的引用。请查看下面的示例: ```none fuchsia-pkg://fuchsia.com/{{ '' }}foo-package{{ '' }}#meta/{{ '' }}foo-component.cm{{ '' }} ``` + +组件实例由称为 **moniker** 的拓扑路径引用来标识。组件的 moniker 将其在组件实例树中的位置指示为绝对或相对路径。 例如,moniker 路径 `/core/system-updater` 指的是存在于 `core` 领域中的 `system-updater` 的实例。 From ed44565496ded44d0298cf4ead21076f49220e03 Mon Sep 17 00:00:00 2001 From: tabidachinokaze Date: Sun, 24 Jul 2022 20:56:41 +0800 Subject: [PATCH 012/118] fix --- get-started/_common/components/_organizing_identifying.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/get-started/_common/components/_organizing_identifying.md b/get-started/_common/components/_organizing_identifying.md index f5a03062..dc4221af 100644 --- a/get-started/_common/components/_organizing_identifying.md +++ b/get-started/_common/components/_organizing_identifying.md @@ -28,4 +28,4 @@ instance tree as an absolute or relative path. For example, the moniker path `/core/system-updater` refers to the instance of `system-updater` that exists in the `core` realm. --> -组件实例由称为 **moniker** 的拓扑路径引用来标识。组件的 moniker 将其在组件实例树中的位置指示为绝对或相对路径。 例如,moniker 路径 `/core/system-updater` 指的是存在于 `core` 领域中的 `system-updater` 的实例。 +组件实例由称为 **moniker** 的拓扑路径引用来标识。组件的 moniker 将其在组件实例树中的位置指示为绝对或相对路径。例如,moniker 路径 `/core/system-updater` 指的是存在于 `core` 领域中的 `system-updater` 的实例。 From b28d63b34928dcd375bbeae1aec23a0467292c7b Mon Sep 17 00:00:00 2001 From: wy Date: Sun, 24 Jul 2022 21:18:46 +0800 Subject: [PATCH 013/118] translate get_fuchsia_source.md file --- get-started/get_fuchsia_source.md | 224 ++++++++++++++++++++++++------ 1 file changed, 181 insertions(+), 43 deletions(-) diff --git a/get-started/get_fuchsia_source.md b/get-started/get_fuchsia_source.md index 7bb6eafa..9c11df63 100644 --- a/get-started/get_fuchsia_source.md +++ b/get-started/get_fuchsia_source.md @@ -1,30 +1,51 @@ + +# 下载 Fuchsia 源码 + +这篇文章将指导您下载 Fuchsia 源码以及在您的机器上部署开发环境。 + +步骤如下: + +1. [前期检查](#perform-a-preflight-check). +2. [安装用到的软件包](#install-prerequisite-packages). +3. [下载 Fuchsia 源码](#download-the-fuchsia-source-code). +4. [设置环境变量](#set-up-environment-variables). +5. [配置防火墙(可选项)](#configure-firewall-rules). + + +## 1. 前期检查 {#perform-a-preflight-check} + +Fuchsia 提供了一个自动检测工具([`ffx platform preflight`][ffx-platform-preflight]),这个工具可以测试您的机器,并会在发现任何影响您编译 Fuchsia 源码的问题时通知您。 + +注意:这个检测工具只支持 x64 架构。Fuchsia 目前对其他架构的机器上的编译不做成功担保,比如 Windows 和 ARM64。 + +运行下面的命令: * {Linux} @@ -37,72 +58,109 @@ Run the following command: ```posix-terminal curl -sO https://storage.googleapis.com/fuchsia-ffx/ffx-macos-x64 && chmod +x ffx-macos-x64 && ./ffx-macos-x64 platform preflight ``` - + +## 2. 安装用到的软件包 {#install-prerequisite-packages} + +Fuchsia 要求 `curl`、 `file`、 `unzip` 以及 `git` 等工具是最新版。 `git` 版本要求 2.28 或以上。 * {Linux} - + + 安装(或更新)下面的软件: ```posix-terminal sudo apt install curl file git unzip ``` * {macOS} - + + 安装 Xcode 命令行工具: + + 注意:如果 `ffx platform preflight` 工具检测到 Xcode 已经安装,就省去这一步操作。 ```posix-terminal xcode-select --install ``` - + +## 3. 下载 Fuchsia 源码 {#download-the-fuchsia-source-code} + +Fuchsia 提供了一个[引导脚本](/scripts/bootstrap),这个脚本会创建一个 `fuchsia` 的文件夹并把 Fuchsia 源码下载到这里。 + +下载 Fuchsia 源码要求你机器上有 2 GB 的存储空间。之后在编译 Fuchsia 过程中需要另外 80 到 90 GB 的存储空间,这取决于你的编译选项配置。另外,下载过程中也会使用一部分的内存空间。建议您在此过程中关闭其他非必要的程序进程。 + +下载 Fuchsia 源码,请按如下步骤: + +1. 选择一个 Fuchsia 源码存储目录,例如: + + 注意:你可以把 Fuchsia 下载到任何路径。本篇教程选择 `$HOME` 作为示例。 ```posix-terminal cd $HOME ``` - + +1. 运行引导脚本: + + 注意:下载 Fuchsia 源码可能需要 60 分钟。 ```posix-terminal curl -s "https://fuchsia.googlesource.com/fuchsia/+/HEAD/scripts/bootstrap?format=TEXT" | base64 --decode | bash ``` + + 这个脚本会先创建 `fuchsia` 路径,然后下载源码到该路径下。 -## 4. Set up environment variables {#set-up-environment-variables} + 如果你在脚本运行期间看到了 `Invalid authentication credentials` 错误信息,参考[认证失败](#authentication-error)章节寻求帮助。 + + +## 4. 设置环境变量 {#set-up-environment-variables} + +Fuchsia 建议您在 shell 的配置文件中添加如下几个配置: + +* 添加 `.jiri_root/bin` 路径到你的 `PATH` 环境变量 + + `.jiri_root/bin` 路径在 Fuchsia 源码中包含了 [`jiri`](https://fuchsia.googlesource.com/jiri) 和 [`fx`](/development/build/fx.md) 工具,这些工具对 Fuchsia 的后续操作起着至关重要的作用。Fuchsia 使用 `jiri` 工具在 Fuchsia 的项目中管理仓库,使用 `fx` 工具帮助配置、编译、运行以及调试 Fuchsia。Fuchsia 的工具链需要可以在你 `PATH` 环境变量中找得到 `jiri` 工具。 + +* 导入 `scripts/fx-env.sh` 文件 + + 虽然这并不是必须的,导入 [`fx-env.sh`](/scripts/fx-env.sh) 文件可以在你的终端中建立一系列的非常有用的 shell 函数。比如,它会创建给 `fd` 工具用来切换路径时提供自动补全的 `FUCHSIA_DIR` 环境变量(如果想获取更多信息,请参考 `fx-env.sh` 文件)。 + +注意:如果你不想更新你的 shell 配置,在附录中参考[不更新 PATH 变量编译 Fuchsia](#work-on-fuchsia-without-updating-your-path)。 + +为了更新你的 shell 配置文件来设置 Fuchsia 的环境变量,请按如下步骤: + +1. 请用文本编辑器打开你的 `~/.bash_profile` 文件(参考如下示例,我们使用 [Nano][nano]{:.external} ) + + 注意:这篇文章使用 `bash` 终端作为示例,如果你使用 `zsh` 的话,在如下步骤中请替换文件 `~/.bash_profile` 为 `~/.zprofile`: ```posix-terminal nano ~/.bash_profile ``` - + +1. 在你的 `~/.bash_profile` 文件中添加如下配置: + + 注意:如果你的 Fuchsia 源码不在 `~/fuchsia` 路径下,替换 `~/fuchsia` 路径为你的 Fuchsia 路径。 ```sh export PATH=~/fuchsia/.jiri_root/bin:$PATH source ~/fuchsia/scripts/fx-env.sh ``` - + +1. 保存文件并退出。 + +1. 更新环境变量,请运行如下命令: ```posix-terminal source ~/.bash_profile ``` - + +1. 验证你是否可以运行如下命令且没有报错: ```posix-terminal jiri help @@ -168,86 +253,139 @@ do the following: ```posix-terminal fx help ``` - + +## 5. 配置防火墙(可选项) {#configure-firewall-rules} + +注意:这一步在你的编译或者运行 Fuchsia 步骤中并不是必须的。但是是被建议的,因为可以用来确保你能在 Linux 中流畅的运行 Fuchsia 虚拟机。 + +(**Linux**) 如果你计划在 Linux 中运行 Fuchsia,建议您运行如下命令来允许 Fuchsia 使用一些特殊的特性: ```posix-terminal fx setup-ufw ``` - + +这个脚本需要 `sudo` (会提示你输入密码)权限来设置防火墙规则。(更多关于脚本的的信息,参考 [`setup-ufw`][setup-ufw] 文件)。 + +## 下一步 + +编译你第一个 Fuchsia 系统镜像,参考[配置和编译 Fuchsia](/get-started/build_fuchsia.md) 文件。 + +## 附录 + +### 验证失败 {#authentication-error} + +如果你在脚本运行期间看到了 `Invalid authentication credentials` 报错信息,你的 `~/.gitcookies` 文件中可能包含了一些引导脚本想要自动检测的来自 `googlesource.com` 的 cookie 信息。 + +为了解决这个问题,使用以下任何一个方式: + -### Work on Fuchsia without updating your PATH {#work-on-fuchsia-without-updating-your-path} +* 按照屏幕路径的提示为仓库输入密码 +* 删除 `.gitcookies` 文件中不需要的 cookie。 + +### 不更新 PATH 变量编译 Fuchsia {#work-on-fuchsia-without-updating-your-path} + +下面的章节为[设置环境变量](#set-up-environment-variables)章节提供了替代选项: + +* [把工具复制到可执行文件目录](#copy-the-tool-to-your-binary-directory) +* [为工具添加链接文件到可执行文件目录](#add-a-symlink-to-your-binary-directory) + +#### 把工具复制到可执行文件目录 {#copy-the-tool-to-your-binary-directory} + +如果你不想更新你的环境变量,但是你想在任何目录中使用 `jiri` 工具,把 `jiri` 工具复制到 `~/bin` 目录中,比如: + +注意:如果你的 Fuchsia 源码不在 `~/fuchsia` 目录中,把 `~/fuchsia` 替换为你的 Fuchsia 目录。 ```posix-terminal cp ~/fuchsia/.jiri_root/bin/jiri ~/bin ``` + +无论如何,你首先需要有不用 `sudo` 命令就可以访问 `~/bin` 路径的权限。如果没有,`jiri` 就不能使它自己保持在最新版本。 + +#### 为工具添加链接文件到可执行文件目录 {#add-a-symlink-to-your-binary-directory} + +同样的,如果你想不更新环境变量使用 `fx` 工具,在 `~/bin` 路径中提供你的 `fx` 工具的链接文件,比如: + +注意:如果你的 Fuchsia 源码不在 `~/fuchsia` 目录中,把 `~/fuchsia` 替换为你的 Fuchsia 目录。 ```posix-terminal ln -s ~/fuchsia/scripts/fx ~/bin ``` - + +相应地,你也可以使用 `fx` 工具的完整路径,比如: ```posix-terminal ./scripts/fx help ``` - + +另一方面,您需要在 `PATH` 环境变零中设置你的 `jiri` 工具。 [ffx-platform-preflight]: https://fuchsia.dev/reference/tools/sdk/ffx#preflight From 671eb91c8aa383c30b5162602d91a0932c364400 Mon Sep 17 00:00:00 2001 From: wy Date: Sun, 24 Jul 2022 21:21:27 +0800 Subject: [PATCH 014/118] =?UTF-8?q?substitute=20=E4=BD=A0=20with=20?= =?UTF-8?q?=E6=82=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- get-started/get_fuchsia_source.md | 50 +++++++++++++++---------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/get-started/get_fuchsia_source.md b/get-started/get_fuchsia_source.md index 9c11df63..b3a6e206 100644 --- a/get-started/get_fuchsia_source.md +++ b/get-started/get_fuchsia_source.md @@ -109,7 +109,7 @@ another 80 to 90 GB of space later when you build Fuchsia. Additionally, the download process uses a substantial amount of memory. It is advisible to close non-crucial processes during this time. --> -下载 Fuchsia 源码要求你机器上有 2 GB 的存储空间。之后在编译 Fuchsia 过程中需要另外 80 到 90 GB 的存储空间,这取决于你的编译选项配置。另外,下载过程中也会使用一部分的内存空间。建议您在此过程中关闭其他非必要的程序进程。 +下载 Fuchsia 源码要求您机器上有 2 GB 的存储空间。之后在编译 Fuchsia 过程中需要另外 80 到 90 GB 的存储空间,这取决于您的编译选项配置。另外,下载过程中也会使用一部分的内存空间。建议您在此过程中关闭其他非必要的程序进程。 @@ -122,7 +122,7 @@ To download the Fuchsia source, do the following: --> 1. 选择一个 Fuchsia 源码存储目录,例如: - 注意:你可以把 Fuchsia 下载到任何路径。本篇教程选择 `$HOME` 作为示例。 + 注意:您可以把 Fuchsia 下载到任何路径。本篇教程选择 `$HOME` 作为示例。 ```posix-terminal cd $HOME @@ -148,7 +148,7 @@ To download the Fuchsia source, do the following: --> 这个脚本会先创建 `fuchsia` 路径,然后下载源码到该路径下。 - 如果你在脚本运行期间看到了 `Invalid authentication credentials` 错误信息,参考[认证失败](#authentication-error)章节寻求帮助。 + 如果您在脚本运行期间看到了 `Invalid authentication credentials` 错误信息,参考[认证失败](#authentication-error)章节寻求帮助。 -* 添加 `.jiri_root/bin` 路径到你的 `PATH` 环境变量 +* 添加 `.jiri_root/bin` 路径到您的 `PATH` 环境变量 - `.jiri_root/bin` 路径在 Fuchsia 源码中包含了 [`jiri`](https://fuchsia.googlesource.com/jiri) 和 [`fx`](/development/build/fx.md) 工具,这些工具对 Fuchsia 的后续操作起着至关重要的作用。Fuchsia 使用 `jiri` 工具在 Fuchsia 的项目中管理仓库,使用 `fx` 工具帮助配置、编译、运行以及调试 Fuchsia。Fuchsia 的工具链需要可以在你 `PATH` 环境变量中找得到 `jiri` 工具。 + `.jiri_root/bin` 路径在 Fuchsia 源码中包含了 [`jiri`](https://fuchsia.googlesource.com/jiri) 和 [`fx`](/development/build/fx.md) 工具,这些工具对 Fuchsia 的后续操作起着至关重要的作用。Fuchsia 使用 `jiri` 工具在 Fuchsia 的项目中管理仓库,使用 `fx` 工具帮助配置、编译、运行以及调试 Fuchsia。Fuchsia 的工具链需要可以在您 `PATH` 环境变量中找得到 `jiri` 工具。 * 导入 `scripts/fx-env.sh` 文件 - 虽然这并不是必须的,导入 [`fx-env.sh`](/scripts/fx-env.sh) 文件可以在你的终端中建立一系列的非常有用的 shell 函数。比如,它会创建给 `fd` 工具用来切换路径时提供自动补全的 `FUCHSIA_DIR` 环境变量(如果想获取更多信息,请参考 `fx-env.sh` 文件)。 + 虽然这并不是必须的,导入 [`fx-env.sh`](/scripts/fx-env.sh) 文件可以在您的终端中建立一系列的非常有用的 shell 函数。比如,它会创建给 `fd` 工具用来切换路径时提供自动补全的 `FUCHSIA_DIR` 环境变量(如果想获取更多信息,请参考 `fx-env.sh` 文件)。 -注意:如果你不想更新你的 shell 配置,在附录中参考[不更新 PATH 变量编译 Fuchsia](#work-on-fuchsia-without-updating-your-path)。 +注意:如果您不想更新您的 shell 配置,在附录中参考[不更新 PATH 变量编译 Fuchsia](#work-on-fuchsia-without-updating-your-path)。 -为了更新你的 shell 配置文件来设置 Fuchsia 的环境变量,请按如下步骤: +为了更新您的 shell 配置文件来设置 Fuchsia 的环境变量,请按如下步骤: -1. 请用文本编辑器打开你的 `~/.bash_profile` 文件(参考如下示例,我们使用 [Nano][nano]{:.external} ) +1. 请用文本编辑器打开您的 `~/.bash_profile` 文件(参考如下示例,我们使用 [Nano][nano]{:.external} ) - 注意:这篇文章使用 `bash` 终端作为示例,如果你使用 `zsh` 的话,在如下步骤中请替换文件 `~/.bash_profile` 为 `~/.zprofile`: + 注意:这篇文章使用 `bash` 终端作为示例,如果您使用 `zsh` 的话,在如下步骤中请替换文件 `~/.bash_profile` 为 `~/.zprofile`: ```posix-terminal nano ~/.bash_profile @@ -220,9 +220,9 @@ do the following: Note: If your Fuchsia source code is not located in the `~/fuchsia` directory, replace `~/fuchsia` with your Fuchsia directory. --> -1. 在你的 `~/.bash_profile` 文件中添加如下配置: +1. 在您的 `~/.bash_profile` 文件中添加如下配置: - 注意:如果你的 Fuchsia 源码不在 `~/fuchsia` 路径下,替换 `~/fuchsia` 路径为你的 Fuchsia 路径。 + 注意:如果您的 Fuchsia 源码不在 `~/fuchsia` 路径下,替换 `~/fuchsia` 路径为您的 Fuchsia 路径。 ```sh export PATH=~/fuchsia/.jiri_root/bin:$PATH @@ -244,7 +244,7 @@ do the following: 1. Verify that you can run the following commands inside your `fuchsia` directory without error: --> -1. 验证你是否可以运行如下命令且没有报错: +1. 验证您是否可以运行如下命令且没有报错: ```posix-terminal jiri help @@ -264,9 +264,9 @@ recommended to ensure that Fuchsia's emulator instances run smoothly on Linux. (**Linux only**) If you're planning on running Fuchsia on Linux, it is advised to run the following command to allow Fuchsia-specific traffic on the host machine: --> -注意:这一步在你的编译或者运行 Fuchsia 步骤中并不是必须的。但是是被建议的,因为可以用来确保你能在 Linux 中流畅的运行 Fuchsia 虚拟机。 +注意:这一步在您的编译或者运行 Fuchsia 步骤中并不是必须的。但是是被建议的,因为可以用来确保您能在 Linux 中流畅的运行 Fuchsia 虚拟机。 -(**Linux**) 如果你计划在 Linux 中运行 Fuchsia,建议您运行如下命令来允许 Fuchsia 使用一些特殊的特性: +(**Linux**) 如果您计划在 Linux 中运行 Fuchsia,建议您运行如下命令来允许 Fuchsia 使用一些特殊的特性: ```posix-terminal fx setup-ufw @@ -275,7 +275,7 @@ fx setup-ufw This script requires `sudo` (which asks for your password) to set the appropriate firewall rules. (For more information on this script, see [`setup-ufw`][setup-ufw].) --> -这个脚本需要 `sudo` (会提示你输入密码)权限来设置防火墙规则。(更多关于脚本的的信息,参考 [`setup-ufw`][setup-ufw] 文件)。 +这个脚本需要 `sudo` (会提示您输入密码)权限来设置防火墙规则。(更多关于脚本的的信息,参考 [`setup-ufw`][setup-ufw] 文件)。 @@ -285,7 +285,7 @@ firewall rules. (For more information on this script, see [`setup-ufw`][setup-uf To build your first Fuchsia system image, see [Configure and build Fuchsia](/get-started/build_fuchsia.md). --> -编译你第一个 Fuchsia 系统镜像,参考[配置和编译 Fuchsia](/get-started/build_fuchsia.md) 文件。 +编译您第一个 Fuchsia 系统镜像,参考[配置和编译 Fuchsia](/get-started/build_fuchsia.md) 文件。 @@ -299,7 +299,7 @@ If you see the `Invalid authentication credentials` error during the bootstrap process, your `~/.gitcookies` file may contain cookies from some repositories in `googlesource.com` that the bootstrap script wants to check out anonymously. --> -如果你在脚本运行期间看到了 `Invalid authentication credentials` 报错信息,你的 `~/.gitcookies` 文件中可能包含了一些引导脚本想要自动检测的来自 `googlesource.com` 的 cookie 信息。 +如果您在脚本运行期间看到了 `Invalid authentication credentials` 报错信息,您的 `~/.gitcookies` 文件中可能包含了一些引导脚本想要自动检测的来自 `googlesource.com` 的 cookie 信息。 @@ -342,9 +342,9 @@ example: Note: If your Fuchsia source code is not located in the `~/fuchsia` directory, replace `~/fuchsia` with your Fuchsia directory. --> -如果你不想更新你的环境变量,但是你想在任何目录中使用 `jiri` 工具,把 `jiri` 工具复制到 `~/bin` 目录中,比如: +如果您不想更新您的环境变量,但是您想在任何目录中使用 `jiri` 工具,把 `jiri` 工具复制到 `~/bin` 目录中,比如: -注意:如果你的 Fuchsia 源码不在 `~/fuchsia` 目录中,把 `~/fuchsia` 替换为你的 Fuchsia 目录。 +注意:如果您的 Fuchsia 源码不在 `~/fuchsia` 目录中,把 `~/fuchsia` 替换为您的 Fuchsia 目录。 ```posix-terminal cp ~/fuchsia/.jiri_root/bin/jiri ~/bin @@ -354,7 +354,7 @@ cp ~/fuchsia/.jiri_root/bin/jiri ~/bin However, you must have write access to the `~/bin` directory without `sudo`. If you don't, `jiri` cannot keep itself up-to-date. --> -无论如何,你首先需要有不用 `sudo` 命令就可以访问 `~/bin` 路径的权限。如果没有,`jiri` 就不能使它自己保持在最新版本。 +无论如何,您首先需要有不用 `sudo` 命令就可以访问 `~/bin` 路径的权限。如果没有,`jiri` 就不能使它自己保持在最新版本。 @@ -367,9 +367,9 @@ example: Note: If your Fuchsia source code is not located in the `~/fuchsia` directory, replace `~/fuchsia` with your Fuchsia directory. --> -同样的,如果你想不更新环境变量使用 `fx` 工具,在 `~/bin` 路径中提供你的 `fx` 工具的链接文件,比如: +同样的,如果您想不更新环境变量使用 `fx` 工具,在 `~/bin` 路径中提供您的 `fx` 工具的链接文件,比如: -注意:如果你的 Fuchsia 源码不在 `~/fuchsia` 目录中,把 `~/fuchsia` 替换为你的 Fuchsia 目录。 +注意:如果您的 Fuchsia 源码不在 `~/fuchsia` 目录中,把 `~/fuchsia` 替换为您的 Fuchsia 目录。 ```posix-terminal ln -s ~/fuchsia/scripts/fx ~/bin @@ -377,7 +377,7 @@ ln -s ~/fuchsia/scripts/fx ~/bin -相应地,你也可以使用 `fx` 工具的完整路径,比如: +相应地,您也可以使用 `fx` 工具的完整路径,比如: ```posix-terminal ./scripts/fx help @@ -385,7 +385,7 @@ Alternatively, run the `fx` tool directly using its path, for example: -另一方面,您需要在 `PATH` 环境变零中设置你的 `jiri` 工具。 +另一方面,您需要在 `PATH` 环境变零中设置您的 `jiri` 工具。 [ffx-platform-preflight]: https://fuchsia.dev/reference/tools/sdk/ffx#preflight From 6fabb01c96c25220fefdd48127b8f666aa33631d Mon Sep 17 00:00:00 2001 From: tabidachinokaze Date: Tue, 26 Jul 2022 16:42:22 +0800 Subject: [PATCH 015/118] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=BB=BA=E8=AE=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- get-started/_common/components/_organizing_identifying.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/get-started/_common/components/_organizing_identifying.md b/get-started/_common/components/_organizing_identifying.md index dc4221af..55ce8032 100644 --- a/get-started/_common/components/_organizing_identifying.md +++ b/get-started/_common/components/_organizing_identifying.md @@ -1,5 +1,5 @@ -## 标识组件 +## 组件的标记 -组件由 URL 标识。框架借助**组件解析器**将组件 URL 解析为组件声明。解析器本身就是能够处理特定 URL scheme 并获取组件清单、程序和资源的组件。 +组件由 URL 标识。框架借助**组件解析器**将组件 URL 解析为组件声明。解析器本身就是能够处理特定 URL 格式并获取组件清单、程序和资源的组件。 -组件实例由称为 **moniker** 的拓扑路径引用来标识。组件的 moniker 将其在组件实例树中的位置指示为绝对或相对路径。例如,moniker 路径 `/core/system-updater` 指的是存在于 `core` 领域中的 `system-updater` 的实例。 +组件实例由称为 **绰号(moniker)** 的拓扑路径引用来标识。组件的绰号将其在组件实例树中的位置指示为绝对或相对路径。例如,绰号路径 `/core/system-updater` 指的是存在于 `core` 领域中的 `system-updater` 的实例。 From aa3119054f19a36794433fae73c3b0fe34d82d9e Mon Sep 17 00:00:00 2001 From: wy Date: Tue, 26 Jul 2022 20:22:57 +0800 Subject: [PATCH 016/118] get_fuchsia_source.md review --- get-started/get_fuchsia_source.md | 75 ++++++++++++++++--------------- 1 file changed, 38 insertions(+), 37 deletions(-) diff --git a/get-started/get_fuchsia_source.md b/get-started/get_fuchsia_source.md index b3a6e206..085aed85 100644 --- a/get-started/get_fuchsia_source.md +++ b/get-started/get_fuchsia_source.md @@ -7,7 +7,7 @@ This guide provides instructions on how to download the Fuchsia source code and set up the Fuchsia development environment on your machine. --> -这篇文章将指导您下载 Fuchsia 源码以及在您的机器上部署开发环境。 +本指南说明了如何下载 Fuchsia 源码以及在您的机器上部署开发环境。 @@ -19,33 +19,34 @@ The steps are: 4. [Set up environment variables](#set-up-environment-variables). 5. [Configure firewall rules (Optional)](#configure-firewall-rules). --> -1. [前期检查](#perform-a-preflight-check). -2. [安装用到的软件包](#install-prerequisite-packages). +1. [执行预检查](#perform-a-preflight-check). +2. [安装必备软件包](#install-prerequisite-packages). 3. [下载 Fuchsia 源码](#download-the-fuchsia-source-code). 4. [设置环境变量](#set-up-environment-variables). -5. [配置防火墙(可选项)](#configure-firewall-rules). +5. [配置防火墙规则(可选)](#configure-firewall-rules). -## 1. 前期检查 {#perform-a-preflight-check} +## 1. 执行预检查 {#perform-a-preflight-check} -Fuchsia 提供了一个自动检测工具([`ffx platform preflight`][ffx-platform-preflight]),这个工具可以测试您的机器,并会在发现任何影响您编译 Fuchsia 源码的问题时通知您。 +Fuchsia 提供了一个预检工具([`ffx platform preflight`][ffx-platform-preflight]),这个工具可以测试您的机器,并会通知您任何在该机器上构建 Fuchsia 源码时会受影响的问题。 -注意:这个检测工具只支持 x64 架构。Fuchsia 目前对其他架构的机器上的编译不做成功担保,比如 Windows 和 ARM64。 +注意:这个预检测工具只支持 x64 架构。目前 Fuchsia 不保证在其他宿主架构上能构建成功,比如 Windows 和 ARM64。 + -运行下面的命令: +运行如下命令: * {Linux} @@ -61,7 +62,7 @@ Run the following command: -## 2. 安装用到的软件包 {#install-prerequisite-packages} +## 2. 安装必备软件包 {#install-prerequisite-packages} - 安装(或更新)下面的软件: + 安装(或更新)下面的软件包: ```posix-terminal sudo apt install curl file git unzip @@ -87,7 +88,7 @@ Fuchsia 要求 `curl`、 `file`、 `unzip` 以及 `git` 等工具是最新版。 --> 安装 Xcode 命令行工具: - 注意:如果 `ffx platform preflight` 工具检测到 Xcode 已经安装,就省去这一步操作。 + 注意:如果 `ffx platform preflight` 检测到 Xcode 工具已经安装,就可以跳过这一步。 ```posix-terminal xcode-select --install @@ -109,7 +110,7 @@ another 80 to 90 GB of space later when you build Fuchsia. Additionally, the download process uses a substantial amount of memory. It is advisible to close non-crucial processes during this time. --> -下载 Fuchsia 源码要求您机器上有 2 GB 的存储空间。之后在编译 Fuchsia 过程中需要另外 80 到 90 GB 的存储空间,这取决于您的编译选项配置。另外,下载过程中也会使用一部分的内存空间。建议您在此过程中关闭其他非必要的程序进程。 +下载 Fuchsia 源码要求您机器上有 2 GB 的存储空间。取决于您的构建配置,之后的构建 Fuchsia 过程则需要额外 80 到 90 GB 的存储空间。另外,下载过程中也会使用大量的内存。建议您在此过程中关闭其他非必要的程序进程。 @@ -120,7 +121,7 @@ To download the Fuchsia source, do the following: Note: You can set up Fuchsia in any directory. This guide selects the `$HOME` directory as an example. --> -1. 选择一个 Fuchsia 源码存储目录,例如: +1. 选择一个 Fuchsia 源码下载目录,例如: 注意:您可以把 Fuchsia 下载到任何路径。本篇教程选择 `$HOME` 作为示例。 @@ -146,10 +147,9 @@ To download the Fuchsia source, do the following: bootstrapping process, see [Authentication error](#authentication-error) for help. --> - 这个脚本会先创建 `fuchsia` 路径,然后下载源码到该路径下。 - - 如果您在脚本运行期间看到了 `Invalid authentication credentials` 错误信息,参考[认证失败](#authentication-error)章节寻求帮助。 + 这个脚本会创建 `fuchsia` 目录,并且下载源码。 + 如果您在脚本运行期间看到了 `Invalid authentication credentials` 错误信息,参考[认证错误](#authentication-error)章节寻求帮助。 -* 添加 `.jiri_root/bin` 路径到您的 `PATH` 环境变量 +* 添加 `.jiri_root/bin` 目录到您的 `PATH` 环境变量 - `.jiri_root/bin` 路径在 Fuchsia 源码中包含了 [`jiri`](https://fuchsia.googlesource.com/jiri) 和 [`fx`](/development/build/fx.md) 工具,这些工具对 Fuchsia 的后续操作起着至关重要的作用。Fuchsia 使用 `jiri` 工具在 Fuchsia 的项目中管理仓库,使用 `fx` 工具帮助配置、编译、运行以及调试 Fuchsia。Fuchsia 的工具链需要可以在您 `PATH` 环境变量中找得到 `jiri` 工具。 + Fuchsia 源码中的 `.jiri_root/bin` 目录包含了 [`jiri`](https://fuchsia.googlesource.com/jiri) 和 [`fx`](/development/build/fx.md) 工具,这些是 Fuchsia 工作流中的必备工具。Fuchsia 使用 `jiri` 工具在 Fuchsia 的项目中管理仓库,使用 `fx` 工具帮助配置、构建、运行以及调试 Fuchsia。Fuchsia 的工具链需要可以在您的 `PATH` 环境变量中找到 `jiri` 工具。 * 导入 `scripts/fx-env.sh` 文件 - 虽然这并不是必须的,导入 [`fx-env.sh`](/scripts/fx-env.sh) 文件可以在您的终端中建立一系列的非常有用的 shell 函数。比如,它会创建给 `fd` 工具用来切换路径时提供自动补全的 `FUCHSIA_DIR` 环境变量(如果想获取更多信息,请参考 `fx-env.sh` 文件)。 + 虽然这并不是必须的,导入 [`fx-env.sh`](/scripts/fx-env.sh) 文件可以在您的终端中启用一系列有用的 shell 函数。比如,它会创建 `FUCHSIA_DIR` 环境变量,以及提供 `fd` 命令用来在目录中导航时提供自动补全 (如果想获取更多信息,请参考 `fx-env.sh` 文件)。 -注意:如果您不想更新您的 shell 配置,在附录中参考[不更新 PATH 变量编译 Fuchsia](#work-on-fuchsia-without-updating-your-path)。 +注意:如果您不想更新您的 shell 配置,参考附录[不更新 PATH 变量的情况下在 Fuchsia 上工作](#work-on-fuchsia-without-updating-your-path)。 -1. 请用文本编辑器打开您的 `~/.bash_profile` 文件(参考如下示例,我们使用 [Nano][nano]{:.external} ) +1. 请用文本编辑器打开您的 `~/.bash_profile` 文件(参考如下示例,我们使用 [Nano][nano]{:.external} 文本编辑器) - 注意:这篇文章使用 `bash` 终端作为示例,如果您使用 `zsh` 的话,在如下步骤中请替换文件 `~/.bash_profile` 为 `~/.zprofile`: + 注意:本指南使用 `bash` 终端作为示例,如果您使用 `zsh` 的话,在如下步骤中请替换 `~/.bash_profile` 为 `~/.zprofile`: ```posix-terminal nano ~/.bash_profile @@ -222,7 +222,7 @@ do the following: --> 1. 在您的 `~/.bash_profile` 文件中添加如下配置: - 注意:如果您的 Fuchsia 源码不在 `~/fuchsia` 路径下,替换 `~/fuchsia` 路径为您的 Fuchsia 路径。 + 注意:如果您的 Fuchsia 源码不在 `~/fuchsia` 目录下,替换 `~/fuchsia` 为您的 Fuchsia 目录。 ```sh export PATH=~/fuchsia/.jiri_root/bin:$PATH @@ -256,7 +256,7 @@ do the following: -## 5. 配置防火墙(可选项) {#configure-firewall-rules} +## 5. 配置防火墙规则(可选) {#configure-firewall-rules} -注意:这一步在您的编译或者运行 Fuchsia 步骤中并不是必须的。但是是被建议的,因为可以用来确保您能在 Linux 中流畅的运行 Fuchsia 虚拟机。 +注意:这一步对构建或者运行 Fuchsia 并不是必须的。但是为了确保 Fuchsia 模拟器实例能在 Linux 上顺利运行是推荐的。 -(**Linux**) 如果您计划在 Linux 中运行 Fuchsia,建议您运行如下命令来允许 Fuchsia 使用一些特殊的特性: +(**仅Linux**) 如果您计划在 Linux 中运行 Fuchsia,建议您运行如下命令在宿主机上允许 Fuchsia 相关的流量: ```posix-terminal fx setup-ufw @@ -285,7 +285,7 @@ firewall rules. (For more information on this script, see [`setup-ufw`][setup-uf To build your first Fuchsia system image, see [Configure and build Fuchsia](/get-started/build_fuchsia.md). --> -编译您第一个 Fuchsia 系统镜像,参考[配置和编译 Fuchsia](/get-started/build_fuchsia.md) 文件。 +构建您第一个 Fuchsia 系统镜像,参考[配置和构建 Fuchsia](/get-started/build_fuchsia.md)。 @@ -293,7 +293,7 @@ To build your first Fuchsia system image, see -### 验证失败 {#authentication-error} +### 认证错误 {#authentication-error} -* 按照屏幕路径的提示为仓库输入密码 -* 删除 `.gitcookies` 文件中不需要的 cookie。 +* 按照屏幕上的指示为特定的仓库获取密码 +* 删除 `.gitcookies` 文件中有问题的 cookie。 -* [把工具复制到可执行文件目录](#copy-the-tool-to-your-binary-directory) -* [为工具添加链接文件到可执行文件目录](#add-a-symlink-to-your-binary-directory) +* [把工具复制到二进制目录](#copy-the-tool-to-your-binary-directory) +* [添加符号链接到二进制目录](#add-a-symlink-to-your-binary-directory) -#### 把工具复制到可执行文件目录 {#copy-the-tool-to-your-binary-directory} +#### 把工具复制到二进制目录 {#copy-the-tool-to-your-binary-directory} -无论如何,您首先需要有不用 `sudo` 命令就可以访问 `~/bin` 路径的权限。如果没有,`jiri` 就不能使它自己保持在最新版本。 +但是,您需要在没有 `sudo` 的情况下对 `~/bin` 有写访问权限。如果没有,`jiri` 就不能保持在最新版本。 -#### 为工具添加链接文件到可执行文件目录 {#add-a-symlink-to-your-binary-directory} +#### 添加符号链接到二进制目录 {#add-a-symlink-to-your-binary-directory} 同样的,如果您想不更新环境变量使用 `fx` 工具,在 `~/bin` 路径中提供您的 `fx` 工具的链接文件,比如: +同样的,如果您想不更新环境变量而使用 `fx` 工具,在 `~/bin` 目录中提供 `fx` 工具的符号链接,比如: 注意:如果您的 Fuchsia 源码不在 `~/fuchsia` 目录中,把 `~/fuchsia` 替换为您的 Fuchsia 目录。 @@ -377,7 +378,7 @@ ln -s ~/fuchsia/scripts/fx ~/bin -相应地,您也可以使用 `fx` 工具的完整路径,比如: +或者,直接用其路径运行 `fx` 工具,比如: ```posix-terminal ./scripts/fx help @@ -385,7 +386,7 @@ Alternatively, run the `fx` tool directly using its path, for example: -另一方面,您需要在 `PATH` 环境变零中设置您的 `jiri` 工具。 +无论哪种情况,您都需要`jiri` 工具在您的 `PATH` 环境变量中。 [ffx-platform-preflight]: https://fuchsia.dev/reference/tools/sdk/ffx#preflight From 6875cc67646c494d3e2bfdf6d0050807341a6e38 Mon Sep 17 00:00:00 2001 From: wy Date: Tue, 26 Jul 2022 20:24:53 +0800 Subject: [PATCH 017/118] =?UTF-8?q?substitute=20=E7=BC=96=E8=AF=91=20with?= =?UTF-8?q?=20=E6=9E=84=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- get-started/build_fuchsia.md | 49 ++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/get-started/build_fuchsia.md b/get-started/build_fuchsia.md index 33940dcf..6200e514 100644 --- a/get-started/build_fuchsia.md +++ b/get-started/build_fuchsia.md @@ -1,12 +1,11 @@ - -# 配置和编译 Fuchsia {#configure-and-build-fuchsia} +# 配置和构建 Fuchsia {#configure-and-build-fuchsia} -这篇文档将引导您在主机上如何配置并编译 Fuchsia。 +这篇文档将引导您在主机上如何配置并构建 Fuchsia。 @@ -19,8 +18,8 @@ The steps are: --> 1. [准备](#prerequisites) 1. [配置设置项](#set-your-build-configuration) -1. [编译调优(可选)](#speed-up-the-build) -1. [编译](#build-fuchsia) +1. [构建调优(可选)](#speed-up-the-build) +1. [构建](#build-fuchsia) @@ -54,7 +53,7 @@ environment on your machine. You can build Fuchsia only on a machine with one of the following host architectures: --> -Fuchsia 的编译支持如下架构的机器: +Fuchsia 的构建支持如下架构的机器: -Fuchsia 的编译设置项告诉编译系统如何编译,以及编译什么架构的文件。 +Fuchsia 的构建设置项告诉构建系统如何构建,以及构建什么架构的文件。 -设置您的 Fuchsia 编译选项,可以运行 [`fx set`][fx-set-reference] 命令: +设置您的 Fuchsia 构建选项,可以运行 [`fx set`][fx-set-reference] 命令: ```posix-terminal fx set {{ '' }}PRODUCT{{ '' }}.{{ '' }}BOARD{{ '' }} ``` @@ -91,12 +90,12 @@ Replace the following: `workstation_eng`. * `BOARD`: The architecture of the product; for example, `x64` and `qemu-x64` --> -* `PRODUCT`: 编译的目标文件类型, 比如可以设置为: `core` 和 `workstation_eng`. -* `BOARD`: 编译的可执行文件架构,比如:`x64` 和 `qemu-x64` +* `PRODUCT`: 构建的目标文件类型, 比如可以设置为: `core` 和 `workstation_eng`. +* `BOARD`: 构建的可执行文件架构,比如:`x64` 和 `qemu-x64` -下面的示例设置了编译选项为 `core.qemu-x64`: +下面的示例设置了构建选项为 `core.qemu-x64`: ```posix-terminal fx set core.qemu-x64 @@ -113,13 +112,13 @@ In this example: [QEMU][qemu]{:.external}. --> * `core` 就是选择了特性最小化的 Fuchsia, 当然包括了常见的网络相关。 - * `qemu-x64` 这个选项设置了编译架构为在开源的虚拟机 (FEMU)中的 x64 架构 [QEMU][qemu]{:.external}. + * `qemu-x64` 这个选项设置了构建架构为在开源的虚拟机 (FEMU)中的 x64 架构 [QEMU][qemu]{:.external}. -在看另一个编译选项示例,下面这个命令配置了 [在设备中安装 Fuchsia 工作站][build-workstation] 中常用的一个架构, `workstation_eng.x64`: +在看另一个构建选项示例,下面这个命令配置了 [在设备中安装 Fuchsia 工作站][build-workstation] 中常用的一个架构, `workstation_eng.x64`: ```posix-terminal fx set workstation_eng.x64 @@ -128,20 +127,20 @@ fx set workstation_eng.x64 For more information on the build configuration, see [Configure a build](/development/build/fx.md#configure-a-build). --> -如果想查看更详细的编译选项介绍,参考 [配置编译选项](/development/build/fx.md#configure-a-build) +如果想查看更详细的构建选项介绍,参考 [配置构建选项](/development/build/fx.md#configure-a-build) -## 3. 编译调优(可选) {#speed-up-the-build} +## 3. 构建调优(可选) {#speed-up-the-build} -注意:这一步不是必选项,但是建议您设置,因为设置了这一步能节省很多的编译时间。 +注意:这一步不是必选项,但是建议您设置,因为设置了这一步能节省很多的构建时间。 -编译调优的话,需要下面的服务: +构建调优的话,需要下面的服务: -[Goma](https://chromium.googlesource.com/infra/goma/server/){:.external} 是一个分布式编译服务,常用在一些开源项目中,如 Chrome,Android 以及 Fuchsia。 +[Goma](https://chromium.googlesource.com/infra/goma/server/){:.external} 是一个分布式构建服务,常用在一些开源项目中,如 Chrome,Android 以及 Fuchsia。 @@ -175,7 +174,7 @@ If you do not have access to Goma, but want to accelerate the Fuchsia build locally, use [ccache](https://ccache.dev/){:.external} to cache artifacts from previous builds. --> -如果不能访问 Goma,但是想加速本地编译时间,则可以使用 [ccache](https://ccache.dev/){:.external} 来缓存来进行增量编译。 +如果不能访问 Goma,但是想加速本地构建时间,则可以使用 [ccache](https://ccache.dev/){:.external} 来缓存来进行增量构建。 * {Linux} -## 4. 编译 {#build-fuchsia} +## 4. 构建 {#build-fuchsia} -[`fx build`][fx-build-reference] 命令可以把源代码编译打包,或者编译成其他的类型。 +[`fx build`][fx-build-reference] 命令可以把源代码构建打包,或者构建成其他的类型。 -使用如下命令编译 Fuchsia: +使用如下命令构建 Fuchsia: -注意:编译时间一般为 90 分钟。 +注意:构建时间一般为 90 分钟。 ```posix-terminal fx build @@ -242,12 +241,12 @@ When you modify source code, run the `fx build` command again to perform an incremental build, or run the `fx -i build` command to start a watcher, which automatically builds whenever you update the source code. --> -当您修改源代码后,要运行命令 `fx build` 来增量编译,或者运行 `fx -i build` 命令来开启一个监视进程,这个监视进程一旦发现源码有更新就会自动编译。 +当您修改源代码后,要运行命令 `fx build` 来增量构建,或者运行 `fx -i build` 命令来开启一个监视进程,这个监视进程一旦发现源码有更新就会自动构建。 -要获取关于编译 Fuchsia 的更多信息,请参考参阅[开始编译](/development/build/fx.md#execute-a-build)。 +要获取关于构建 Fuchsia 的更多信息,请参考参阅[开始构建](/development/build/fx.md#execute-a-build)。 From 54acce6729754250419de76c662536d0b24e2a87 Mon Sep 17 00:00:00 2001 From: cwolf9 <2717232422@qq.com> Date: Wed, 27 Jul 2022 04:06:02 +0800 Subject: [PATCH 018/118] =?UTF-8?q?=E7=BF=BB=E8=AF=91=20get-started/=5Fcom?= =?UTF-8?q?mon/fidl/=5Foverview.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- get-started/_common/fidl/_overview.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/get-started/_common/fidl/_overview.md b/get-started/_common/fidl/_overview.md index 1075fdb1..9234dc6a 100644 --- a/get-started/_common/fidl/_overview.md +++ b/get-started/_common/fidl/_overview.md @@ -1,22 +1,34 @@ + +在 **Fuchsia 简介**中了解到,Zircon 提供了内核对象类型来支持 Fuchsia 的进程间通信(IPC)。这些对象类型定义了进程用来交换数据的特定机制。在这个框架内,Zircon 通道提供了一个基于消息的异步传输能力,即支持同时传递数据和一组句柄来授予访问权。 + +Zircon 通道是 **Fuchsia 接口定义语言**(Fuchsia Interface Definition Language,FIDL)所描述的更高层次的交互的基础,FIDL 是用来描述 Fuchsia 程序所使用的 IPC 协议的语言。FIDL 允许不同的客户和服务器相互进行操作,通过强制执行一套语义行为和在通道上操作的持久性格式来实现相互操作。 + +程序通过 **FIDL 编译器**生成的特定语言的 binding 和库与 FIDL 协议进行交互,该编译器是用于隐藏 Zircon IPC 复杂性的一个抽象层。这使得我们可以引入熟悉的编程习惯,如结构化类型和同步执行。编译器为每种支持的语言都生成了 bingding,因此供应商不需要维护客户端库。 + +![图中显示了 Fuchsia 接口定义语言(FIDL)如何通过一个通用接口促进进程间通信(IPC);与何种编程语言无关。](/get-started/images/fidl/fuchsia-interface.png){: width="870"} From 3027500156a6b0f064351267d378c38d918b15c1 Mon Sep 17 00:00:00 2001 From: cwolf9 <2717232422@qq.com> Date: Wed, 27 Jul 2022 04:09:26 +0800 Subject: [PATCH 019/118] =?UTF-8?q?=E7=BF=BB=E8=AF=91=20get-started/=5Fcom?= =?UTF-8?q?mon/fidl/=5Ffidl=5Fintro.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- get-started/_common/fidl/_fidl_intro.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/get-started/_common/fidl/_fidl_intro.md b/get-started/_common/fidl/_fidl_intro.md index 33d69954..2905c3fb 100644 --- a/get-started/_common/fidl/_fidl_intro.md +++ b/get-started/_common/fidl/_fidl_intro.md @@ -1,11 +1,17 @@ + +Fuchsia 接口定义语言(FIDL)是用来描述 Fuchsia 程序使用的进程间通信(IPC)协议的语言。FIDL 提供了一种简化的声明语法,供供应商将接口定义为一种**协议**。支持的数据类型包括整数、浮点数、布尔运算、字符串和[句柄][glossary.handle]。这些可以被组织成更复杂的数组、向量、结构体、表格和联合体。 + +考虑以下用于 `Echo` 接口的 FIDL 协议的示例。 ```fidl library fuchsia.examples; @@ -15,27 +21,45 @@ library fuchsia.examples; {% includecode gerrit_repo="fuchsia/fuchsia" gerrit_path="examples/fidl/fuchsia.examples/echo.test.fidl" region_tag="echo" adjust_indentation="auto" %} ``` + +FIDL 协议描述了一组**方法**,在通过通道发送消息时被调用。通道消息本身是异步的,发送方和接收方彼此可以独立操作。FIDL 方法引入了更高层次的语义,使 FIDL 交易的客户端和服务器端的编程更加符合传统习惯。 + +FIDL支持以下方法类型: + +* **双向方法**:一个典型的方法调用是,接受可选的参数,其返回类型定义在 `->` 操作符之后。双向方法会阻塞调用方直到收到响应。在 `Echo` 的例子中,`EchoString()` 方法是一个双向的方法。 + +* **单向方法**:异步方法调用,立即返回而不等待响应。没有声明返回类型的方法被认为是客户端的单向方法。在 `Echo` 的例子中,`SendString()` 方法是一个单向的方法。 + +* **事件**:必要时,服务器端可以向客户端发送非请求信息,称之为事件。事件在 `->` 操作符的返回端声明其方法名称。在 `Echo` 的例子中,`OnString()` 方法是一个事件。 + +注意:要获取 FIDL 语言语法和支持的类型的更多细节,请参阅 [FIDL 语言规范](/reference/fidl/language/language.md)。 [glossary.handle]: /glossary/README.md#handle From a36f14f0a9d28ca43f6d854c283b6652258e7ac8 Mon Sep 17 00:00:00 2001 From: cwolf9 <2717232422@qq.com> Date: Wed, 27 Jul 2022 22:10:28 +0800 Subject: [PATCH 020/118] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=BC=8F=E7=BF=BB?= =?UTF-8?q?=E5=8F=8A=E7=BF=BB=E8=AF=91=E7=BB=86=E8=8A=82=20=5Foverview.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- get-started/_common/fidl/_overview.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/get-started/_common/fidl/_overview.md b/get-started/_common/fidl/_overview.md index 9234dc6a..3e6be97e 100644 --- a/get-started/_common/fidl/_overview.md +++ b/get-started/_common/fidl/_overview.md @@ -5,7 +5,7 @@ define specific mechanisms that processes use to exchange data. Within this framework, **Zircon channels** provide an asynchronous message-based transport capable of passing both data and a set of handles to grant access rights. --> -在 **Fuchsia 简介**中了解到,Zircon 提供了内核对象类型来支持 Fuchsia 的进程间通信(IPC)。这些对象类型定义了进程用来交换数据的特定机制。在这个框架内,Zircon 通道提供了一个基于消息的异步传输能力,即支持同时传递数据和一组句柄来授予访问权。 +您已经在 **Fuchsia 简介**中了解到,Zircon 提供了内核对象类型来支持 Fuchsia 的进程间通信(IPC)。这些对象类型定义了进程用来交换数据的特定机制。在这个框架内,Zircon 通道提供了一个基于消息的异步传输能力,即支持同时传递数据和一组句柄来授予访问权。 -程序通过 **FIDL 编译器**生成的特定语言的 binding 和库与 FIDL 协议进行交互,该编译器是用于隐藏 Zircon IPC 复杂性的一个抽象层。这使得我们可以引入熟悉的编程习惯,如结构化类型和同步执行。编译器为每种支持的语言都生成了 bingding,因此供应商不需要维护客户端库。 +程序通过 **FIDL 编译器**生成的特定语言的绑定(binding)和库与 FIDL 协议进行交互,该编译器是用于隐藏 Zircon IPC 复杂性的一个抽象层。这使得我们可以引入熟悉的编程习惯,如结构化类型和同步执行。编译器为每种支持的语言都生成了绑定,因此供应商不需要维护客户端库。 -Fuchsia 接口定义语言(FIDL)是用来描述 Fuchsia 程序使用的进程间通信(IPC)协议的语言。FIDL 提供了一种简化的声明语法,供供应商将接口定义为一种**协议**。支持的数据类型包括整数、浮点数、布尔运算、字符串和[句柄][glossary.handle]。这些可以被组织成更复杂的数组、向量、结构体、表格和联合体。 +Fuchsia 接口定义语言(FIDL)是用来描述 Fuchsia 程序使用的进程间通信(IPC)协议的语言。FIDL 为供应商提供了一种简化的声明语法,以便将接口定义为一种**协议**。支持的数据类型包括整数、浮点数、布尔运算、字符串和[句柄][glossary.handle]。这些可以被组织成更复杂的数组、向量、结构体、表格和联合体。 -FIDL支持以下方法类型: +FIDL 支持以下方法类型: -* **事件**:必要时,服务器端可以向客户端发送非请求信息,称之为事件。事件在 `->` 操作符的返回端声明其方法名称。在 `Echo` 的例子中,`OnString()` 方法是一个事件。 +* **事件**:必要时,服务器端可以向客户端发送非请求信息,这种消息称为事件。事件在 `->` 操作符的返回端声明其方法名称。在 `Echo` 的例子中,`OnString()` 方法是一个事件。 -如果您在脚本运行期间看到了 `Invalid authentication credentials` 报错信息,您的 `~/.gitcookies` 文件中可能包含了一些引导脚本想要自动检测的来自 `googlesource.com` 的 cookie 信息。 +如果您在引导脚本运行过程中看到了 `Invalid authentication credentials` 报错信息,您的 `~/.gitcookies` 文件中可能包含了来自 `googlesource.com` 中的一些仓库的 cookie,引导脚本想要匿名检出。 @@ -386,7 +386,7 @@ Alternatively, run the `fx` tool directly using its path, for example: -无论哪种情况,您都需要`jiri` 工具在您的 `PATH` 环境变量中。 +无论哪种情况,您都需要 `jiri` 工具在您的 `PATH` 环境变量中。 [ffx-platform-preflight]: https://fuchsia.dev/reference/tools/sdk/ffx#preflight From b42fd3fd01cc083b7e16f0180d4a4f3209c18d06 Mon Sep 17 00:00:00 2001 From: wy Date: Fri, 29 Jul 2022 20:00:54 +0800 Subject: [PATCH 023/118] build_fuchsia.md file review --- get-started/build_fuchsia.md | 78 ++++++++++++++++++------------------ 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/get-started/build_fuchsia.md b/get-started/build_fuchsia.md index 6200e514..e044f36a 100644 --- a/get-started/build_fuchsia.md +++ b/get-started/build_fuchsia.md @@ -5,7 +5,7 @@ on a host machine. --> # 配置和构建 Fuchsia {#configure-and-build-fuchsia} -这篇文档将引导您在主机上如何配置并构建 Fuchsia。 +这篇文档将引导您在主机上配置并构建 Fuchsia。 @@ -16,9 +16,9 @@ The steps are: 1. [Speed up the build (Optional)](#speed-up-the-build). 1. [Build Fuchsia](#build-fuchsia). --> -1. [准备](#prerequisites) +1. [前提条件](#prerequisites) 1. [配置设置项](#set-your-build-configuration) -1. [构建调优(可选)](#speed-up-the-build) +1. [提升构建速度(可选)](#speed-up-the-build) 1. [构建](#build-fuchsia) -* [准备源码](#source-code-setup) +* [源代码设置](#source-code-setup) * [硬件要求](#hardware-requirements) -### 准备源码 {#source-code-setup} +### 源代码设置 {#source-code-setup} -根据文档 [下载 Fuchsia 源码](/get-started/get_fuchsia_source.md) 指示下载 Fuchsia 的源码,然后在您的机器上设置开发环境。 +根据文档[下载 Fuchsia 源代码](/get-started/get_fuchsia_source.md)指示下载 Fuchsia 的源代码,然后在您的计算机上设置开发环境。 @@ -53,7 +53,7 @@ environment on your machine. You can build Fuchsia only on a machine with one of the following host architectures: --> -Fuchsia 的构建支持如下架构的机器: +您只能在具有下列主机架构之一的计算机上构建 Fuchsia: -注意:Windows 和 ARM64 是不支持的。 +注意:不支持 Windows 和 ARM64。 -## 2. 配置设置项 {#set-your-build-configuration} +## 2. 设置构建配置 {#set-your-build-configuration} -Fuchsia 的构建设置项告诉构建系统如何构建,以及构建什么架构的文件。 +Fuchsia 的构建配置告诉构建系统进行构建的产品,以及构建面向的平台。 -设置您的 Fuchsia 构建选项,可以运行 [`fx set`][fx-set-reference] 命令: +要设置您的 Fuchsia 构建配置,请运行 [`fx set`][fx-set-reference] 命令: ```posix-terminal fx set {{ '' }}PRODUCT{{ '' }}.{{ '' }}BOARD{{ '' }} ``` -替换以下选项: +请替换以下选项: -* `PRODUCT`: 构建的目标文件类型, 比如可以设置为: `core` 和 `workstation_eng`. -* `BOARD`: 构建的可执行文件架构,比如:`x64` 和 `qemu-x64` +* `PRODUCT`(产品):您想要构建的 Fuchsia 产品,比如:`core` 和 `workstation_eng`。 +* `BOARD`(板型):编译的可执行文件架构,比如:`x64` 和 `qemu-x64`。 -下面的示例设置了构建选项为 `core.qemu-x64`: +下面的示例将一项构建配置设置为 `core.qemu-x64`: ```posix-terminal fx set core.qemu-x64 @@ -111,14 +111,14 @@ In this example: emulator (FEMU), which is based on the open source emulator [QEMU][qemu]{:.external}. --> - * `core` 就是选择了特性最小化的 Fuchsia, 当然包括了常见的网络相关。 - * `qemu-x64` 这个选项设置了构建架构为在开源的虚拟机 (FEMU)中的 x64 架构 [QEMU][qemu]{:.external}. + * `core` 是 Fuchsia 具备最小功能集的产品,包括常用的网络功能。 + * `qemu-x64` 是 Fuchsia 模拟器(FEMU)的 x64 架构这一板型,FEMU 基于开源模拟器 [QEMU][qemu]{:.external}。 -在看另一个构建选项示例,下面这个命令配置了 [在设备中安装 Fuchsia 工作站][build-workstation] 中常用的一个架构, `workstation_eng.x64`: +另外,下面的例子将一项编译配置设置为 `workstation_eng.x64`,这常用于[在设备上安装 Fuchsia 工作站][build-workstation]: ```posix-terminal fx set workstation_eng.x64 @@ -127,40 +127,40 @@ fx set workstation_eng.x64 For more information on the build configuration, see [Configure a build](/development/build/fx.md#configure-a-build). --> -如果想查看更详细的构建选项介绍,参考 [配置构建选项](/development/build/fx.md#configure-a-build) +要获取关于构建配置的更多信息,请参阅[配置构建](/development/build/fx.md#configure-a-build)。 -## 3. 构建调优(可选) {#speed-up-the-build} +## 3. 提升构建速度(可选) {#speed-up-the-build} -注意:这一步不是必选项,但是建议您设置,因为设置了这一步能节省很多的构建时间。 +注意:这一步对于构建 Fuchsia 而言并不是必需的,但是可以在您构建 Fuchsia 时节省很多时间,因此建议您完成该步骤。 -构建调优的话,需要下面的服务: +要提升 Fuchsia 构建速度,您可以使用下列服务之一: -* [使用 Goma](#enable-goma) +* [启用 Goma](#enable-goma) * [安装 ccache](#install-ccache) -### 使用 Goma {#enable-goma} +### 启用 Goma {#enable-goma} -[Goma](https://chromium.googlesource.com/infra/goma/server/){:.external} 是一个分布式构建服务,常用在一些开源项目中,如 Chrome,Android 以及 Fuchsia。 +[Goma](https://chromium.googlesource.com/infra/goma/server/){:.external} 是一个分布式编译器服务,适用于 Chrome、Android 和 Fuchsia 等开源项目。 -如果您能访问 Goma, 那么请使用下面的命令来开启 Goma 客户端: +如果您能访问 Goma, 请在您的计算机上 Goma 客户端: ```posix-terminal fx goma @@ -174,13 +174,13 @@ If you do not have access to Goma, but want to accelerate the Fuchsia build locally, use [ccache](https://ccache.dev/){:.external} to cache artifacts from previous builds. --> -如果不能访问 Goma,但是想加速本地构建时间,则可以使用 [ccache](https://ccache.dev/){:.external} 来缓存来进行增量构建。 +如果您无法访问 Goma,但想在本地加速构建,则可以使用 [ccache](https://ccache.dev/){:.external} 缓存之前构建的产物。 * {Linux} - 在 Linux 中使用 `ccache`,安装如下安装包: + 要在 Linux 上使用 `ccache`,请安装如下安装包: ```posix-terminal sudo apt install ccache ``` @@ -190,20 +190,20 @@ artifacts from previous builds. [Using CCache on Mac](https://chromium.googlesource.com/chromium/src.git/+/HEAD/docs/ccache_mac.md){:.external} for installation instructions. --> - 对于 macOS ,参考 [在 Mac 上使用 CCache](https://chromium.googlesource.com/chromium/src.git/+/HEAD/docs/ccache_mac.md){:.external} 中的安装步骤。 + 对于 macOS ,请参阅[在 Mac 上使用 CCache](https://chromium.googlesource.com/chromium/src.git/+/HEAD/docs/ccache_mac.md){:.external} 中的安装步骤。 -如果您的 `CCACHE_DIR` 环境变量指向一个存在的路径,`ccache` 就会自动开启。 +如果您的 `CCACHE_DIR` 环境变量指向已有路径,那么 `ccache` 就会自动开启。 -如果想关闭这个特性,可以指定下面的标志为 `fx set`: +要覆盖此默认行为,请为 `fx set` 指定以下标志: -* 强制使用 `ccache`,即使其他的加速项可以使用: +* 即使其他的加速项可用,也要强制使用 `ccache`,则:
     fx set PRODUCT.BOARD --ccache
@@ -211,7 +211,7 @@ To override this default behavior, specify the following flags to `fx set`:
 
-*   关闭 `ccache`:
+*   要禁用 `ccache`:
     
     fx set PRODUCT.BOARD --no-ccache
     
@@ -227,7 +227,7 @@ source code into packages and other build artifacts. -使用如下命令构建 Fuchsia: +要构建 Fuchsia,请运行以下命令: @@ -241,26 +241,26 @@ When you modify source code, run the `fx build` command again to perform an incremental build, or run the `fx -i build` command to start a watcher, which automatically builds whenever you update the source code. --> -当您修改源代码后,要运行命令 `fx build` 来增量构建,或者运行 `fx -i build` 命令来开启一个监视进程,这个监视进程一旦发现源码有更新就会自动构建。 +当您修改源代码后,请再次运行命令 `fx build` 进行增量构建,或者运行 `fx -i build` 命令来开启一个监视进程,这个监视进程会在发现源代码更新时自动构建。 -要获取关于构建 Fuchsia 的更多信息,请参考参阅[开始构建](/development/build/fx.md#execute-a-build)。 +要获取关于构建 Fuchsia 的更多信息,请参阅[执行构建](/development/build/fx.md#execute-a-build)。 -## 下一步 +## 后续步骤 -关于如何在您的主机上打开 Fuchsia 模拟器 (FEMU),参考 [开启 Fuchsia 模拟器](/get-started/set_up_femu.md)。 +要在您的计算机上启动 Fuchsia 模拟器 (FEMU),请参阅[开启 Fuchsia 模拟器](/get-started/set_up_femu.md)。 -如果您无论如何都想要在硬件平台上运行 Fuchsia, 可以参考 [在硬件设备中安装 Fuchsia](/development/hardware/README.md)。 +不过,如果您想在硬件设备上运行 Fuchsia,请参阅[在设备上安装 Fuchsia](/development/hardware/README.md)。 From 7795077fa5d5fb4db8beb479d6bd4049f64d7abf Mon Sep 17 00:00:00 2001 From: "user: wy" <101500325+user-wy@users.noreply.github.com> Date: Fri, 29 Jul 2022 20:04:32 +0800 Subject: [PATCH 024/118] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20next=20steps=20?= =?UTF-8?q?=E6=9C=AF=E8=AF=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加 next steps 术语 --- glossary-translation.md | 1 + 1 file changed, 1 insertion(+) diff --git a/glossary-translation.md b/glossary-translation.md index 75b4c9dc..f8c7d45a 100644 --- a/glossary-translation.md +++ b/glossary-translation.md @@ -77,6 +77,7 @@ | traffic | 流量 | G | | unmount | 卸载 | G | | validate | 验证 | G | +| Next steps | 后续步骤 | G | ## 文档中未出现术语的翻译参考表 From 6654362fc3f67cc761e41ec5a4c63eefbab6de5d Mon Sep 17 00:00:00 2001 From: wy Date: Sun, 31 Jul 2022 22:22:34 +0800 Subject: [PATCH 025/118] build_fuchsia.md file review --- get-started/build_fuchsia.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/get-started/build_fuchsia.md b/get-started/build_fuchsia.md index e044f36a..42057111 100644 --- a/get-started/build_fuchsia.md +++ b/get-started/build_fuchsia.md @@ -17,13 +17,13 @@ The steps are: 1. [Build Fuchsia](#build-fuchsia). --> 1. [前提条件](#prerequisites) -1. [配置设置项](#set-your-build-configuration) +1. [设置构建配置](#set-your-build-configuration) 1. [提升构建速度(可选)](#speed-up-the-build) -1. [构建](#build-fuchsia) +1. [构建 Fuchsia](#build-fuchsia) -## 1. 准备 {#prerequisites} +## 1. 前提条件 {#prerequisites} @@ -91,7 +91,7 @@ Replace the following: * `BOARD`: The architecture of the product; for example, `x64` and `qemu-x64` --> * `PRODUCT`(产品):您想要构建的 Fuchsia 产品,比如:`core` 和 `workstation_eng`。 -* `BOARD`(板型):编译的可执行文件架构,比如:`x64` 和 `qemu-x64`。 +* `BOARD`(板型):产品的可执行文件架构,比如:`x64` 和 `qemu-x64`。 @@ -118,7 +118,7 @@ On the other hand, the example below sets the build configuration to `workstation_eng.x64`, which is commonly used to [install Fuchsia's Workstation product on a device][build-workstation]: --> -另外,下面的例子将一项编译配置设置为 `workstation_eng.x64`,这常用于[在设备上安装 Fuchsia 工作站][build-workstation]: +另外,下面的例子将一项构建配置设置为 `workstation_eng.x64`,这常用于[在设备上安装 Fuchsia 工作站][build-workstation]: ```posix-terminal fx set workstation_eng.x64 @@ -218,7 +218,7 @@ To override this default behavior, specify the following flags to `fx set`: -## 4. 构建 {#build-fuchsia} +## 4. 构建 Fuchsia {#build-fuchsia} -注意:这一步对构建或者运行 Fuchsia 并不是必须的。但是为了确保 Fuchsia 模拟器实例能在 Linux 上顺利运行是推荐的。 +注意:这一步对构建或者运行 Fuchsia 并不是必需的。但是为了确保 Fuchsia 模拟器实例能在 Linux 上顺利运行是推荐的。 -(**仅Linux**) 如果您计划在 Linux 中运行 Fuchsia,建议您运行如下命令在宿主机上允许 Fuchsia 相关的流量: +(**仅限 Linux**) 如果您计划在 Linux 中运行 Fuchsia,建议您运行如下命令在宿主机上允许 Fuchsia 相关的流量: ```posix-terminal fx setup-ufw @@ -279,13 +279,13 @@ firewall rules. (For more information on this script, see [`setup-ufw`][setup-uf -## 下一步 +## 后续步骤 -构建您第一个 Fuchsia 系统镜像,参考[配置和构建 Fuchsia](/get-started/build_fuchsia.md)。 +要构建您第一个 Fuchsia 系统镜像,请参考[配置和构建 Fuchsia](/get-started/build_fuchsia.md)。 @@ -299,11 +299,11 @@ If you see the `Invalid authentication credentials` error during the bootstrap process, your `~/.gitcookies` file may contain cookies from some repositories in `googlesource.com` that the bootstrap script wants to check out anonymously. --> -如果您在引导脚本运行过程中看到了 `Invalid authentication credentials` 报错信息,您的 `~/.gitcookies` 文件中可能包含了来自 `googlesource.com` 中的一些仓库的 cookie,引导脚本想要匿名检出。 +如果您在引导脚本运行过程中看到了 `Invalid authentication credentials` 报错信息,那么您的 `~/.gitcookies` 文件中可能包含了来自 `googlesource.com` 中一些仓库的 cookie,引导脚本想要匿名检出。 -为了解决这个问题,使用以下任何一个方式: +要解决该错误,请使用以下方式之一: -* 按照屏幕上的指示为特定的仓库获取密码 +* 按照屏幕上的指示为特定的仓库获取密码。 * 删除 `.gitcookies` 文件中有问题的 cookie。 +系统中的所有组件组成一个有根的**组件实例树**。树中的父组件负责将其他组件的实例声明为其子组件并为它们提供功能。同时,子组件可以向父组件公开功能。这些组件实例和功能关系构成了**组件拓扑**。 + +任何父组件及其所有子组件在树中形成一个称为**领域**的组。领域使父级能够控制哪些功能流入和流出其组件的子树,从而创建功能边界。这种封装允许领域在内部进行重组,而不会影响依赖于其公开功能的外部组件。 + +![图表展示了组件实例被组织成一个树,父组件通过“功能路由”确定每个子组件可用的功能。](/get-started/images/components/component-topology.png){: width="616"} + +在上图中,`fuchsia.example.Foo` 协议功能通过组件实例树从提供者路由到客户端。组件使用 `use` 关键字声明它们**需要**的功能: + +```json5 +{ + // 程序运行的有关信息。 + program: { + // 使用内置的 ELF 运行程序来运行二进制文件。 + runner: "elf", + // 运行该组件的二进制文件。 + binary: "bin/client", + }, + + // 此组件所需的功能。 + use: [ + { protocol: "fuchsia.example.Foo" }, + ], +} ``` + +组件使用组件清单中的 `capabilities` 部分声明它们实现或**提供**的功能。这使得组件框架知道该功能和它的提供者。请查看下面的 `provider.cml` 示例: + +```json5 +{ + // 程序运行的有关信息。 + program: { + // 使用内置的 ELF 运行程序来运行二进制文件。 + runner: "elf", + // 运行该组件的二进制文件。 + binary: "bin/provider", + }, + // 此组件提供的功能。 + capabilities: [ + { protocol: "fuchsia.example.Foo" }, + ], + // 通过此组件路由的功能。 + expose: [ + { + protocol: "fuchsia.example.Foo", + from: "self", + }, + ], +} +``` + + +`expose` 关键字使这个组件的功能通过它的父组件向其他领域提供,这也可能包括这个组件的子组件提供的功能。在这种情况下,功能的来源是 `self`,因为这个组件是提供者。 + +父组件控制领域内的**功能路由**,创建从客户端组件到提供者的显式路径。请查看以下 `parent.cml` 清单示例: ```json5 { @@ -96,18 +160,28 @@ example `parent.cml` manifest: } ``` + + + +父组件在领域中声明一组子组件,并使用 `offer` 关键字将功能路由到它们。用这种方法,父组件就决定了每个子组件功能的范围和来源。这也使拓扑中的多个组件能够提供相同的功能,因为组件框架依赖于显式路由来确定如何解析来自每个客户端的请求。 + +注意:要获取关于组件组织的更多详细信息,请参阅[组件拓扑](/concepts/components/v2/topology.md). From 36997ac760dd9d98495740f5470ed5d03580c235 Mon Sep 17 00:00:00 2001 From: Eric X Date: Tue, 2 Aug 2022 11:16:05 +0800 Subject: [PATCH 028/118] =?UTF-8?q?=E7=BB=84=E4=BB=B6=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=99=A8=E7=BF=BB=E8=AF=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_common/intro/_components_capabilities.md | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/get-started/_common/intro/_components_capabilities.md b/get-started/_common/intro/_components_capabilities.md index c917b833..3121753b 100644 --- a/get-started/_common/intro/_components_capabilities.md +++ b/get-started/_common/intro/_components_capabilities.md @@ -1,19 +1,23 @@ -## Component capabilities + +## 组件功能 -Components obtain privileges to access various parts of the wider system + +组件通过**功能**获得访问更广泛系统各个部分的权限。 每个组件都可以声明它们提供给系统的新功能以及它们需要的由其他组件(或框架)提供的功能。 -As you just saw, `runner` is an example of a capability declaring the runtime + +如您所见,`runner` 是一个声明组件运行时所需功能的例子。其它通用功能类型的例子是访问文件系统资源的 `directory` 和与其它组件通信的协议。 -Developers declare the capability types required by the component using the + +开发者用组件清单声明组件所需要的功能类型。以下是一个需要两个功能的组件清单示例:对 `example-data` 目录的读权限和以 FIDL 协议描述的名为 `fuchsia.example.Foo` 的服务。 ```json5 use: [ @@ -28,6 +32,7 @@ use: [ ] ``` -Component manager uses the capability declarations to populate each component's + +组件管理器依据功能声明将各个组件所需的目录处理句柄填入各自的命名空间。对于本例子而言,组件将在其命名空间中接收 `/example/data` 和 `/svc/fuchsia.example.Foo` 。 From 8924986cd3f836215a994655f848d50389c57f9e Mon Sep 17 00:00:00 2001 From: cwolf9 <2717232422@qq.com> Date: Thu, 4 Aug 2022 21:23:35 +0800 Subject: [PATCH 029/118] =?UTF-8?q?=E7=BF=BB=E8=AF=91=20get-started/=5Fcom?= =?UTF-8?q?mon/components/=5Ftests=5Fintro.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- get-started/_common/components/_tests_intro.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/get-started/_common/components/_tests_intro.md b/get-started/_common/components/_tests_intro.md index 9b994c64..eac6dac3 100644 --- a/get-started/_common/components/_tests_intro.md +++ b/get-started/_common/components/_tests_intro.md @@ -1,19 +1,31 @@ + +Fuchsia **测试运行器框架**(Test Runner Framework)使开发者能够使用各种语言和运行时为组件构建测试,并在目标设备上执行它们。该框架提供了实现 `fuchsia.test.Suite` 协议的**测试运行器**组件,并与通用的特定语言的测试框架(如 GoogleTest (C++))集成。 + +`test_manager` 组件负责在 Fuchsia 设备上运行测试。它检查实现测试套件协议的组件,并将它们作为子组件启动。这意味着 `test_manager` 也负责为每个测试套件提供能力,即创建通常称为**测试领域**的东西。 + +![图中显示了测试运行器框架如何为开发者提供接口来公开测试套件,以及开发者工具如何在 Fuchsia 设备上执行测试。](/get-started/images/components/test-realm.png){: width="714"} + +`ffx test` 等开发者工具与设备上的 `test_manager` 进行通信,以执行测试套件并检索结果。 From ba1347427fe1ce1dd7e60eb533aeb44e7b99908d Mon Sep 17 00:00:00 2001 From: cwolf9 <2717232422@qq.com> Date: Thu, 4 Aug 2022 21:24:52 +0800 Subject: [PATCH 030/118] =?UTF-8?q?=E7=BF=BB=E8=AF=91=20get-started/=5Fcom?= =?UTF-8?q?mon/fidl/=5Ftesting=5Fintro.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- get-started/_common/fidl/_testing_intro.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/get-started/_common/fidl/_testing_intro.md b/get-started/_common/fidl/_testing_intro.md index b1611972..159e3aa8 100644 --- a/get-started/_common/fidl/_testing_intro.md +++ b/get-started/_common/fidl/_testing_intro.md @@ -1,3 +1,4 @@ + +[集成测试](https://en.wikipedia.org/wiki/Integration_testing){:.external} 侧重于验证组件的行为,因为它会与系统上其他组件进行交互。正因为如此,集成测试通常与主组件分开构建,并且可以将被测组件和其他依赖组件声明为子组件。根据测试的性质,依赖组件可以作为模拟或存根提供,以促进测试用例保持封闭性。 From 816cda46c4b8b3da3b1d199526edd1e695b07ba0 Mon Sep 17 00:00:00 2001 From: Xyct <87l46110@gmail.com> Date: Fri, 5 Aug 2022 13:57:42 +0800 Subject: [PATCH 031/118] =?UTF-8?q?=E7=BF=BB=E8=AF=91=5Fcommon/intro/=5Far?= =?UTF-8?q?chitecture.md=E5=92=8Cget-started/learn/intro/architecture.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- get-started/_common/intro/_architecture.md | 27 +++++++++++++++++++++- get-started/learn/intro/architecture.md | 3 ++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/get-started/_common/intro/_architecture.md b/get-started/_common/intro/_architecture.md index 522c93d6..aee80ff5 100644 --- a/get-started/_common/intro/_architecture.md +++ b/get-started/_common/intro/_architecture.md @@ -1,29 +1,54 @@ + +![展示整个 Fuchsia 系统架构的高层图表的数据表,强调了核心组件和子系统] (/get-started/images/intro/fuchsia-architecture.png){: width="1080"} -The following architectural principles guide Fuchsia's design and development: + +以下架构性原则指导了 Fuchsia 的设计与开发: + +* [**简单:**][simple]Fuchsia 让创建、维护和集成软件与硬件在广范的设备中都变得容易。 + +* [**安全:**][secure]Fuchsia 有着为现代计算设计的内核和软件模型。 + +* [**可升级:**][updatable]作为模块化操作系统,Fuchsia 允许内核、驱动和软件组件独立升级。 + +* [**高性能:**][performant]Fuchsia 为真实世界产品需求设计,并为性能优化。 + +系统的核心是 [Zircon][glossary.zircon],它是处理系统启动与引导的内核和一组库。其他所有系统组件都实现于用户空间并被隔离,再次强化了**最小特权原则**。这些组件包括: + +* 设备驱动 +* 文件系统 +* 网络栈 [glossary.zircon]: /glossary/README.md#zircon [simple]: /concepts/principles/simple.md diff --git a/get-started/learn/intro/architecture.md b/get-started/learn/intro/architecture.md index aab7cae8..fb7f06da 100644 --- a/get-started/learn/intro/architecture.md +++ b/get-started/learn/intro/architecture.md @@ -1,3 +1,4 @@ -# Fuchsia architecture + +# Fuchsia 架构 <<../../_common/intro/_architecture.md>> From 4a9f66bd86586871167a2077b102f325792323dc Mon Sep 17 00:00:00 2001 From: Xyct <87l46110@gmail.com> Date: Fri, 5 Aug 2022 18:00:02 +0800 Subject: [PATCH 032/118] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BF=BB=E8=AF=91?= =?UTF-8?q?=E6=9C=AF=E8=AF=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- glossary-translation.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/glossary-translation.md b/glossary-translation.md index f8c7d45a..1c5049f6 100644 --- a/glossary-translation.md +++ b/glossary-translation.md @@ -39,6 +39,7 @@ | escalate | 上报 | G | | execute-only memory | 只执行内存 | G | | fault injection | 故障注入 | G | +| fully qualified URL | 完全限定的网址 | G | | get stared | 使用入门
入门 | G
前者更常用 | | get started with | 开始使用
使用入门 | G
二者均常用 | | guidance | 指导 | | @@ -50,6 +51,7 @@ | infrastructure | 基础架构 | G | | inspect | 审视 | Fuchsia 专有名词
i | | just-in-time (JIT) compilation | 即时(JIT)编译 | G | +| moniker | 代称 | i | | mount | 装载 | G | | namespace | 命名空间 | G | | out-of-tree | 树外 | G
此处指源码树 | @@ -76,6 +78,7 @@ | suite | 套件 | G | | traffic | 流量 | G | | unmount | 卸载 | G | +| URL | 网址 | G | | validate | 验证 | G | | Next steps | 后续步骤 | G | From 9e71d4abbfea78743616f52ba7f36d2362dd368e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=97=85=E7=AB=8B=E3=81=A1=E3=81=AE=E9=A2=A8?= <36873309+tabidachinokaze@users.noreply.github.com> Date: Fri, 5 Aug 2022 21:53:23 +0800 Subject: [PATCH 033/118] Update get-started/_common/components/_organizing_intro.md Co-authored-by: y2-Whyto --- get-started/_common/components/_organizing_intro.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/get-started/_common/components/_organizing_intro.md b/get-started/_common/components/_organizing_intro.md index 8be5db0c..d22ce23c 100644 --- a/get-started/_common/components/_organizing_intro.md +++ b/get-started/_common/components/_organizing_intro.md @@ -15,7 +15,7 @@ out of its sub-tree of components, creating a capability boundary. This encapsulation allows the realm to be reorganized internally without affecting external components dependent on its exposed capabilities. --> -任何父组件及其所有子组件在树中形成一个称为**领域**的组。领域使父级能够控制哪些功能流入和流出其组件的子树,从而创建功能边界。这种封装允许领域在内部进行重组,而不会影响依赖于其公开功能的外部组件。 +任何父组件及其所有子组件在树中形成一个称为**领域**的组。领域使父级能够控制那些功能流入和流出其组件的子树,从而创建功能边界。这种封装允许领域在内部进行重组,而不会影响依赖于其公开功能的外部组件。 +Fuchsia 软件通过**包****按需**交付到系统中。这是 Fuchsia 的**安全性**和**可更新性**核心设计原则的关键组成部分。包可以单独更新和按需交付,就像网页一样。这使得漏洞补丁可以一次性推送到所有的 Fuchsia 产品中,无须针对各个产品单独协调。 -A package is not a single archive or image file, but rather a tree of **Binary + +包不是单一文件或镜像,而是一棵**二进制大对象**(BLOBs)树。树根是一个名为“meta.far”的 BLOB,其中包含了该包的元数据,包括一个含有对其它 BLOB 引用信息的“meta/contents”文件。Fuchsia 包中的 BLOB 是**内容寻址**的,这意味着它们是使用其内容的哈希值来引用的。meta.far 本身的内容地址被称为**包哈希**。 -The meta.far contains a `meta/` directory with at least the -following two items: + +meta.far 文件包含一个至少含有如下两项内容的 `meta/` 目录: -* `meta/package`: JSON file containing the package's identity information + +* `meta/package`: 含有包名称和版本等身份信息的 JSON 文件。 +* `meta/contents`: 包中人类可读文件名与其内容地址的映射。 -![Diagram showing the contents of a Fuchsia package consisting of "meta.far" -metadata and a collection of content BLOBs.] + +![图表显示了由“meta.far”元数据和内容 BLOB 集合组成的 Fuchsia 包的内容。] (/get-started/images/intro/meta-far.png){: width="544"} -If two or more packages share the same content (such as a library dependency, + +如果两个或多个包共享相同内容(如库依赖或字体资源),则它们的元数据将指向那些相同的内容地址。这使 Fuchsia 可以避免获取和保存已经存在的内容的 BLOB ,优化包的分发和存储。 From 1e56cf98ac970db39a4e9c4e621aa4e041c650cd Mon Sep 17 00:00:00 2001 From: Eric X Date: Sat, 6 Aug 2022 17:44:44 +0800 Subject: [PATCH 035/118] =?UTF-8?q?=E7=BF=BB=E8=AF=91=E5=B9=B6=E4=BF=AE?= =?UTF-8?q?=E6=94=B9overview=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- get-started/_common/intro/_overview.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/get-started/_common/intro/_overview.md b/get-started/_common/intro/_overview.md index be913011..fd7b58c0 100644 --- a/get-started/_common/intro/_overview.md +++ b/get-started/_common/intro/_overview.md @@ -1,9 +1,9 @@ -Fuchsia 是谷歌从内核创建的一种新的开源操作系统,旨在满足当今不断增长的连接设备生态系统的需求。 +Fuchsia 是谷歌从内核创建的一种新的开源操作系统,旨在满足当今不断增长的互联设备生态系统的需求。 + -在本培训模块中,您将了解这一新操作系统背后的核心原理, -并探索 Fuchsia 如何为开发人员在各种设备上创建经久耐用的产品和体验奠定基础。 +在本培训模块中,您将了解这一新操作系统背后的核心原理,并探索 Fuchsia 如何为开发人员在各种设备上创建经久耐用的产品和体验奠定基础。 From 8a5128a72624baead30126d4edd9e4c82799d5fd Mon Sep 17 00:00:00 2001 From: Eric X Date: Sat, 6 Aug 2022 17:52:36 +0800 Subject: [PATCH 036/118] =?UTF-8?q?=E5=9B=9E=E9=80=80build=5Ffuchsia?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=88=B0=E6=9C=AA=E7=BF=BB=E8=AF=91=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- get-started/build_fuchsia.md | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/get-started/build_fuchsia.md b/get-started/build_fuchsia.md index 58964b9d..7e66e119 100644 --- a/get-started/build_fuchsia.md +++ b/get-started/build_fuchsia.md @@ -1,17 +1,14 @@ - -# 配置和构建 Fuchsia +# Configure and build Fuchsia {#configure-and-build-fuchsia} - -本指南提供如何在宿主机上配置和构建 Fuchsia 的指令。 +This guide provide instructions on how to configure and build Fuchsia +on a host machine. - -步骤如下: +The steps are: - +1. [Build Fuchsia](#build-fuchsia). ## 1. Prerequisites {#prerequisites} From 1e84ad4db836476362a8107d613d16f180594ad8 Mon Sep 17 00:00:00 2001 From: Eric X Date: Sat, 6 Aug 2022 17:57:04 +0800 Subject: [PATCH 037/118] =?UTF-8?q?=E5=9B=9E=E9=80=80=E5=85=B6=E4=BB=96?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=88=B0=E6=9C=AA=E7=BF=BB=E8=AF=91=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- get-started/_common/components/_overview.md | 34 ++++++------------- .../_common/components/_product_driver.md | 21 ++++-------- .../_common/components/_product_intro.md | 12 ++----- .../_common/components/_product_session.md | 22 ++++-------- 4 files changed, 28 insertions(+), 61 deletions(-) diff --git a/get-started/_common/components/_overview.md b/get-started/_common/components/_overview.md index 26934923..fd829dc0 100644 --- a/get-started/_common/components/_overview.md +++ b/get-started/_common/components/_overview.md @@ -1,40 +1,28 @@ - -一个组件是一个运行在 Fuchsia 沙盒中的程序。每个组件都是一个可组合的模块,依据各自功能与其它组件交互。 -Fuchsia 中的所有软件都被定义为一个个组件,除了内核、引导进程以及组件管理器。 +except for the kernel image, bootstrapping processes, and the Component Manager. - -Fuchsia 的组件框架致力于让系统可以运行几乎所有的用户空间软件。 -组件管理器是一个系统进程,负责协调各个组件实例的执行和生命周期,维护组件拓扑,给组件提供相应功能,并使它们彼此隔离。 +from one another. - -组件通过功能获得访问更广泛系统的各个部分的特权。 -每个组件都可以声明它们提供给系统的新功能以及需要其他组件(或框架)提供的功能。 -组件管理器解析并验证组件之间的所有功能请求,以确保它们与组件已被正确授予的功能相匹配。 +has been properly granted. diff --git a/get-started/_common/components/_product_driver.md b/get-started/_common/components/_product_driver.md index 7271df4f..e56a8b82 100644 --- a/get-started/_common/components/_product_driver.md +++ b/get-started/_common/components/_product_driver.md @@ -1,20 +1,13 @@ - -## 驱动框架 +## Driver framework - -与 session 类似,Fuchsia 驱动框架使开发人员能够将产品特定的设备驱动程序实现为组件。 -一些驱动程序组件代表硬件接口控制器,例如 PCI 或 USB,而其他驱动程序组件则与终端设备交互, -例如以太网控制器或键盘。 +interact with end devices, such as an ethernet controller or keyboard. - -当设备被发现或连接到系统时,`driver_manager` 平台组件启动必要的驱动程序组件, -将它们绑定到硬件接口,并管理它们的生命周期。 +hardware interfaces, and manages their lifecycle. - -注:有关驱动框架的细节,参考[Fuchsia 驱动框架](/development/drivers/concepts/fdf.md). +Note: For more details on the driver framework, see +[Fuchsia Driver Framework](/development/drivers/concepts/fdf.md). diff --git a/get-started/_common/components/_product_intro.md b/get-started/_common/components/_product_intro.md index 186ceaa7..cc748e6a 100644 --- a/get-started/_common/components/_product_intro.md +++ b/get-started/_common/components/_product_intro.md @@ -1,16 +1,10 @@ - -组件构成了在 Fuchsia 用户空间中运行的软件的基础。 -到目前为止,您探索的组件是运行 Fuchsia 的所有产品通用的核心平台的一部分。 -Fuchsia 产品由平台组件和产品特定元素组成,以满足设备硬件和用户体验的独特需求。 -在本节中,您将探索 Fuchsia 如何构建组件以实现产品级定制。 +Fuchsia builds on components to enable product-level customization. - -![数据表展现了 Fuchsia 通过会话框架和驱动框架让产品在核心平台上的定制成为可能.] (/get-started/images/components/product.png){: width="582"} diff --git a/get-started/_common/components/_product_session.md b/get-started/_common/components/_product_session.md index 4e78ca99..d776e8c1 100644 --- a/get-started/_common/components/_product_session.md +++ b/get-started/_common/components/_product_session.md @@ -1,23 +1,15 @@ - -## Session 框架 +## Session framework - -会话是一系列封装了产品用户体验的组件。会话框架充当 Fuchsia 平台和产品级用户交互之间的边界。 -每个 Fuchsia 产品都将单个会话实例定义为产品体验的根,并可能管理其他子组件。 +additional child components. - - -`session_manager` 平台组件在启动时打开会话组件,并为其提供一组固定的功能,以支持诸如窗口管理、 -输入事件处理或可访问元素的会话框架 API. +accessibility. - -注: 有关会话框架的更多细节,请参考 -[会话框架介绍](/concepts/session/introduction.md). +Note: For more details on the session framework, see +[Introduction to the session framework](/concepts/session/introduction.md). From a50c8f9a0c1de013e360b4abb40b6b7debb172e3 Mon Sep 17 00:00:00 2001 From: tabidachinokaze Date: Sat, 6 Aug 2022 22:04:24 +0800 Subject: [PATCH 038/118] =?UTF-8?q?=E7=BF=BB=E8=AF=91=20get-started/=5Fcom?= =?UTF-8?q?mon/components/=5Forganizing=5Flifecycle.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/_organizing_lifecycle.md | 30 ++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/get-started/_common/components/_organizing_lifecycle.md b/get-started/_common/components/_organizing_lifecycle.md index 7ae52f80..a797afff 100644 --- a/get-started/_common/components/_organizing_lifecycle.md +++ b/get-started/_common/components/_organizing_lifecycle.md @@ -1,37 +1,65 @@ -## Component lifecycle + +## 组件生命周期 + +在组件拓扑中添加和移除组件实例时,会创建和销毁组件实例。这可以通过以下两种方式之一发生: + +* **静态地**:该实例在组件清单中被声明为树中另一个组件的子组件。静态组件仅当一个更新更改组件拓扑时才会创建和销毁。 + +* **动态地**:实例在运行时使用 `fuchsia.component.Realm` 协议在组件 `collection` 中添加或移除。动态组件在系统关闭时销毁。 + +一旦组件被销毁,框架就会移除它的持久状态(比如本地存储)。 + +框架会启动一个组件实例当另一个组件尝试打开一个通道到该组件实例时——这称为**绑定**。当连接到一个由组件公开的能力时,绑定会**隐式**发生。绑定到已经启动的组件会连接到当前运行的实例。 + + + +组件可能会通过退出程序(由组件的 `runner` 定义)自行停止,或者框架可能会在系统关闭时停止组件。在被销毁之前,框架将组件移动到**关闭**状态以指示它不能再次启动。 + +![该图显示了组件如何具有两种不同的状态:实例和执行。这些状态描述了“组件生命周期”。](/get-started/images/components/component-lifecycle.png){: width="662"} + +注意:要获取关于组件状态和执行的更多详细信息,请参阅[组件生命周期](/concepts/components/v2/lifecycle.md)。 From 3f6e6d537ca08fb2b8bdd66191f6e7af5ef4d37f Mon Sep 17 00:00:00 2001 From: Eric X Date: Sun, 7 Aug 2022 08:39:03 +0800 Subject: [PATCH 039/118] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A9=B1=E5=8A=A8?= =?UTF-8?q?=E6=A1=86=E6=9E=B6=E7=BF=BB=E8=AF=91=EF=BC=8C=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E5=8E=9F=E5=85=88PR=E6=8F=90=E4=BA=A4=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E5=8F=8D=E9=A6=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_common/components/_debugging_analyze.md | 86 ++----------------- get-started/_common/components/_overview.md | 34 +++----- .../_common/components/_product_intro.md | 12 +-- .../_common/components/_product_session.md | 22 ++--- .../_common/intro/_components_capabilities.md | 23 ++--- .../_common/intro/_components_intro.md | 26 ++---- .../_common/intro/_components_manager.md | 51 ++++------- .../_common/intro/_components_organization.md | 52 ++++------- get-started/_common/intro/_overview.md | 11 +-- get-started/_common/intro/_packages_intro.md | 44 ++++------ 10 files changed, 103 insertions(+), 258 deletions(-) diff --git a/get-started/_common/components/_debugging_analyze.md b/get-started/_common/components/_debugging_analyze.md index 0d63f02d..3479b5f8 100644 --- a/get-started/_common/components/_debugging_analyze.md +++ b/get-started/_common/components/_debugging_analyze.md @@ -1,14 +1,10 @@ - -## 分析崩溃 +## Analyzing crashes - -Fuchsia 在启动时启动一个名为 `crashanalyzer` 的程序,该程序报告程序崩溃并将崩溃线程的回溯打印到系统日志中。虽然您可以通过在运行时查看日志来直接浏览这些内容,但回溯内容是使用堆栈内存地址引用编码的,而不是指向程序源文件中的相应行。 ```none {:.devsite-disable-click-to-copy} @@ -42,7 +38,6 @@ Fuchsia 在启动时启动一个名为 `crashanalyzer` 的程序,该程序报 [klog][I] bt#05: end ``` - -这是因为 **调试符号** 在构建时默认从二进制文件中删除。要正确分析崩溃日志,您需要将这些符号重新应用到回溯,以根据源代码行号查看调用堆栈。当您调用 `ffx log` 命令时,开发人员工具会通过一个名为 `symbolizer` 的附加二进制文件处理原始日志,该二进制文件将本地构建配置中的符号重新应用到日志中的任何回溯。 ```posix-terminal ffx log ``` - -您看到的输出包括重新应用于回溯的符号: ```none {:.devsite-disable-click-to-copy} [klog][I] devmgr: crash_analyzer_listener: analyzing exception type 0x108 @@ -74,77 +64,48 @@ end of symbolized stack ``` - -通过正确符号化的回溯,您可以直接在源代码中发现崩溃的位置。 - -### 逐步调试 - -仅仅知道程序崩溃的位置可能不足以完全诊断问题。 有时需要一步一步地遍历代码,甚至检查内存中变量的状态。 为了支持这一点,Fuchsia 有一个名为 `zxdb` 的核心代码调试器。 - -`zxdb` 工具是一个客户端,它连接到目标设备上正在运行的 `debug_agent` 组件。您可以使用 `zxdb` 命令进行配置,然后使用 `debug_agent` 附加到特定进程并设置断点。一旦调试会话附加到正在运行的进程,`zxdb` 允许您单步执行代码并检查堆栈帧。 - -![图表显示了 Fuchsia 调试器 (zxdb) 如何与运行在 Fuchsia 设备上的 debug_agent 服务交互,以执行进程的交互调试。](/get-started/images/components/zxdb.png){: width="591"} - -设置调试会话需要以下高级步骤: - -1. 在目标设备上运行 `debug_agent` 组件。 -1. 运行 `zxdb` 客户端并连接到目标设备。 -1. 设置 `zxdb` 的位置以查找调试符号。 - -启动调试会话的最简单方法是使用 `ffx debug connect` 命令,该命令在本地 Fuchsia 构建的上下文中执行所有这些操作。然而,如果您需要单独配置这些步骤,也可以手动执行。 - -一旦调试会话处于活动状态,您将被带到 `[zxdb]` 提示符以发出调试器命令。您可以使用 `zxdb` 来配置 `debug_agent` 以使用名称过滤器附加到进程,并设置挂起断点,即使当前没有匹配到正在运行的进程。 - -以下示例在 main 上设置一个挂起的断点以在执行开始时停止,并等待名为“hello-world”的进程启动: ```none {:.devsite-disable-click-to-copy} [zxdb] attach hello-world @@ -156,84 +117,53 @@ Pending: No matches for location, it will be pending library loads. ``` - -将调试器附加到进程后,您可以使用 `zxdb` 命令来控制和检查进程的状态。以下是常用命令的简短集合: - -注意:关于 `zxdb` 命令的完整详细信息和参考,请查看 [Fuchsia 调试器](/development/debugger)。 +Note: For complete details and reference on `zxdb` commands, see +[The Fuchsia debugger](/development/debugger). - - - - - - - - - -
step 步过线程中的下一行代码
next 步入线程中的下一行代码
continue 继续执行直到下一个断点、异常或退出
frame 列出或从当前堆栈帧中选择
print 求表达式的值并打印结果
diff --git a/get-started/_common/components/_overview.md b/get-started/_common/components/_overview.md index 26934923..fd829dc0 100644 --- a/get-started/_common/components/_overview.md +++ b/get-started/_common/components/_overview.md @@ -1,40 +1,28 @@ - -一个组件是一个运行在 Fuchsia 沙盒中的程序。每个组件都是一个可组合的模块,依据各自功能与其它组件交互。 -Fuchsia 中的所有软件都被定义为一个个组件,除了内核、引导进程以及组件管理器。 +except for the kernel image, bootstrapping processes, and the Component Manager. - -Fuchsia 的组件框架致力于让系统可以运行几乎所有的用户空间软件。 -组件管理器是一个系统进程,负责协调各个组件实例的执行和生命周期,维护组件拓扑,给组件提供相应功能,并使它们彼此隔离。 +from one another. - -组件通过功能获得访问更广泛系统的各个部分的特权。 -每个组件都可以声明它们提供给系统的新功能以及需要其他组件(或框架)提供的功能。 -组件管理器解析并验证组件之间的所有功能请求,以确保它们与组件已被正确授予的功能相匹配。 +has been properly granted. diff --git a/get-started/_common/components/_product_intro.md b/get-started/_common/components/_product_intro.md index 186ceaa7..cc748e6a 100644 --- a/get-started/_common/components/_product_intro.md +++ b/get-started/_common/components/_product_intro.md @@ -1,16 +1,10 @@ - -组件构成了在 Fuchsia 用户空间中运行的软件的基础。 -到目前为止,您探索的组件是运行 Fuchsia 的所有产品通用的核心平台的一部分。 -Fuchsia 产品由平台组件和产品特定元素组成,以满足设备硬件和用户体验的独特需求。 -在本节中,您将探索 Fuchsia 如何构建组件以实现产品级定制。 +Fuchsia builds on components to enable product-level customization. - -![数据表展现了 Fuchsia 通过会话框架和驱动框架让产品在核心平台上的定制成为可能.] (/get-started/images/components/product.png){: width="582"} diff --git a/get-started/_common/components/_product_session.md b/get-started/_common/components/_product_session.md index 1d4d1f56..d776e8c1 100644 --- a/get-started/_common/components/_product_session.md +++ b/get-started/_common/components/_product_session.md @@ -1,23 +1,15 @@ - -## 会话框架 +## Session framework - -会话是一系列封装了产品用户体验的组件。会话框架充当 Fuchsia 平台和产品级用户交互之间的边界。 -每个 Fuchsia 产品都将单个会话实例定义为产品体验的根,并可能管理其他子组件。 +additional child components. - - -`session_manager` 平台组件在启动时打开会话组件,并为其提供一组固定的功能,以支持诸如窗口管理、 -输入事件处理或可访问元素的会话框架 API. +accessibility. - -注: 有关会话框架的更多细节,请参考 -[会话框架介绍](/concepts/session/introduction.md). +Note: For more details on the session framework, see +[Introduction to the session framework](/concepts/session/introduction.md). diff --git a/get-started/_common/intro/_components_capabilities.md b/get-started/_common/intro/_components_capabilities.md index 3121753b..c917b833 100644 --- a/get-started/_common/intro/_components_capabilities.md +++ b/get-started/_common/intro/_components_capabilities.md @@ -1,23 +1,19 @@ - -## 组件功能 +## Component capabilities - -组件通过**功能**获得访问更广泛系统各个部分的权限。 每个组件都可以声明它们提供给系统的新功能以及它们需要的由其他组件(或框架)提供的功能。 +(or the framework) that they require to function. - -如您所见,`runner` 是一个声明组件运行时所需功能的例子。其它通用功能类型的例子是访问文件系统资源的 `directory` 和与其它组件通信的协议。 +with other components. - -开发者用组件清单声明组件所需要的功能类型。以下是一个需要两个功能的组件清单示例:对 `example-data` 目录的读权限和以 FIDL 协议描述的名为 `fuchsia.example.Foo` 的服务。 +described by the `fuchsia.example.Foo` FIDL protocol. ```json5 use: [ @@ -32,7 +28,6 @@ use: [ ] ``` - -组件管理器依据功能声明将各个组件所需的目录处理句柄填入各自的命名空间。对于本例子而言,组件将在其命名空间中接收 `/example/data` 和 `/svc/fuchsia.example.Foo` 。 +would receive `/example/data` and `/svc/fuchsia.example.Foo` in their namespace. diff --git a/get-started/_common/intro/_components_intro.md b/get-started/_common/intro/_components_intro.md index 0f0a9260..fbdc8fe7 100644 --- a/get-started/_common/intro/_components_intro.md +++ b/get-started/_common/intro/_components_intro.md @@ -1,30 +1,20 @@ - -**组件**是 Fuchsia 中运行的软件的基石。每一个组件是可以组合的沙盒模块,相互之间通过功能交互。 -这提高了系统安全性并在各个组件之间建立了清晰的接口,使它们更容易更新或替换。 +update or replace. - -Fuchsia 中**一切都是组件**(几乎)。回想一下之前对 Zircon 的讨论,内核有意设计得很小, -大多数核心服务都是在用户空间中实现。这意味着在 Fuchsia 上运行的大多数软件都是使用组件框架实现的,包括: +including: - -* 面向用户的应用 -* 设备驱动 -* 文件系统 -* 媒体编解码器 -* 网络栈 +* Network stacks - -内核之外有少数不使用组件框架的底层例外,如引导程序和 `userboot` 进程。 +Outside the kernel there are only a few low-level exceptions not using the +component framework, such as bootloaders and the `userboot` process. diff --git a/get-started/_common/intro/_components_manager.md b/get-started/_common/intro/_components_manager.md index 22ecdb6c..6bc5c22f 100644 --- a/get-started/_common/intro/_components_manager.md +++ b/get-started/_common/intro/_components_manager.md @@ -1,52 +1,39 @@ - -## 组件管理器 +## Component manager - -组件框架的核心是**组件管理器**。它负责协调所有组件实例的执行,提供相应的功能,连接各个组件。 +components. - -组件可以显示地启动(例如,通过 URL调用)或者隐式地通过响应特定功能的请求启动。 -组件管理器采取必要的步骤以决定是启动一个新组件还是将请求路由到现有实例。为实现这种路由功能, -没给组件须声明任何它能**供应**给系统和它需要**使用**的功能。 +and any it **consumes**. - -组件管理器解析每个组件的**声明**以决定如何运行组件并提供必要的功能。组件常常通过组件包中包含的**组件清单** -文件向系统声明自己。 +the component's package. - -以下是一个组件清单的简单例子,它描述了一个包含一些附加命令参数的 ELF 可执行程序。 +Below is a simple example of a component manifest that describes an ELF +executable with some additional command arguments: ```json5 program: { @@ -56,8 +43,6 @@ program: { }, ``` - -留意这个运行时声明,它告诉组件管理器这个组件需要[ELF 运行器](/concepts/components/v2/elf_runner.md)。 -**_这是一个功能示例!_** +**_This is an example of a capability!_** diff --git a/get-started/_common/intro/_components_organization.md b/get-started/_common/intro/_components_organization.md index 4272a15a..a088092f 100644 --- a/get-started/_common/intro/_components_organization.md +++ b/get-started/_common/intro/_components_organization.md @@ -1,38 +1,28 @@ - -## 组件架构 +## Component organization - -系统中所有组件组成一棵单根**组件实例树**。这棵树结构控制着组件行为的几个重要方面。 +aspects of component behavior. - -![树图展示了组件实例是如何组织的。这种父子结构控制组件行为的几个方面。] (/get-started/images/intro/component-organization.png){: width="712"} - -树中的父组件负责其子组件的创建并提供必要功能。与此同时,子组件向父组件公开功能。 -子组件可被如下方式之一创建: +to the parent. Child components can be created one of two ways: - -* **静态创建** 父组件在自身组件声明中声明子组件。 -* **动态创建** 父组件在运行时通过 `fuchsia.component.Realm` 协议将子组件添加到组件集中。 + runtime using the `fuchsia.component.Realm` protocol. - -任何一个父组件和它所有子组件在树中形成一个称之为**领域**的组,领域使父组件可以控制哪个功能流可以进出组件子树, -以此建立一个功能边界。组件自行决定是否通过 `expose` 关键字暴露其功能给领域外部。 +`expose` keyword: ```json5 expose: [ @@ -43,9 +33,8 @@ expose: [ ], ``` - -一旦功能暴露到领域之中,父组件可以将其分享给领域内的其它组件。这可以通过使用 `offer` 关键字达成: +Once a capability is exposed to the realm, the parent can share it with other +components within the same realm. This is done using the `offer` keyword: ```json5 offer: [ @@ -56,26 +45,21 @@ offer: [ ], ``` - -[组件管理器][glossary.component-manager]负责解析与功能提供者之间的访问请求(如目录或协议)。 -这就是**功能路由**。组件管理器只能解析那些在领域内**公开**和**供应**的功能。 +**offered** within the same realm. - -![组件如何通过“功能路由”共享功能的图示,“功能路由”描述了资源如何在特定领域内变得可用。] +a particular realm.] (/get-started/images/intro/capability-routing.png){: width="614"} [glossary.component-manager]: /glossary/README.md#component-manager diff --git a/get-started/_common/intro/_overview.md b/get-started/_common/intro/_overview.md index be913011..14ce6cb7 100644 --- a/get-started/_common/intro/_overview.md +++ b/get-started/_common/intro/_overview.md @@ -1,9 +1,6 @@ - -Fuchsia 是谷歌从内核创建的一种新的开源操作系统,旨在满足当今不断增长的连接设备生态系统的需求。 +Fuchsia is a new open source operating system created at Google from the kernel +up to meet the needs of today's growing ecosystem of connected devices. - -在本培训模块中,您将了解这一新操作系统背后的核心原理, -并探索 Fuchsia 如何为开发人员在各种设备上创建经久耐用的产品和体验奠定基础。 +create long-lasting products and experiences across a broad range of devices. diff --git a/get-started/_common/intro/_packages_intro.md b/get-started/_common/intro/_packages_intro.md index 1b552541..377421d5 100644 --- a/get-started/_common/intro/_packages_intro.md +++ b/get-started/_common/intro/_packages_intro.md @@ -1,53 +1,43 @@ - -Fuchsia 软件通过**包****按需**交付到系统中。这是 Fuchsia 的**安全性**和**可更新性**核心设计原则的关键组成部分。包可以单独更新和按需交付,就像网页一样。这使得漏洞补丁可以一次性推送到所有的 Fuchsia 产品中,无须针对各个产品单独协调。 +coordination. - -包不是单一文件或镜像,而是一棵**二进制大对象**(BLOBs)树。树根是一个名为“meta.far”的 BLOB,其中包含了该包的元数据,包括一个含有对其它 BLOB 引用信息的“meta/contents”文件。Fuchsia 包中的 BLOB 是**内容寻址**的,这意味着它们是使用其内容的哈希值来引用的。meta.far 本身的内容地址被称为**包哈希**。 +hash**. - -meta.far 文件包含一个至少含有如下两项内容的 `meta/` 目录: +The meta.far contains a `meta/` directory with at least the +following two items: - -* `meta/package`: 含有包名称和版本等身份信息的 JSON 文件。 -* `meta/contents`: 包中人类可读文件名与其内容地址的映射。 + their content addresses. - -![图表显示了由“meta.far”元数据和内容 BLOB 集合组成的 Fuchsia 包的内容。] +![Diagram showing the contents of a Fuchsia package consisting of "meta.far" +metadata and a collection of content BLOBs.] (/get-started/images/intro/meta-far.png){: width="544"} - -如果两个或多个包共享相同内容(如库依赖或字体资源),则它们的元数据将指向那些相同的内容地址。这使 Fuchsia 可以避免获取和保存已经存在的内容的 BLOB ,优化包的分发和存储。 +exists. From fcaf162fbfa372aa8b5c784aec016d7846c610d0 Mon Sep 17 00:00:00 2001 From: Eric X Date: Sun, 7 Aug 2022 08:44:03 +0800 Subject: [PATCH 040/118] =?UTF-8?q?=E5=9B=9E=E9=80=80=E6=97=A0=E5=85=B3?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=88=B0=E5=8E=9F=E5=A7=8B=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- get-started/explore_fuchsia.md | 96 +++++++++++----------------------- 1 file changed, 31 insertions(+), 65 deletions(-) diff --git a/get-started/explore_fuchsia.md b/get-started/explore_fuchsia.md index 5163fed2..c1e32ae8 100644 --- a/get-started/explore_fuchsia.md +++ b/get-started/explore_fuchsia.md @@ -1,115 +1,81 @@ - -# 探索 Fuchsia {#explore-fuchsia} +# Explore Fuchsia {#explore-fuchsia} - -一旦 Fuchsia 在真机或者模拟器上启动并运行起来之后,可以查阅如下资源: +Once you have Fuchsia up and running on a device or emulator, +check out the following resources: - -* [运行 ffx 命令](#run-ffx-commands). -* [运行示例](#run-examples). -* [创建 Fuchsia 组件](#create-fuchsia-components). -* [贡献修订](#contribute-changes). +* [Contribute changes](#contribute-changes). - -## 运行 ffx 命令 {#run-ffx-commands} +## Run ffx commands {#run-ffx-commands} - -[`ffx`][ffx-overview] 是一个 Fuchsia 目标工作流的主机工具,为所有 Fuchsia 环境和主机平台上提供一致的开发体验。 +and host platforms. - -以下是一些 `ffx` 命令示例: +The following are some of `ffx` command examples: - -* 显示设备列表 +* Display the list of devices: ```posix-terminal ffx target list ``` - -* 显示设备信息 +* Display the device information: ```posix-terminal ffx target show ``` - -* 输出设备日志 +* Print the device logs: ```posix-terminal ffx log ``` - -* 重启设备 +* Reboot the device: ```posix-terminal ffx target reboot ``` - -## 运行示例 +## Run examples {#run-examples} - -想试试 Fuchsia 的样例程序,参考如下指南: +To try out Fuchsia's sample software, check out the guides below: - -* [运行一个样例组件](/development/run/run-examples.md) -* [运行一个测试组件](/development/run/run-test-component.md) -* [运行一个端到端测试](/development/testing/run_an_end_to_end_test.md) +* [Run an end-to-end test](/development/testing/run_an_end_to_end_test.md) - -## 创建 Fuchsia 组件 {#create-fuchsia-components} +## Create Fuchsia components {#create-fuchsia-components} - -Fuchsia 中最小可运行软件单元是[组件](/concepts/components/v2),这些组件通过 -[FIDL](/concepts/fidl/overview.md)(Fuchsia 接口定义语言)协议彼此交互。 +(Fuchsia Interface Definition Language) protocols. - -想要了解更多有关 Fuchsia 组件和 FIDL的信息,参考如下指南: +To learn more about Fuchsia components and FIDL, check out the guides below: - -* [构建组件](/development/components/build.md) -* [FIDL 概览](/development/languages/fidl/README.md) -* [FIDL 教程](/development/languages/fidl/tutorials/overview.md) +* [FIDL tutorials](/development/languages/fidl/tutorials/overview.md) - -## 贡献修订 {#contribute-changes} +## Contribute changes {#contribute-changes} - -当您准备好为 Fuchsia 项目做出贡献,请参阅[贡献修订][contribute-changes]。 +When you're ready to contribute to the Fuchsia project, +see [Contribute changes][contribute-changes]. - -## 其它参考资料 +## See also - -更多有关 Fuchsia 的开发流程信息,请参考如下资源: +For more information on Fuchsia's development workflows, +check out the following resources: - -* [fx 工作流程](/development/build/fx.md) -* [工作流程技巧和问题](/development/source_code/workflow_tips_and_faq.md) -* [配置编辑器](/development/editors/) -* [源码规划](/development/source_code/layout.md) -* [构建系统](/development/build/build_system/index.md) +* [Build system](/development/build/build_system/index.md) From 87b646a8931eac0c731d089275cb37ec8a66cf5b Mon Sep 17 00:00:00 2001 From: Eric X Date: Sun, 7 Aug 2022 08:47:38 +0800 Subject: [PATCH 041/118] =?UTF-8?q?=E5=9B=9E=E9=80=80=E6=97=A0=E5=85=B3?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=88=B0=E6=9C=80=E6=96=B0=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_common/components/_debugging_analyze.md | 86 +++++++++++++++++-- 1 file changed, 78 insertions(+), 8 deletions(-) diff --git a/get-started/_common/components/_debugging_analyze.md b/get-started/_common/components/_debugging_analyze.md index 3479b5f8..0d63f02d 100644 --- a/get-started/_common/components/_debugging_analyze.md +++ b/get-started/_common/components/_debugging_analyze.md @@ -1,10 +1,14 @@ -## Analyzing crashes + +## 分析崩溃 + +Fuchsia 在启动时启动一个名为 `crashanalyzer` 的程序,该程序报告程序崩溃并将崩溃线程的回溯打印到系统日志中。虽然您可以通过在运行时查看日志来直接浏览这些内容,但回溯内容是使用堆栈内存地址引用编码的,而不是指向程序源文件中的相应行。 ```none {:.devsite-disable-click-to-copy} @@ -38,6 +42,7 @@ pointing to the corresponding lines in the program source files. [klog][I] bt#05: end ``` + +这是因为 **调试符号** 在构建时默认从二进制文件中删除。要正确分析崩溃日志,您需要将这些符号重新应用到回溯,以根据源代码行号查看调用堆栈。当您调用 `ffx log` 命令时,开发人员工具会通过一个名为 `symbolizer` 的附加二进制文件处理原始日志,该二进制文件将本地构建配置中的符号重新应用到日志中的任何回溯。 ```posix-terminal ffx log ``` + +您看到的输出包括重新应用于回溯的符号: ```none {:.devsite-disable-click-to-copy} [klog][I] devmgr: crash_analyzer_listener: analyzing exception type 0x108 @@ -64,48 +74,77 @@ end of symbolized stack ``` + +通过正确符号化的回溯,您可以直接在源代码中发现崩溃的位置。 + +### 逐步调试 -### Step-through debugging - + +仅仅知道程序崩溃的位置可能不足以完全诊断问题。 有时需要一步一步地遍历代码,甚至检查内存中变量的状态。 为了支持这一点,Fuchsia 有一个名为 `zxdb` 的核心代码调试器。 + +`zxdb` 工具是一个客户端,它连接到目标设备上正在运行的 `debug_agent` 组件。您可以使用 `zxdb` 命令进行配置,然后使用 `debug_agent` 附加到特定进程并设置断点。一旦调试会话附加到正在运行的进程,`zxdb` 允许您单步执行代码并检查堆栈帧。 + +![图表显示了 Fuchsia 调试器 (zxdb) 如何与运行在 Fuchsia 设备上的 debug_agent 服务交互,以执行进程的交互调试。](/get-started/images/components/zxdb.png){: width="591"} -Setting up the debug session requires the following high-level steps: - + +设置调试会话需要以下高级步骤: + +1. 在目标设备上运行 `debug_agent` 组件。 +1. 运行 `zxdb` 客户端并连接到目标设备。 +1. 设置 `zxdb` 的位置以查找调试符号。 + +启动调试会话的最简单方法是使用 `ffx debug connect` 命令,该命令在本地 Fuchsia 构建的上下文中执行所有这些操作。然而,如果您需要单独配置这些步骤,也可以手动执行。 + +一旦调试会话处于活动状态,您将被带到 `[zxdb]` 提示符以发出调试器命令。您可以使用 `zxdb` 来配置 `debug_agent` 以使用名称过滤器附加到进程,并设置挂起断点,即使当前没有匹配到正在运行的进程。 + +以下示例在 main 上设置一个挂起的断点以在执行开始时停止,并等待名为“hello-world”的进程启动: ```none {:.devsite-disable-click-to-copy} [zxdb] attach hello-world @@ -117,53 +156,84 @@ Pending: No matches for location, it will be pending library loads. ``` + +将调试器附加到进程后,您可以使用 `zxdb` 命令来控制和检查进程的状态。以下是常用命令的简短集合: -Note: For complete details and reference on `zxdb` commands, see -[The Fuchsia debugger](/development/debugger). + +注意:关于 `zxdb` 命令的完整详细信息和参考,请查看 [Fuchsia 调试器](/development/debugger)。 + + + + + + + + + +
step 步过线程中的下一行代码
next 步入线程中的下一行代码
continue 继续执行直到下一个断点、异常或退出
frame 列出或从当前堆栈帧中选择
print 求表达式的值并打印结果
From 4eb05b92b98360012b73fd38bd4f0ddbbd589eea Mon Sep 17 00:00:00 2001 From: Eric X Date: Sun, 7 Aug 2022 08:50:46 +0800 Subject: [PATCH 042/118] =?UTF-8?q?=E5=90=88=E5=B9=B6=E5=8E=9F=E5=85=88PR?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E6=84=8F=E8=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- get-started/_common/components/_product_driver.md | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/get-started/_common/components/_product_driver.md b/get-started/_common/components/_product_driver.md index 7271df4f..da2fda49 100644 --- a/get-started/_common/components/_product_driver.md +++ b/get-started/_common/components/_product_driver.md @@ -5,16 +5,13 @@ implement product-specific device drivers as components. Some driver components represent hardware interface controllers, such as PCI or USB, while others interact with end devices, such as an ethernet controller or keyboard. --> -与 session 类似,Fuchsia 驱动框架使开发人员能够将产品特定的设备驱动程序实现为组件。 -一些驱动程序组件代表硬件接口控制器,例如 PCI 或 USB,而其他驱动程序组件则与终端设备交互, -例如以太网控制器或键盘。 +与会话类似,Fuchsia 驱动框架使开发人员能够将产品特定的设备驱动程序实现为组件。一些驱动程序组件代表硬件接口控制器,例如 PCI 或 USB,而其他驱动程序组件则与终端设备交互,例如以太网控制器或键盘。 -当设备被发现或连接到系统时,`driver_manager` 平台组件启动必要的驱动程序组件, -将它们绑定到硬件接口,并管理它们的生命周期。 +当设备被发现或连接到系统时,`driver_manager` 平台组件启动必要的驱动程序组件,将它们绑定到硬件接口,并管理它们的生命周期。 -注:有关驱动框架的细节,参考[Fuchsia 驱动框架](/development/drivers/concepts/fdf.md). +注:要获取关于驱动框架的更多细节,请参阅[Fuchsia 驱动框架](/development/drivers/concepts/fdf.md). From 8f670cd22ec086a49bdedc52c80537cf49f4afc3 Mon Sep 17 00:00:00 2001 From: Eric X Date: Sun, 7 Aug 2022 10:22:07 +0800 Subject: [PATCH 043/118] =?UTF-8?q?=E5=88=86=E6=8B=86=E7=BF=BB=E8=AF=91?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=88=B0=E5=8D=95=E7=8B=AC=E5=88=86=E6=94=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_common/components/_product_driver.md | 18 +++++++----------- .../_common/components/_product_intro.md | 9 ++++++--- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/get-started/_common/components/_product_driver.md b/get-started/_common/components/_product_driver.md index da2fda49..e56a8b82 100644 --- a/get-started/_common/components/_product_driver.md +++ b/get-started/_common/components/_product_driver.md @@ -1,17 +1,13 @@ - -## 驱动框架 +## Driver framework - -与会话类似,Fuchsia 驱动框架使开发人员能够将产品特定的设备驱动程序实现为组件。一些驱动程序组件代表硬件接口控制器,例如 PCI 或 USB,而其他驱动程序组件则与终端设备交互,例如以太网控制器或键盘。 +interact with end devices, such as an ethernet controller or keyboard. - -当设备被发现或连接到系统时,`driver_manager` 平台组件启动必要的驱动程序组件,将它们绑定到硬件接口,并管理它们的生命周期。 +hardware interfaces, and manages their lifecycle. - -注:要获取关于驱动框架的更多细节,请参阅[Fuchsia 驱动框架](/development/drivers/concepts/fdf.md). +Note: For more details on the driver framework, see +[Fuchsia Driver Framework](/development/drivers/concepts/fdf.md). diff --git a/get-started/_common/components/_product_intro.md b/get-started/_common/components/_product_intro.md index cc748e6a..ceab5fb6 100644 --- a/get-started/_common/components/_product_intro.md +++ b/get-started/_common/components/_product_intro.md @@ -1,10 +1,13 @@ -Components form the basis for the software that runs in Fuchsia user space. The + +组件构成了在 Fuchsia 用户空间中运行的软件的基础。 到目前为止,您所探索的组件是运行 Fuchsia 的所有产品通用的核心平台的一部分。Fuchsia 产品由平台组件和特定产品元素组成,以满足设备硬件和用户体验的独特需求。 在本节中,您将探索 Fuchsia 如何构建组件以实现产品级定制。 -![Data table showing how Fuchsia enables product customization on top of the + +![数据表展现了 Fuchsia 通过会话框架和驱动框架使产品在核心平台上的定制成为可能。] (/get-started/images/components/product.png){: width="582"} From 77a03dca5a501237441d23147061f18d3cc8d670 Mon Sep 17 00:00:00 2001 From: Eric X Date: Sun, 7 Aug 2022 10:31:27 +0800 Subject: [PATCH 044/118] =?UTF-8?q?=E5=88=86=E6=8B=86=E7=BF=BB=E8=AF=91?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=88=B0=E5=8D=95=E7=8B=AC=E5=88=86=E6=94=AF?= =?UTF-8?q?=EF=BC=8C=E5=90=88=E5=B9=B6=E5=8E=9FPR=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_common/components/_product_intro.md | 9 +++------ .../_common/components/_product_session.md | 19 ++++++++++++------- 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/get-started/_common/components/_product_intro.md b/get-started/_common/components/_product_intro.md index ceab5fb6..cc748e6a 100644 --- a/get-started/_common/components/_product_intro.md +++ b/get-started/_common/components/_product_intro.md @@ -1,13 +1,10 @@ - -组件构成了在 Fuchsia 用户空间中运行的软件的基础。 到目前为止,您所探索的组件是运行 Fuchsia 的所有产品通用的核心平台的一部分。Fuchsia 产品由平台组件和特定产品元素组成,以满足设备硬件和用户体验的独特需求。 在本节中,您将探索 Fuchsia 如何构建组件以实现产品级定制。 +Fuchsia builds on components to enable product-level customization. - -![数据表展现了 Fuchsia 通过会话框架和驱动框架使产品在核心平台上的定制成为可能。] (/get-started/images/components/product.png){: width="582"} diff --git a/get-started/_common/components/_product_session.md b/get-started/_common/components/_product_session.md index d776e8c1..9c87a511 100644 --- a/get-started/_common/components/_product_session.md +++ b/get-started/_common/components/_product_session.md @@ -1,15 +1,20 @@ -## Session framework + +## 会话框架 -Sessions are components that encapsulate a product’s user experience. The + +会话是一系列封装了产品用户体验的组件。会话框架充当 Fuchsia 平台和产品级用户交互之间的边界。每个 Fuchsia 产品都将单个会话实例定义为产品体验的根,并可能管理其他子组件。 -The `session_manager` platform component starts the session component on boot + + +`session_manager` 平台组件在启动时打开会话组件,并为其提供一组固定的功能,以支持诸如窗口管理、输入事件处理或可访问元素的会话框架 API。 -Note: For more details on the session framework, see -[Introduction to the session framework](/concepts/session/introduction.md). + +注: 要获取关于会话框架的更多细节,请参阅[会话框架介绍](/concepts/session/introduction.md). From f28d39be9be6d2e55bd38ba0e3324a47adc5b870 Mon Sep 17 00:00:00 2001 From: Eric X Date: Sun, 7 Aug 2022 10:40:25 +0800 Subject: [PATCH 045/118] =?UTF-8?q?=E5=88=86=E6=8B=86=E7=BF=BB=E8=AF=91?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=88=B0=E5=8D=95=E7=8B=AC=E5=88=86=E6=94=AF?= =?UTF-8?q?=EF=BC=8C=E5=90=88=E5=B9=B6=E5=8E=9FPR=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- get-started/_common/components/_overview.md | 29 ++++++++++++------- .../_common/components/_product_session.md | 19 +++++------- 2 files changed, 25 insertions(+), 23 deletions(-) diff --git a/get-started/_common/components/_overview.md b/get-started/_common/components/_overview.md index fd829dc0..e5b845f5 100644 --- a/get-started/_common/components/_overview.md +++ b/get-started/_common/components/_overview.md @@ -1,28 +1,35 @@ -A component is a program that runs on Fuchsia in its own sandbox. + +一个组件是一个运行在 Fuchsia 沙盒中的程序。每个组件都是一个可组合的模块,依据各自功能与其它组件交互。Fuchsia 中所有软件都被定义为组件,除了内核、引导进程以及组件管理器。 -Fuchsia's component framework is responsible for running nearly all user space + +Fuchsia 的组件框架致力于让系统可以运行几乎所有的用户空间软件。组件管理器是一个系统进程,负责协调各个组件实例的执行和生命周期、维护组件拓扑、给组件提供相应功能,并使它们彼此隔离。 -Components obtain privileges to access various parts of the wider system through + +组件通过功能获得访问更广泛系统的各个部分的特权。每个组件都可以声明它们提供给系统的新功能以及需要其他组件(或框架)提供的功能。组件管理器解析并验证组件间的所有功能请求,以确保它们与组件已被正确授予的功能相匹配。 diff --git a/get-started/_common/components/_product_session.md b/get-started/_common/components/_product_session.md index 9c87a511..d776e8c1 100644 --- a/get-started/_common/components/_product_session.md +++ b/get-started/_common/components/_product_session.md @@ -1,20 +1,15 @@ - -## 会话框架 +## Session framework - -会话是一系列封装了产品用户体验的组件。会话框架充当 Fuchsia 平台和产品级用户交互之间的边界。每个 Fuchsia 产品都将单个会话实例定义为产品体验的根,并可能管理其他子组件。 +additional child components. - - -`session_manager` 平台组件在启动时打开会话组件,并为其提供一组固定的功能,以支持诸如窗口管理、输入事件处理或可访问元素的会话框架 API。 +accessibility. - -注: 要获取关于会话框架的更多细节,请参阅[会话框架介绍](/concepts/session/introduction.md). +Note: For more details on the session framework, see +[Introduction to the session framework](/concepts/session/introduction.md). From 4ece22462f13c4e275101f58f3c8eaacb4e5a849 Mon Sep 17 00:00:00 2001 From: Eric X Date: Sun, 7 Aug 2022 11:34:01 +0800 Subject: [PATCH 046/118] =?UTF-8?q?=E5=88=86=E6=8B=86=E7=BF=BB=E8=AF=91?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=88=B0=E5=8D=95=E7=8B=AC=E5=88=86=E6=94=AF?= =?UTF-8?q?=EF=BC=8C=E5=90=88=E5=B9=B6=E5=8E=9FPR=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E5=AE=A1=E6=A0=B8=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- get-started/_common/components/_overview.md | 29 ++---- get-started/explore_fuchsia.md | 109 ++++++++++++++------ 2 files changed, 87 insertions(+), 51 deletions(-) diff --git a/get-started/_common/components/_overview.md b/get-started/_common/components/_overview.md index e5b845f5..fd829dc0 100644 --- a/get-started/_common/components/_overview.md +++ b/get-started/_common/components/_overview.md @@ -1,35 +1,28 @@ - -一个组件是一个运行在 Fuchsia 沙盒中的程序。每个组件都是一个可组合的模块,依据各自功能与其它组件交互。Fuchsia 中所有软件都被定义为组件,除了内核、引导进程以及组件管理器。 +except for the kernel image, bootstrapping processes, and the Component Manager. - -Fuchsia 的组件框架致力于让系统可以运行几乎所有的用户空间软件。组件管理器是一个系统进程,负责协调各个组件实例的执行和生命周期、维护组件拓扑、给组件提供相应功能,并使它们彼此隔离。 +from one another. - -组件通过功能获得访问更广泛系统的各个部分的特权。每个组件都可以声明它们提供给系统的新功能以及需要其他组件(或框架)提供的功能。组件管理器解析并验证组件间的所有功能请求,以确保它们与组件已被正确授予的功能相匹配。 +has been properly granted. diff --git a/get-started/explore_fuchsia.md b/get-started/explore_fuchsia.md index c1e32ae8..7a9d302c 100644 --- a/get-started/explore_fuchsia.md +++ b/get-started/explore_fuchsia.md @@ -1,85 +1,119 @@ -# Explore Fuchsia {#explore-fuchsia} + +# 探索 Fuchsia {#explore-fuchsia} -Once you have Fuchsia up and running on a device or emulator, -check out the following resources: + +在设备或模拟器上启动并运行 Fuchsia 后,请查看以下资源: -* [Run ffx commands](#run-ffx-commands). + +* [运行 ffx 命令](#run-ffx-commands). +* [运行示例程序](#run-examples). +* [创建 Fuchsia 组件](#create-fuchsia-components). +* [贡献修订](#contribute-changes). -## Run ffx commands {#run-ffx-commands} + +## 运行 ffx 命令 {#run-ffx-commands} -[`ffx`][ffx-overview] is a host tool for Fuchsia target workflows that + +[`ffx`][ffx-overview] 是 Fuchsia 目标工作流的主机工具,为所有 Fuchsia 环境和主机平台上提供一致的开发体验。 -The following are some of `ffx` command examples: + +以下是一些 `ffx` 命令示例: -* Display the list of devices: + +* 显示设备列表: ```posix-terminal ffx target list ``` -* Display the device information: + +* 显示设备信息: ```posix-terminal ffx target show ``` -* Print the device logs: + +* 输出设备日志: ```posix-terminal ffx log ``` -* Reboot the device: + +* 重启设备: ```posix-terminal ffx target reboot ``` -## Run examples {#run-examples} + +## 运行示例 -To try out Fuchsia's sample software, check out the guides below: + +要试用 Fuchsia 的样例程序,请参考如下指南: -* [Run an example component](/development/run/run-examples.md) + +* [运行样例组件](/development/run/run-examples.md) +* [运行测试组件](/development/run/run-test-component.md) +* [运行端到端测试](/development/testing/run_an_end_to_end_test.md) -## Create Fuchsia components {#create-fuchsia-components} + +## 创建 Fuchsia 组件 {#create-fuchsia-components} -The basic executable units of software in Fuchsia are + +Fuchsia 中最小可运行软件单元是[组件](/concepts/components/v2),这些组件通过 +[FIDL](/concepts/fidl/overview.md)(Fuchsia 接口定义语言)协议彼此交互。 -To learn more about Fuchsia components and FIDL, check out the guides below: + +要想了解更多有关 Fuchsia 组件和 FIDL 的信息,参考如下指南: -* [Build components](/development/components/build.md) + +* [构建组件](/development/components/build.md) +* [FIDL 概览](/development/languages/fidl/README.md) +* [FIDL 教程](/development/languages/fidl/tutorials/overview.md) -## Contribute changes {#contribute-changes} + +## 贡献更改 {#contribute-changes} -When you're ready to contribute to the Fuchsia project, -see [Contribute changes][contribute-changes]. + +当您准备好为 Fuchsia 项目做出贡献时,请参阅[贡献更改][contribute-changes]。 -## See also + +## 参阅 -For more information on Fuchsia's development workflows, -check out the following resources: + +要获取关于 Fuchsia 开发流程的更多信息,请参阅下列资源: -* [fx workflows](/development/build/fx.md) + +* [fx 工作流程](/development/build/fx.md) +* [工作流程技巧和问题](/development/source_code/workflow_tips_and_faq.md) +* [配置编辑器](/development/editors/) +* [源码规划](/development/source_code/layout.md) +* [构建系统](/development/build/build_system/index.md) -[components]: /concepts/components/v2 + +[组件]: /concepts/components/v2 +[运行示例程序]: /development/run/run-examples.md +[ffx 命令概览]: /development/tools/ffx/overview.md +[fidl]: /development/languages/fidl +[fidl 指南]: /development/languages/fidl/tutorials/overview.md +[fidl 概念]: /concepts/fidl/overview.md +[运行 fuchsia 测试]: /development/testing/run_fuchsia_tests.md +[scenic]: /concepts/ui/scenic/index.md +[贡献更改]: /development/source_code/contribute_changes.md From 67336c9d54dad4cff62bb00464546e646048d498 Mon Sep 17 00:00:00 2001 From: Eric X Date: Sun, 7 Aug 2022 12:00:20 +0800 Subject: [PATCH 047/118] =?UTF-8?q?=E5=88=86=E6=8B=86=E5=88=B0=E5=8D=95?= =?UTF-8?q?=E7=8B=AC=E5=88=86=E6=94=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_common/intro/_components_intro.md | 24 ++-- get-started/explore_fuchsia.md | 109 ++++++------------ 2 files changed, 49 insertions(+), 84 deletions(-) diff --git a/get-started/_common/intro/_components_intro.md b/get-started/_common/intro/_components_intro.md index fbdc8fe7..f4aef32b 100644 --- a/get-started/_common/intro/_components_intro.md +++ b/get-started/_common/intro/_components_intro.md @@ -1,20 +1,28 @@ -**Components** are the foundational building blocks of software running in + +**组件**是 Fuchsia 中运行的软件的基石。每一个组件都是可以组合的沙盒模块,相互之间通过功能交互。这提高了系统安全性并在各个组件之间建立了清晰的接口,使它们更容易更新或替换。 -In Fuchsia, **everything is a component** (almost). Recall from the previous + +Fuchsia 中**一切都是组件**(几乎)。回想一下之前对 Zircon 的讨论,内核有意设计得很小,大多数核心服务都是在用户空间中实现。这意味着在 Fuchsia 上运行的大多数软件都是采用组件框架实现的,包括: -* User-facing applications + +* 面向用户的应用 +* 设备驱动 +* 文件系统 +* 媒体编解码器 +* 网络栈 -Outside the kernel there are only a few low-level exceptions not using the -component framework, such as bootloaders and the `userboot` process. + +内核之外只有少数不使用组件框架的底层例外,如引导程序和 `userboot` 进程。 diff --git a/get-started/explore_fuchsia.md b/get-started/explore_fuchsia.md index 7a9d302c..c1e32ae8 100644 --- a/get-started/explore_fuchsia.md +++ b/get-started/explore_fuchsia.md @@ -1,119 +1,85 @@ - -# 探索 Fuchsia {#explore-fuchsia} +# Explore Fuchsia {#explore-fuchsia} - -在设备或模拟器上启动并运行 Fuchsia 后,请查看以下资源: +Once you have Fuchsia up and running on a device or emulator, +check out the following resources: - -* [运行 ffx 命令](#run-ffx-commands). -* [运行示例程序](#run-examples). -* [创建 Fuchsia 组件](#create-fuchsia-components). -* [贡献修订](#contribute-changes). +* [Contribute changes](#contribute-changes). - -## 运行 ffx 命令 {#run-ffx-commands} +## Run ffx commands {#run-ffx-commands} - -[`ffx`][ffx-overview] 是 Fuchsia 目标工作流的主机工具,为所有 Fuchsia 环境和主机平台上提供一致的开发体验。 +and host platforms. - -以下是一些 `ffx` 命令示例: +The following are some of `ffx` command examples: - -* 显示设备列表: +* Display the list of devices: ```posix-terminal ffx target list ``` - -* 显示设备信息: +* Display the device information: ```posix-terminal ffx target show ``` - -* 输出设备日志: +* Print the device logs: ```posix-terminal ffx log ``` - -* 重启设备: +* Reboot the device: ```posix-terminal ffx target reboot ``` - -## 运行示例 +## Run examples {#run-examples} - -要试用 Fuchsia 的样例程序,请参考如下指南: +To try out Fuchsia's sample software, check out the guides below: - -* [运行样例组件](/development/run/run-examples.md) -* [运行测试组件](/development/run/run-test-component.md) -* [运行端到端测试](/development/testing/run_an_end_to_end_test.md) +* [Run an end-to-end test](/development/testing/run_an_end_to_end_test.md) - -## 创建 Fuchsia 组件 {#create-fuchsia-components} +## Create Fuchsia components {#create-fuchsia-components} - -Fuchsia 中最小可运行软件单元是[组件](/concepts/components/v2),这些组件通过 -[FIDL](/concepts/fidl/overview.md)(Fuchsia 接口定义语言)协议彼此交互。 +(Fuchsia Interface Definition Language) protocols. - -要想了解更多有关 Fuchsia 组件和 FIDL 的信息,参考如下指南: +To learn more about Fuchsia components and FIDL, check out the guides below: - -* [构建组件](/development/components/build.md) -* [FIDL 概览](/development/languages/fidl/README.md) -* [FIDL 教程](/development/languages/fidl/tutorials/overview.md) +* [FIDL tutorials](/development/languages/fidl/tutorials/overview.md) - -## 贡献更改 {#contribute-changes} +## Contribute changes {#contribute-changes} - -当您准备好为 Fuchsia 项目做出贡献时,请参阅[贡献更改][contribute-changes]。 +When you're ready to contribute to the Fuchsia project, +see [Contribute changes][contribute-changes]. - -## 参阅 +## See also - -要获取关于 Fuchsia 开发流程的更多信息,请参阅下列资源: +For more information on Fuchsia's development workflows, +check out the following resources: - -* [fx 工作流程](/development/build/fx.md) -* [工作流程技巧和问题](/development/source_code/workflow_tips_and_faq.md) -* [配置编辑器](/development/editors/) -* [源码规划](/development/source_code/layout.md) -* [构建系统](/development/build/build_system/index.md) +* [Build system](/development/build/build_system/index.md) - [fidl-concepts]: /concepts/fidl/overview.md [run-fuchsia-tests]: /development/testing/run_fuchsia_tests.md [scenic]: /concepts/ui/scenic/index.md -[contribute-changes]: /development/source_code/contribute_changes.md --> -[组件]: /concepts/components/v2 -[运行示例程序]: /development/run/run-examples.md -[ffx 命令概览]: /development/tools/ffx/overview.md -[fidl]: /development/languages/fidl -[fidl 指南]: /development/languages/fidl/tutorials/overview.md -[fidl 概念]: /concepts/fidl/overview.md -[运行 fuchsia 测试]: /development/testing/run_fuchsia_tests.md -[scenic]: /concepts/ui/scenic/index.md -[贡献更改]: /development/source_code/contribute_changes.md +[contribute-changes]: /development/source_code/contribute_changes.md From c585fb14786838a41c560eb6ccf21c4bbc522c46 Mon Sep 17 00:00:00 2001 From: y2-Whyto Date: Mon, 8 Aug 2022 12:30:25 +0800 Subject: [PATCH 048/118] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20capability?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- glossary-translation.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/glossary-translation.md b/glossary-translation.md index 1c5049f6..6b08568d 100644 --- a/glossary-translation.md +++ b/glossary-translation.md @@ -24,6 +24,7 @@ | best practice | 最佳做法 | G & i | | board | 板型 | i | | build | 构建 | G | +| capability | 能力 | i | | caveats | 注意事项 | G | | cleanup | 清理 | G | | compile | 编译 | G | @@ -80,7 +81,7 @@ | unmount | 卸载 | G | | URL | 网址 | G | | validate | 验证 | G | -| Next steps | 后续步骤 | G | +| Next steps | 后续步骤 | G | ## 文档中未出现术语的翻译参考表 From daa955a9cccad29a9ddfbd82fd3151e69222ab57 Mon Sep 17 00:00:00 2001 From: y2-Whyto Date: Mon, 8 Aug 2022 17:22:16 +0800 Subject: [PATCH 049/118] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20accessibility?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- glossary-translation.md | 1 + 1 file changed, 1 insertion(+) diff --git a/glossary-translation.md b/glossary-translation.md index 6b08568d..4a774ebf 100644 --- a/glossary-translation.md +++ b/glossary-translation.md @@ -12,6 +12,7 @@ | 英文原文 | 中文翻译对应词 | 备注 | | ------------------------------ | ---------------------- | ----------------------------------------------------- | +| accessibility | 无障碍功能 | G | | application | 应用
应用程序 | | | ArchiveAccessor | 档案访问器 | i | | archivist | 归档器 | i | From 0451b8358b1b3a4446f5b29fea7714875c442e17 Mon Sep 17 00:00:00 2001 From: wwvm <51313548+wwvm@users.noreply.github.com> Date: Mon, 8 Aug 2022 19:03:03 +0800 Subject: [PATCH 050/118] Update get-started/explore_fuchsia.md Co-authored-by: y2-Whyto --- get-started/explore_fuchsia.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/get-started/explore_fuchsia.md b/get-started/explore_fuchsia.md index 7a9d302c..1e6a5dcd 100644 --- a/get-started/explore_fuchsia.md +++ b/get-started/explore_fuchsia.md @@ -10,7 +10,7 @@ check out the following resources: --> * [Create Fuchsia components](#create-fuchsia-components). * [Contribute changes](#contribute-changes). --> * [运行 ffx 命令](#run-ffx-commands). -* [运行示例程序](#run-examples). +* [运行示例](#run-examples). * [创建 Fuchsia 组件](#create-fuchsia-components). * [贡献修订](#contribute-changes). From 2ecb33ac67f89b08d9110d558749aa5153cecf0a Mon Sep 17 00:00:00 2001 From: wwvm <51313548+wwvm@users.noreply.github.com> Date: Mon, 8 Aug 2022 19:03:24 +0800 Subject: [PATCH 051/118] Update get-started/explore_fuchsia.md Co-authored-by: y2-Whyto --- get-started/explore_fuchsia.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/get-started/explore_fuchsia.md b/get-started/explore_fuchsia.md index 1e6a5dcd..566798d4 100644 --- a/get-started/explore_fuchsia.md +++ b/get-started/explore_fuchsia.md @@ -62,7 +62,7 @@ and host platforms. --> -* [运行样例组件](/development/run/run-examples.md) +* [运行示例组件](/development/run/run-examples.md) * [运行测试组件](/development/run/run-test-component.md) * [运行端到端测试](/development/testing/run_an_end_to_end_test.md) From 90659b70748c10ae9b3976e07ee11f71543c86e6 Mon Sep 17 00:00:00 2001 From: wwvm <51313548+wwvm@users.noreply.github.com> Date: Mon, 8 Aug 2022 19:03:41 +0800 Subject: [PATCH 052/118] Update get-started/explore_fuchsia.md Co-authored-by: y2-Whyto --- get-started/explore_fuchsia.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/get-started/explore_fuchsia.md b/get-started/explore_fuchsia.md index 566798d4..30abce12 100644 --- a/get-started/explore_fuchsia.md +++ b/get-started/explore_fuchsia.md @@ -73,7 +73,7 @@ and host platforms. --> [components](/concepts/components/v2), and these components interact with each other using [FIDL](/concepts/fidl/overview.md) (Fuchsia Interface Definition Language) protocols. --> -Fuchsia 中最小可运行软件单元是[组件](/concepts/components/v2),这些组件通过 +Fuchsia 中软件的最小可执行单元是[组件](/concepts/components/v2),这些组件通过 [FIDL](/concepts/fidl/overview.md)(Fuchsia 接口定义语言)协议彼此交互。 From 64e4708d4f9e52505a29ac86e830b5fbc2293fd9 Mon Sep 17 00:00:00 2001 From: wwvm <51313548+wwvm@users.noreply.github.com> Date: Mon, 8 Aug 2022 19:03:55 +0800 Subject: [PATCH 053/118] Update get-started/explore_fuchsia.md Co-authored-by: y2-Whyto --- get-started/explore_fuchsia.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/get-started/explore_fuchsia.md b/get-started/explore_fuchsia.md index 30abce12..b9475766 100644 --- a/get-started/explore_fuchsia.md +++ b/get-started/explore_fuchsia.md @@ -12,7 +12,7 @@ check out the following resources: --> * [运行 ffx 命令](#run-ffx-commands). * [运行示例](#run-examples). * [创建 Fuchsia 组件](#create-fuchsia-components). -* [贡献修订](#contribute-changes). +* [贡献更改](#contribute-changes). ## 运行 ffx 命令 {#run-ffx-commands} From 11722afae948b333819f93946b60644579493bfd Mon Sep 17 00:00:00 2001 From: wwvm <51313548+wwvm@users.noreply.github.com> Date: Mon, 8 Aug 2022 19:04:06 +0800 Subject: [PATCH 054/118] Update get-started/explore_fuchsia.md Co-authored-by: y2-Whyto --- get-started/explore_fuchsia.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/get-started/explore_fuchsia.md b/get-started/explore_fuchsia.md index b9475766..9eb990da 100644 --- a/get-started/explore_fuchsia.md +++ b/get-started/explore_fuchsia.md @@ -77,7 +77,7 @@ Fuchsia 中软件的最小可执行单元是[组件](/concepts/components/v2), [FIDL](/concepts/fidl/overview.md)(Fuchsia 接口定义语言)协议彼此交互。 -要想了解更多有关 Fuchsia 组件和 FIDL 的信息,参考如下指南: +要想了解更多有关 Fuchsia 组件和 FIDL 的信息,请参考如下指南: * [fx 工作流程](/development/build/fx.md) * [工作流程技巧和问题](/development/source_code/workflow_tips_and_faq.md) * [配置编辑器](/development/editors/) -* [源码规划](/development/source_code/layout.md) +* [源代码布局](/development/source_code/layout.md) * [构建系统](/development/build/build_system/index.md) From c4642b1acdc7e5fd5dd7d31d262b617e40d5ec01 Mon Sep 17 00:00:00 2001 From: wwvm <51313548+wwvm@users.noreply.github.com> Date: Mon, 8 Aug 2022 19:04:44 +0800 Subject: [PATCH 056/118] Update get-started/explore_fuchsia.md Co-authored-by: y2-Whyto --- get-started/explore_fuchsia.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/get-started/explore_fuchsia.md b/get-started/explore_fuchsia.md index 418ff75c..810672b1 100644 --- a/get-started/explore_fuchsia.md +++ b/get-started/explore_fuchsia.md @@ -113,7 +113,7 @@ check out the following resources: --> - [fidl-concepts]: /concepts/fidl/overview.md [run-fuchsia-tests]: /development/testing/run_fuchsia_tests.md [scenic]: /concepts/ui/scenic/index.md -[contribute-changes]: /development/source_code/contribute_changes.md --> -[组件]: /concepts/components/v2 -[运行示例程序]: /development/run/run-examples.md -[ffx 命令概览]: /development/tools/ffx/overview.md -[fidl]: /development/languages/fidl -[fidl 指南]: /development/languages/fidl/tutorials/overview.md -[fidl 概念]: /concepts/fidl/overview.md -[运行 fuchsia 测试]: /development/testing/run_fuchsia_tests.md -[scenic]: /concepts/ui/scenic/index.md -[贡献更改]: /development/source_code/contribute_changes.md +[contribute-changes]: /development/source_code/contribute_changes.md From 5e05e5d9a99fcf912898a2663a3a5469d5528a0a Mon Sep 17 00:00:00 2001 From: wwvm <51313548+wwvm@users.noreply.github.com> Date: Mon, 8 Aug 2022 19:05:38 +0800 Subject: [PATCH 058/118] Update get-started/_common/components/_overview.md Co-authored-by: y2-Whyto --- get-started/_common/components/_overview.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/get-started/_common/components/_overview.md b/get-started/_common/components/_overview.md index e5b845f5..04952656 100644 --- a/get-started/_common/components/_overview.md +++ b/get-started/_common/components/_overview.md @@ -2,7 +2,7 @@ Each component is a composable module that interacts with other components through their capabilities. All software on Fuchsia is defined as a component except for the kernel image, bootstrapping processes, and the Component Manager. --> -一个组件是一个运行在 Fuchsia 沙盒中的程序。每个组件都是一个可组合的模块,依据各自功能与其它组件交互。Fuchsia 中所有软件都被定义为组件,除了内核、引导进程以及组件管理器。 +组件是 Fuchsia 上运行在其自有沙盒中的程序。每个组件都是一个可组合的模块,通过其能力(capability)与其它组件交互。Fuchsia 中所有软件都被定义为组件,除了内核镜像、引导进程以及组件管理器(Component Manager)。 -组件通过功能获得访问更广泛系统的各个部分的特权。每个组件都可以声明它们提供给系统的新功能以及需要其他组件(或框架)提供的功能。组件管理器解析并验证组件间的所有功能请求,以确保它们与组件已被正确授予的功能相匹配。 +组件通过能力来获得访问更广泛系统的各个部分的权限。每个组件都可以声明它们提供给系统的新能力,以及它们运行所需的其他组件(或框架)提供的能力。组件管理器解析并验证组件间的所有能力请求,以确保它们与组件已被正确授予的能力相匹配。