Rust 非安全程序设计

本书将深入挖掘和剖析 Rust 非安全(unsafe)编程中的一些必要面对和解决的细节问题。

如果你仍然期待着拥有一个长期且快乐的 Rust 编程生涯,那么现在就转身离开,彻底忘掉你曾经见到过这本书——你并不会感到生活有什么缺憾。但是,如果你计划编写非安全代码,或者仅仅是想探究一下这门语言的内在秘密,那么本书将给你许多有用的信息。

本教程与 《Rust语言教程》 不同,本书假设你具备一定的基础知识。特别是你应该已经熟练掌握了基本的系统编程和 Rust 语言。要是还没有的话,请考虑先读 《Rust语言教程》 这本书。我们并不假设你一定去读了,也会在适当的时候复习一下相关的基础知识。你可以跳过上面那本书直接阅读本书,但要了解我们并不会把每一个知识点都从头讲起。

我们将涉及到异常安全(exception-safety),指针别名(pointer aliasing),内存模型(memory model),编译器和硬件实现的细节,甚至还有一些类型理论(type-theory)。还会大费周章地处理一些原本不该有人关注的边界场景,因为当我们敲出 unsafe 几个字的时候,这些场景一下子就变得特别重要了。

我们还将花费大量时间讨论程序关注的各种不同的安全保证机制。

安全与非安全代码对比:我们都希望可以彻底屏蔽代码底层实现的细节,又有谁愿意关心“一个空的元组占用多少内存”这种事?可惜的是,有时候这些事却很重要,我们不得不去关注它。开发人员关注实现细节,大部分情况是为了性能优化。但更主要的是,当我们与硬件 ...