1. 主页
  2. 文档
  3. Fuchsia OS 简体中文文档 (2019年版)
  4. 手册
  5. Fuchsia 核心库

Fuchsia 核心库

Fuchsia 核心库

本文档从依赖链底层描述 Fuchsia 系统的核心库。


Zircon 库

libzircon

该库定义了 Zircon 系统 ABI。

TODO(kulakowski) 描述它不是内核系统调用接口,因为 VDSO 抽象了它。

libzx

libzircon 定义了 C types 和这些对象的函数调用。libzx 是一个轻量级的 C++ 包装器。 It adds type safety beyond zx_handle_t, 因此每个内核对象类型都具有相应的 C++ 类型,并将 ownership semantics 添加到句柄。否则,它将不采取命名和策略。

有关libzx的更多信息,请参阅libzx 文档

FBL

Zirco n大部分都是用 C++ 编写的, 包括内核和用户空间。链接 C++ 标准库并不是太适合这种环境 (它太容易分配、抛出异常等,而且库本身很大)。 我们希望使用标准库中许多有用的结构,比如 type traits 和指针。但是,C++ 标准库并不能真的像这样零碎地使用。所以我们创建了一个提供类似 FBL 结构的库。这个库还包括标准库中没有的结构,但是对于内核和设备驱动程序环境是使用的 useful 库代码(例如,slab 分配)。

有关 FBL 的更多信息,请阅读文档

FXL

FXL 是一个包含基本的 C++ 构建块的独立于平台的库,例如日记记录(logging)和引用计数( reference count )。FXL依赖于C++ 标准库,但不依赖于任何 Zircon 或 Fuchsia 特定的库。我们为目标(Fuchsia)和主机(Linux,Mac)系统构建 FXL。

一般来说,我们尝试将 C++ 标准库用于基本构建块,但在某些情况下,C++ 标准库要么没有我们需要的东西(例如,一个功能强大的日志系统),要么有我们需要的版本但是不符合我们的要求(如,std::shared_ptrfxl::RefPtr的两倍大)。

标签
这篇文章对您有用吗?

我们要如何帮助您?

Comments

Leave a reply

您的电子邮箱地址不会被公开。