aarch64-unknown-teeos
层级: 3
TEEOS 操作系统的目标。
TEEOS 是一种在 TrustZone 中运行的微型操作系统,用于可信/安全应用程序。TEEOS 的内核是鸿蒙/ChCore 微内核。TEEOS 的 libc 是 musl 的一部分。它非常小,以至于 TEEOS 中的应用程序没有 RwLock、网络、stdin 和文件系统。
一些缩写
缩写 | 完整文本 | 描述 |
---|---|---|
TEE | 可信执行环境 | ARM TrustZone 将系统划分为两个世界/模式 - 安全世界/模式和普通世界/模式。TEE 位于安全世界/模式中。 |
REE | 富执行环境 | 普通世界。例如,Android 手机的 Linux 位于 REE 侧。 |
TA | 可信应用程序 | 在 TEE 侧系统中运行的应用程序。 |
CA | 客户端应用程序 | 在 REE 侧系统中运行的进程。 |
TEEOS 是正在开发中的开源项目。 更多信息
目标维护者
- Petrochenkov Vadim
- Sword-Destiny
设置
我们使用 OpenHarmony SDK 用于 TEEOS。
OpenHarmony SDK 目前不支持直接编译 Rust,因此需要进行一些设置。
首先,您必须从 此页面 获取 OpenHarmony SDK。选择您正在开发的 OpenHarmony 版本,并下载“标准系统公共 SDK 包”。
创建以下包装 OpenHarmony SDK 中 Clang 的 shell 脚本
aarch64-unknown-teeos-clang.sh
#!/bin/sh
exec /path/to/ohos-sdk/linux/native/llvm/bin/clang \
-target aarch64-linux-gnu \
"$@"
aarch64-unknown-teeos-clang++.sh
#!/bin/sh
exec /path/to/ohos-sdk/linux/native/llvm/bin/clang++ \
-target aarch64-linux-gnu \
"$@"
构建目标
要构建 Rust 工具链,请创建一个包含以下内容的 config.toml
文件
profile = "compiler"
change-id = 115898
[build]
sanitizers = true
profiler = true
target = ["x86_64-unknown-linux-gnu", "aarch64-unknown-teeos"]
submodules = false
compiler-docs = false
extended = true
[install]
bindir = "bin"
libdir = "lib"
[target.aarch64-unknown-teeos]
cc = "/path/to/scripts/aarch64-unknown-teeos-clang.sh"
cxx = "/path/to/scripts/aarch64-unknown-teeos-clang.sh"
linker = "/path/to/scripts/aarch64-unknown-teeos-clang.sh"
ar = "/path/to/ohos-sdk/linux/native/llvm/bin/llvm-ar"
ranlib = "/path/to/ohos-sdk/linux/native/llvm/bin/llvm-ranlib"
llvm-config = "/path/to/ohos-sdk/linux/native/llvm/bin/llvm-config"
note: You need to insert "/usr/include/x86_64-linux-gnu/" into environment variable: $C_INCLUDE_PATH
if some header files like bits/xxx.h not found.
note: You can install gcc-aarch64-linux-gnu,g++-aarch64-linux-gnu if some files like crti.o not found.
note: You may need to install libc6-dev-i386 libc6-dev if "gnu/stubs-32.h" not found.
构建 Rust 程序
Rust 尚未为此目标提供预编译的工件。要为此目标编译,您需要启用目标构建 Rust(请参阅上面的“构建目标”),或者使用 build-std
或类似方法构建自己的 core
副本。
您需要在 ~/.cargo/config
中配置要使用的链接器
[target.aarch64-unknown-teeos]
linker = "/path/to/aarch64-unknown-teeos-clang.sh" # or aarch64-linux-gnu-ld
测试
现在无法运行 Rust 测试套件。
有关如何测试 CA/TA 的更多信息。 请参阅此处