超越标准Rust

Rust 工具链支持的环境范围远比仅仅运行在用户空间的纯 Rust 应用程序代码要广泛:

  • 它支持跨平台编译,其中运行工具链的系统(宿主)与编译后的代码将运行的系统(目标)不同,这使得针对嵌入式系统变得简单。
  • 它支持与用非 Rust 语言编译的代码链接,通过内置的 FFI 功能。
  • 它支持没有完整标准库 std 的配置,允许针对没有完整操作系统的系统(例如,没有文件系统,没有网络)。
  • 它甚至支持不支持堆分配而只有栈的配置(通过省略标准 alloc 库的使用)。

这些非标准 Rust 环境可能更难工作,可能不那么安全——它们甚至可能不安全——但它们为完成工作提供了更多选项。

本书的这一章仅讨论了在这些环境中工作的基础知识。除了这些基础知识之外,您还需要查阅更多特定环境的文档(例如 Rustonomicon)。