您现在的位置是:首页 > 科技 >正文
LinusTorvalds在Linux内核中权衡Rust语言
发布时间:2021-12-14 09:52:06闵固彬来源:
本周,ZDNet 的 Steven J. Vaughan-Nichols 向 Linus Torvalds 和 Greg Kroah-Hartman 询问了用Rust编写新 Linux 内核代码的可能性——Rust 是一种由 Mozilla 项目赞助的高性能但内存安全的语言 。
C 与 Rust
到目前为止,Linux 内核是用C编程语言编写的——基本上,与1970 年代以来用于为 Unix 和类 Unix 操作系统编写内核的语言相同。C 的伟大之处在于它不是汇编语言——它更容易读写,而且通常更接近于在硬件架构之间直接移植。但是,C 仍然让您面临几乎所有可能在汇编中出现的灾难性错误。
特别是,作为一种非内存管理语言,C 使程序员容易受到内存泄漏和缓冲区溢出的影响。完成创建的变量后,必须显式销毁它——否则,旧的孤立变量会累积,直到系统崩溃。同样,您必须分配内存来存储数据——如果您试图将太多数据放入太小的 RAM 区域,您最终会覆盖不应该覆盖的位置。
高级语言(例如 PHP、Python 或 Java)旨在更易于阅读和编写,并且更安全地编写代码。它们提供的大部分额外安全来自隐式内存管理——语言本身将拒绝允许您将 16K 的数据填充到 2K 的缓冲区中,从而避免缓冲区溢出。类似地,高级语言通过垃圾收集自动回收“孤立的” RAM——如果一个函数创建了一个只能由该函数读取的变量,则该函数终止,一旦该变量不再可访问,该语言将回收该变量。
Rust 与 Google 的Go 一样,是旨在介于两者之间的新一代语言之一——它提供原始速度、灵活性以及大部分直接映射到 C 语言的硬件功能,同时提供内存安全环境。
Linux 管道工 2020
在 2020 年的 Linux Plumbers 大会上,内核开发人员开始认真讨论在内核中使用 Rust 语言的想法。需要明确的是,这个想法并不是用 Rust 完全彻底地重写内核——只是添加了用 Rust 编写的新代码,这些代码与现有的内核基础设施接口干净。
Torvalds 似乎并不害怕这个想法——事实上,他要求在内核构建环境中默认启用Rust 编译器可用性。这并不意味着 Rust 代码提交会被内核随意接受。启用对 Rust 编译器存在的自动检查只是意味着它应该尽可能容易地像任何其他内核代码一样正确构建(并自动测试)任何潜在的提交。
快进到 2021 年
自 2020 年 Linux 管道工大会以来,内核中的 Rust 已经完成了大量工作,包括在 GNU Coreutils的 Rust 语言端口上。该移植的作者 Sylvestre Ledru(Mozilla 主管和 Debian 开发人员)将其描述为处于工作状态,但尚未准备好投入生产。最终,Rust 端口可能会在某些环境中取代原始的 GNU Coreutils——提供内置的线程安全性和对内存管理错误(如缓冲区溢出)的免疫力。
重要的第一步
尽管我们预计不会很快在 Rust 中看到 Linux 内核的完整实现,但将 Rust 代码集成到内核的 C 基础架构中的早期工作可能非常重要。
无论微软和Linux社区同意三分之二或从存储器安全问题更多的安全漏洞造成的。随着软件复杂性的不断增加,首先使编写更安全将变得越来越重要。
标签:
猜你喜欢
最新文章
- 聚酯纤维100%的衣服怎么洗(100%聚酯纤维怎么洗)
- 广东省过渡性养老金是在哪一年截止 2022广州市过渡性养老金怎么计算的
- 2022年02月22日积灰问题难消除FindX或成“吸尘机”
- little和less有什么区别(less和little的区别)
- 鞍钢职工养老保险查询 2022鞍山养老保险查询途径有哪些
- ow是哪国的(macow 是哪个国家)
- 奥迪A4L入门版将于9月上市 搭载1.4T发动机
- 1月15日魅族16真机再曝光18:9屏幕+超窄边框
- new bunren是正品吗(new caledonia是哪个国家)
- 黑龙江省鸡西市养老保险今年交多少? 2022鸡西养老保险查询指南
- pizza纸盒能进微波炉吗(pizza纸盒能进微波炉吗)
- 2021成都车展博物馆:瑞丰S2S3智能驱动系列
- 井矿盐跟海盐哪种好(井矿盐和海盐区别)
- 2022年02月22日小米&美图重磅联姻网友火速放出渲染图
- 丹霞石有什么特点(丹霞石是什么石头)
- 两河流域代表的是什么文明(两河流域文明是指什么)
- 已有27队晋级世界杯
- 世预赛巴西与玻利维亚双方的首发阵容
- 德国客场1比1战平荷兰
- 阿根廷客场对阵厄瓜多尔的首发名单
- 范迪克首发踢满全场
- 葡萄牙2比0战胜北马其顿
- 博格巴替补上场送出助攻
- 斯卡洛尼表示我希望阿圭罗能在队友们身边