超越标准 Rust
Rust 工具链支持的范围远不止纯 Rust 应用程序代码,运行在用户空间中:
- 它支持交叉编译,其中运行工具链的系统(主机)与编译代码将在其上运行的系统(目标)不同,这使得它很容易定位嵌入式系统。
- 它支持通过内置 FFI 功能链接使用 Rust 以外的语言编译的代码。
- 它支持没有完整标准库 std 的配置,允许定位没有完整操作系统(例如,没有文件系统、没有网络)的系统。
- 它甚至支持不支持堆分配而只有堆栈的配置(通过省略使用标准 alloc 库)。
这些非标准 Rust 环境可能更难工作,可能不太安全——它们甚至可能不安全——但它们为完成工作提供了更多选择。
本书的这一章仅讨论了在这些环境中工作的一些基础知识。除了这些基础知识之外,您还需要查阅更多特定于环境的文档(例如 Rustonomicon)。