之间网

2月23日LinusTorvalds重视Linux内核中的Rust语言

看世界
导读 到目前为止,Linux 内核是用C编程语言编写的——本质上,与自1970 年代以来用于为 Unix 和类 Unix 操作系统编写内核的语言相同。C

到目前为止,Linux 内核是用C编程语言编写的——本质上,与自1970 年代以来用于为 Unix 和类 Unix 操作系统编写内核的语言相同。C 的伟大之处在于它不是汇编语言——它更容易读写,而且通常更接近于硬件架构之间的直接可移植性。但是,C 仍然可以让您了解汇编中几乎所有可能的灾难性错误。

特别是,作为一种非内存管理的语言,C 使程序员面临内存泄漏和缓冲区溢出。完成创建的变量后,必须明确销毁它——否则,旧的孤立变量会累积,直到系统崩溃。同样,您必须分配内存来存储数据——如果您试图将太多数据放入太小的 RAM 区域,您最终会覆盖您不应该覆盖的位置。

高级语言(如 PHP、Python 或 Java)旨在更易于读写和更安全地编写代码。它们提供的大部分额外安全性来自隐式内存管理——语言本身会拒绝允许您将 16K 的数据填充到 2K 缓冲区中,从而避免缓冲区溢出。类似地,高级语言通过垃圾回收自动回收“孤立的” RAM——如果一个函数创建了一个只能由该函数读取的变量,那么该函数将终止,一旦该变量不再可访问,该语言将回收该变量。

Rust 与 Google 的Go一样,是旨在介于两者之间的新一代语言之一——它提供了原始速度、灵活性和大部分直接映射到 C 将提供的内存安全环境的硬件功能。

标签: