终于等来了这本用Rust进行系统编程的实践指南

学习一门编程语言,仅学习相关的语法和语义是不够的,你还需要在相关的社区深入探索。然而,社区中共享的那些知识、术语和实践,对新加入的人而言,很可能就成了无形的障碍。

如果你已经在网上学过 Rust 开源资料,但是会问自己“接下来该学点什 么”那么推荐您这本《Rust实战》。

Rust实战

终于等来了这本用Rust进行系统编程的实践指南_第1张图片

《Rust实战》包含数十个有趣的示例,如果你有自己的想法且时间允许,还可以进一 步扩展这些示例。这些示例使得本书 12 章的内容涵盖了 Rust 的一个颇为有用的子集,以及许多生态系统会用到的那些最重要的第三方库。

这些代码示例更注重的是易读性,而不是注重如何优雅、地道地使用Rust。如果你是一个很有经验的 Rust 程序员,那么可能会发现自己并不认同这些例子中的一些样式设定。我希望你能够体谅这是在为初学者考虑。

这并不是一本内容全面的参考书, 因此略去了语法和标准库的部分内容。通常情况下,这 些省略掉的内容都是高度专业的,应该给予“特殊待遇”。然而,本书旨在为读者提供足够的 基础知识和信心, 以便在必要时再进一步学习这些特定的主题。从系统编程书的角度来看,本 书也是很独特的,因为几乎本书的所有示例都能在微软的 Windows 上运行。

本书适合哪些人阅读

所有对 Rust 感兴趣的人,喜欢通过实用的示例来学习的人,或者是那些被“Rust 是一种 系统编程语言”这一事实吓到的人,都应该会喜欢本书。有编程经验的读者将获益更多, 因为 本书会假定读者已经了解一些计算机编程的基本概念。

《Rust实战》全书脉络

终于等来了这本用Rust进行系统编程的实践指南_第2张图片

本书的内容是如何组织的:路线图

本书的正文分为两部分。第一部分介绍 Rust 的语法和一些独特的特点,第二部分会应用 到在第一部分中介绍的这些知识。每一章都会引入一到两个新的 Rust 概念。第一部分是对 Rust 的快速介绍。

第 1 章解释 Rust 存在的原因,以及如何开始用它来编程。

第2 章提供翔实的Rust 语法基础知识。本章示例包括芒德布罗集渲染器和一个 grep 的克隆。

第3 章讲解如何组合 Rust 的数据类型以及如何使用一些错误处理的工具。

第4 章讨论 Rust 中确保要访问的数据始终有效的机制。 第二部分是将 Rust 应用于系统编程领域的一些基础性介绍。

第 5 章介绍在数字计算机中信息是如何表示的,重点介绍数字是如何被近似表示的。 本章示例包括实现定点数格式和一个 CPU 模拟器。

第6 章阐释引用、指针、虚拟内存、栈和堆等术语。本章示例包括一个内存扫描器和 自动生成艺术项目。

第7 章阐释如何将数据结构存储到存储设备中。本章示例包括一个 hexdump 的克隆和 一个可运行的数据库。

第 8 章通过多次重新实现 HTTP 讲解计算机是如何进行通信的,每一次实现都会剥离 掉一个抽象层。

第9 章探索在数字计算机中跟踪时间的过程。本章示例包括一个可运行的 NTP 客户端。

第 10 章介绍进程、线程和一些相关的抽象概念。本章示例包括一个海龟绘图应用程序 和一个并行解析器。

第 11 章介绍操作系统的作用和计算机是如何启动的。本章示例包括编译自己的引导加 载程序和操作系统内核。

第 12 章阐释外部世界是如何与CPU 和操作系统进行通信的。

作者简介

终于等来了这本用Rust进行系统编程的实践指南_第3张图片

Rust 语言是什么

作为一门编程语言,Rust 与众不同的一个特点就是,它能够在编译时就防止对无效数据的 访问。微软安全响应中心的研究项目和 Chromium 浏览器项目都表明了,与无效数据访问相关 的问题约占全部严重级安全漏洞(serious security bug)的 70% 。Rust 消除了此类漏洞。它能保证程序是内存安全 (memory safe)的,并且不会引入额外的运行时开销。

其他语言可以提供这种级别的安全性(safety),但它们需要在程序的执行期添加额外检查, 这无疑会减慢程序的运行速度。Rust 设法突破了这种持续已久的状况,开辟出了属于自己的空 间,如图 1.1 所示。

终于等来了这本用Rust进行系统编程的实践指南_第4张图片

 图 1.1 Rust 兼具安全性和可控性,其他语言则倾向于在这两者之间进行权衡和取舍

就像 Rust 专业社区所认可的那样,Rust 的与众不同之处是“愿意将价值观明确纳入其决 策流程中”。这种包容精神无处不在。来自互联网用户的互动消息受欢迎。Rust 社区内的所有 互动均受其行为准则约束,甚至 Rust 编译器的错误信息都是非常有帮助的。

早在 2018 年年底之前,浏览 Rust 网站主页的访问者还会看到这样的(更偏向技术性的) 宣传语—Rust 是一门运行速度极快,能防止出现段错误并能保证线程安全的系统编程语言。

后来,社区更改了措辞,从更改后的内容(见表 1.1)可以看出,措辞方面已经是以用户(和 潜在用户)为中心的了。

表 1.1 Rust 宣传语的变更。随着对 Rust 的发展越来越有信心,社区越来越多地接受了这样一种观 念,就是可以作为每个希望实现其编程愿望的人的促进者和支持者

 人们给 Rust 打上了系统编程语言的印记,通常将其视为一个相当专业的、深奥的编程语 言分支。但是,许多 Rust 程序员发现该语言还适用于许多其他领域。安全性、生产力和控制, 在软件工程项目中都很有用。Rust 社区的“包容性”也意味着,该语言将源源不断地从来自不 同利益群体的“新声音”中汲取营养。

你可能感兴趣的:(rust,开发语言,后端)