Rustonomicon
Rustonomicon
简介:
引言
The Rustonomicon(中文译名《Rustonomicon》)不仅仅是一本书,更像是一本魔法书,一本关于Rust编程语言黑暗知识的汇编。如果你已经掌握了Rust的基础知识,并且有勇气窥探严格安全保证背后的秘密,那么这本书将成为你进入unsafe代码、原始指针、FFI(外部函数接口)以及其他危险但必要工具世界的向导。本书由多位作者(Various Authors)集体编写,并得到社区支持,是官方的不安全Rust指南,其在线版本可免费获取。2022年出版的180页纸质版是一本紧凑但内容丰富的参考书,适合那些想了解Rust“引擎盖下”的工作原理,以及在真正需要时如何绕过其保护机制的人。
本书内容
本书完全专注于Rust的unsafe子集。它不教授基础语法或惯用代码——假定读者已经能够熟练编写安全的Rust代码。主要主题包括:
- 原始指针(
*const T和*mut T):创建、解引用、指针运算。 - 不安全函数和trait:声明和调用
unsafe fn,实现unsafe trait。 - FFI(外部函数接口):从Rust调用C函数,为C导出Rust函数,处理
extern块。 - 内存管理:手动内存管理、分配器、创建自定义智能指针。
- 数据表示:对齐、类型大小、结构体和枚举的内存布局、
#[repr(...)]属性。 - 未定义行为(UB):在unsafe代码中哪些可以做、哪些不能做,如何避免UB。
- 原子操作与内存屏障:底层同步。
- 内联汇编:用于平台相关代码的
asm!宏。
目标读者
The Rustonomicon 面向有经验的Rust开发者,他们已有编写安全代码的经验,并希望深入系统编程领域。本书对以下人群尤其有用:
- 创建带有FFI的库的开发者(例如,C/C++库的封装)。
- 从事操作系统、驱动程序或嵌入式系统工作的工程师。
- 希望实现具有手动内存管理的自定义数据结构(例如,自定义
Vec或HashMap)的人。 - 游戏引擎和高性能应用程序的开发者,其中每一微秒都至关重要。
- 所有希望真正理解Rust在机器码层面如何工作的人。
读者将学到什么
阅读本书后,您将能够:
- 自信地使用原始指针,并理解引用与指针之间的区别。
- 编写安全封装来包裹不安全代码,避免内存泄漏和UB。
- 通过FFI与C库交互,传递复杂的数据结构。
- 创建自定义分配器并手动管理内存。
- 理解内存中的数据布局、对齐和类型大小。
- 使用原子操作进行无锁编程。
- 避免未定义行为,编写正确的unsafe代码。
- 为平台相关的优化嵌入汇编代码片段。
优点
本书具有一系列不可否认的优点:
- 权威性:这是来自Rust团队的官方指南,并得到社区支持。信息准确且与时俱进。
推荐