术语表
概览
本文档的目的是,为Fuchsia源码树中使用的技术术语提供简短的定义。
增加新的定义
- 定义应限于两到三个句子,并提供术语的高层次描述。
- 当需要使用另一个非平凡的技术术语作为描述的一部分时,请考虑为该术语添加定义并将原始定义链接到该术语中。
- 定义应由更详细的文档和相关主题的链接列表补充。
术语
Agent
代理(Agent)是生命周期与任何Story无关的组件。它是用户范围内的一个单例,并为其他组件提供服务,其他组件或系统可以调用Agent以响应推送通知等触发器。Agent可以为组件提供服务,发送和接收消息,并向用户提供建议等。
AppMgr
Application Manager(AppMgr)负责启动组件并管理运行这些组件的命名空间。这是DevMgr在fuchsia
中运行的第一个进程。
Armadillo
用户shell的一个实现。
Base shell
Base shell是平台保证的软件功能集,提供基本的面向用户的界面,用于启动、首次使用、身份验证、从用户shell中退出和选择用户shell,以及设备恢复。
Component
组件(Component)是运行和统计的单元,它由来自Fuchsia软件包的清单文件和相关代码组成。组件在沙箱中运行,通过其命名空间访问对象,并通过其导出目录发布对象。Module和Agent是组件的示例,组件最常见的是分布在Fuchsia的软件包中。
Channel
Channel是Zircon提供的基本IPC原语,它是一种双向的类似数据报(datagram)的传输通道,可以传输包含Handle的小型消息。
DevHost
设备宿主机(Device Host, DevHost)是包含一个或多个设备驱动的进程,它们由设备管理器根据需要而创建,以提供驱动程序之间的隔离,达到稳定性和安全性的目的。
DevMgr
设备管理器(Device Manager, DevMgr)负责枚举、加载驱动和管理驱动的生命周期,和处理低层次系统任务(为引导文件系统提供文件系统服务和启动AppMgr等等)。
DDK
驱动程序开发工具包(DDK)是构建Zircon设备驱动所必需的文档、API和ABI。设备驱动通过Zircon设备管理器加载的ELF共享库的形式实现。
Environment
环境(Environment)是一组组件的容器,提供管理其生命周期和为其提供服务的方法。环境中的所有组件都可以访问环境提供的服务(的子集)。
Escher
Escher是用于合成用户界面内容的图形库,它的设计灵感来自于现代实时的和基于物理的渲染技术,尽管我们预计它呈现的大部分内容都具有适合用户界面的非现实或风格化的质量。
FAR
Fuchsia存档格式是Zircon和Fuchsia使用的文件的容器。
fdio
fdio是Zircon的IO库,它针对RemoteIO的RPC协议提供了posix样式的open()
,close()
,read()
,write()
,select()
和poll()
函数等的实现。这些API是libc中“返回libc不支持该操作”的stub,而与libfdio的链接会用其实现将这些stub覆盖掉。
FIDL
Fuchsia接口定义语言(FIDL)是一种用于定义在Channel上使用的协议的语言。FIDL是编程语言无关的,并且具有许多流行语言的绑定,包括C,C ++,Dart,Go和Rust,这种方法可以使用各种语言编写系统组件进行无缝交互。
Flutter
Flutter是针对Fuchsia优化的功能反应用户界面框架,并已经被许多系统组件使用。Flutter还可以运行在各种其他平台上,包括Android和iOS。值得注意的是,Fuchsia本身不要求你使用任何特定语言或用户界面框架。
Fuchsia Package
Fuchsia软件包(Fuchsia Package)是软件分发的单元,它是由一组文件构成,包括清单文件、元数据、零个或多个可执行文件(如组件)和资源等。
FVM
Fuchsia Volume Manager (FVM)是一个分区管理器,它将动态分配的块(称为slice)提供给虚拟块设备地址空间。FVM分区提供了一个块设备接口,使文件系统能够以与常规块设备基本一致的方式与其进行交互。
Garnet
Garnet是Fuchsia代码库的四个层之一。
GN
GN是一个可生成构建文件的元构建系统,可以利用它来使用Ninja构建Fuchsia。GN速度快,并配有可靠的工具来管理和检索依赖项。名为BUILD.gn
的GN文件位于整个代码仓库z中。
<!— - Language and operation
Handle
Handle(句柄)是Zircon内核的“文件描述符”,它表示用户空间进程如何引用内核对象,通过Channel可以将Handle传递给其他进程。
Hub
Hub是用于内省的入口,它使工具能够在运行时访问有关领域和组件实例的详细结构信息,例如名称,job和进程ID以及已发布的服务等。
Jiri
Jiri是跨仓库开发工具,它用于检出(checkout)Fuchsia代码库,并具有各种子命令支持,使开发人员可以轻松管理本地的代码检出。
Job
TODO(cpu): 增加定义
Ledger
Ledger是Fuchsia的分布式存储系统。应用程序使用Ledger的方式包括,直接或通过模块化框架公开的状态来同步原语,这些原语基于Ledger内部的操作。
LK
Little Kernel(LK)是嵌入式内核,它构成了Zircon内核的核心。LK以微控制器为目标硬件,缺乏对MMU、用户空间和系统调用的支持——而这些皆是Zircon在其基础上增加的功能。
Maxwell
Maxwell是用于客户端使用机器智能的服务,包括公开周围和任务相关的上下文、建议和基础设施等。
Module
Module是具有module
元数据文件的组件,主要描述Module的数据兼容性和语义角色。
Module在运行时显示UI并参与到Story中。
Mozart
Mozart是Fuchsia视图子系统,包括视图,输入,合成器和GPU服务。
Musl
Fuchsia的标准C语言库(libc)是基于Musl的。
Namespace
命名空间是文件、目录、套接字、服务和其他命名对象的复合层次结构,这些对象由环境提供给组件。
Netstack
TODO(tkilbourn): 增加定义。
Ninja
Ninja是具体编译Fuchsia的构建系统。它是一个追求速度的小型构建系统。与其他系统不同的是,无需手动编写Ninja文件,而由其他系统,如Fuchsia中的GN,生成而来。 <!— - Manual
Package
Package是一个具有多重含义的术语,它可以指Fuchsia软件包或GN构建软件包。
Paver
Zircon中的工具,用于将分区映像文件安装到设备的内部存储器中。
Peridot
Peridot是Fuchsia代码库的四个层之一。
Realm
Environment的同义词。
RemoteIO
RemoteIO是在fdio(打开/关闭/读/写/ioctl)和文件系统、设备驱动程等之间交互使用的Zircon RPC协议。作为FIDL v2的一部分,它将成为一组允许更容易的互操作性,以及更灵活的客户端或服务器异步IO的FIDL接口(文件、目录、设备……)。
Service
服务(Service)是FIDL接口的实现。组件可以为其创建者提供一组服务,创建者可以直接使用这些服务,也可以将其提供给其他组件。
服务也可以通过命名空间的接口名称获得,这使得创建命名空间的组件可以选择接口的实现实现方式。长期运行的服务,例如Mozart,通常通过命名空间获得,它允许大量客户端连接到同一实现上。
Story
Stroy是面向用户的逻辑容器,它封装用户的活动并由一个或多个相关模块实现。Stroy允许用户以自然的方式组织活动,而开发人员不必提前了解所有的这些方式。
Story Shell
负责Story视觉呈现的系统,它包括演示者组件,以及负责从每个Story中读取的结构体和状态信息。
Topaz
Topaz是Fuchsia代码库的四个层之一。 <!— - The Fuchsia layer cake
User Shell
User Shell是针对特定使用者的,且可替换的一组软件功能,与设备结合使用以创建用户与模块交互的环境。
VDSO
VDSO是一个虚拟共享库——它由Zircon内核提供,且不会出现在文件系统或软件包中,它以“永远存在”的ELF库的形式向用户空间进程提供Zircon系统调用API/ABI。在Fuchsia的SDK和Zircon的DDK中,它以libzircon.so
存在,目的是将某些内容传递给代表VDSO的链接器。
VMAR
VMAR(Virtual Memory Address Range)是Zircon内核对象,它负责VMO的位置以及如何将其映射到进程的地址空间上。
VMO
VMO(Virtual Memory Object)是Zircon内核对象,它表示可以读取、写入、映射到进程的地址空间,或通过传递Channel传递的Handle进行共享的一组页面(或潜在的页面)集合。
Zedboot
TODO(raggi): 增加定义。
Zircon
Zircon是Fuchsia的微内核和位于Fuchsia核心位置的最低层次的用户空间组件(驱动运行时环境、核心驱动和libc等)。在传统宏内核中,Zircon的许多用户空间组件也都是内核本身的一部分。Zircon也是Fuchsia代码库的四层之一。 <!— - Zircon Documentation
ZX
ZX是Zircon中的C语言API/ABI(包括zx_channel_create()
,zx_handle_t
,ZX_EVENT_SIGNALED
等)和运行库(特别是libzx)中使用的”Zircon”的缩写。