标签 Rust 下的文章

Rust for Linux 这个项目是希望今后可以使用 Rust 编程语言来编写内核代码,该项目已经进行了几年,有越来越多的开发者认为是时候将这项工作合并到主线中了。在 2022 年的 Linux 内核维护者峰会上,Miguel Ojeda 向大家更新了此项目的最新状况,希望能达成一致来确定何时可以完成合并。

他得到的答案是很清晰的:内核中确实很快会有 Rust 了。

这方面并没有什么悬念。Linus Torvalds 在会议开始时就说,他计划接受(可能在 12 月中旬发布的) 6.1 内核的 Rust 补丁,除非他听到强烈的反对意见。Ojeda 表示,他很期待这一天,并询问这些补丁应该如何进入主线。Torvalds 说,他不愿意直接接受这些补丁,所以看起来很可能需要 Kees Cook 来将这项工作引向上游。

Dave Airlie 说,有一些 MacBook 驱动程序的开发者打算用 Rust 来做他们的工作,所以很可能在不久之后就会有真正的 Rust 驱动程序进入上游了。不过,Torvalds 说他希望最开始只合入尽量少的内容,只是让基础设施先进入内核,让开发者开始使用它。它应该可以完成编译,但应该基本仅限在 “hello, world” 这种水平就好。他说,这将是一个向世界发出的信号:“终于落地了”。

Greg Kroah-Hartman 问道,针对特定子系统的 Rust 绑定实现,该如何进入上游;是应该通过 Rust 树还是通过相关子系统的维护者?Ojeda 回答说,Rust 核心支持应该通过 Rust 树来合入,但其他的应该经过维护者来合入。Alexei Starovoitov 担心,如果子系统维护者不想在他们的子系统中使用 Rust,他们也无法拒绝 Rust 补丁;James Bottomley 补充说,对于长期从事 C 语言开发的人来说,Rust 可能是一种很难理解的语言,把它强加给维护者并不合适。Torvalds 回答说,这应该由维护者决定;目前没有必要制定统一的规则。

Paolo Bonzini 说,对于不熟悉该语言的开发者来说,针对特定子系统实现抽象层的 Rust 代码往往是最难读懂的,“but it's stupid code”,并没有做什么复杂的动作。驱动程序级的 Rust 代码则要简单易懂得多。Torvalds 重申,就目前而言,维护者将可以说他们不想接受 Rust。但 Starovoitov 反驳说,无论他如何决定,BPF 都会受到影响;开发者需要能够对 Rust 代码进行跟踪 来调试问题。他补充说,每个人最终都会需要了解 Rust。Torvalds 回答说,他预计这个过程需要几年时间。

Cook 说,这种变化将类似于内核所经历的许多 C 语言变动。停止使用可变长度数组也是一个类似的过程,开发人员目前已经习惯了这一点。Torvalds 说,这其实更加类似于 BPF 的引入过程;这也是一种新的语言,起初是针对特定使用场景的,但现在已经无处不在了。

Ted Ts'o 指出,内核必须使用不稳定的 Rust 功能,这就导致不好确定应该使用 Rust 的哪个版本了。也许开发者应该宣布一个特定版本的编译器作为内核开发所使用的版本?这将鼓励发行版提供商把这个版本打包发行出来,使其得以更广泛地被采用。Thomas Gleixner 说,在 kernel.org 上提供我们选定的编译器应该就够了,但 Torvalds 回答说,只要有可能,他都希望优先从发行版提供商那里获取编译器。Bottomley 问道,Rust 什么时候会成为内核编译的必备条件;答案是 “当某人需要使用的硬件需要 Rust 的时候”。Torvalds 说,如果这一天到来了,那说明 Rust 在内核开发领域是非常成功的了。

Gleixner 问 Rust 语言现在的规范性如何;Ojeda 回答说,这取决于人们希望用什么。Rust 保证了稳定功能都可以向后兼容,所以这些功能不会意外不能用了。不过,内核正在使用一些不稳定的功能;这些功能出现变动是很有可能的。目前正在做的工作就是把这些功能稳定下来,以便让内核能够稳定地使用它们。

目前正在努力为 Rust 编写一个强调安全的系统的规范,这会最终得到一个类似于标准的文档。不过 Ojeda 说目前基于 GCC 的 gccrs Rust 编译器的开发者发现当前的文档有些地方比较模糊。其中经常把相关行为定义为 “参考 rustc 编译器的实现方式”。他说,这 “不是好事”,但会继续改善。

Gleixner 还询问了生成 Rust 绑定的工具,尤其是有没有自动化工具来确保 Rust 和 C 版本的数据结构是相互匹配的。Ojeda 说,这些工具确实存在,但它们还不能成功地对所有类型完成自动转换。这也是可以解决的。

最后,Gleixner 告诫 Rust 开发者不要改变 C 语言中锁定原语的语义;目前看来大家也没有表现出这样的倾向。Ts'o 补充说,应该从一开始就让 Rust 的锁定抽象能跟 lockdep 这个锁定检查工具配合起来。Chris Mason 插话说,如果 Rust 代码需要 lockdep,这将是该语言成功的另一个标志,是时候 “跳个舞庆祝胜利” 了。

人们经常说,将 Rust 合并到内核代码树中还是一个实验性质的动作;如果不成功就可以删除掉。Ojeda 说,为 Rust for Linux 工作的开发者们想知道试验期可能会有多长。不过,他并没有从这个小组讨论中得到切实的答案。

相反,Bottomley 建议说,与其引入 Rust,不如直接将更多类似 Rust 的功能移入 C 语言。Ojeda 说,他实际上一直在与 C 语言委员会合作来推动这些改进,但这方面的任何变动如果能够落实,也需要很长的时间。Christoph Hellwig 说,除非计划用 Rust 重写整个内核,否则这种改动无论如何都得去做;他对使用一种新的语言来重写已经能正常工作的代码的方案不是很满意。他说,也许 sparse 静态分析工具可以加强一下,从而实现更多 Rust 可以做到的检查。Ojeda 回答说,这种做法最终的效果就像是又获得了一个 Rust 一样——但时间上要晚很多。

Hellwig 继续说,可以随着时间的推移,来逐步采用类似 Rust 的一些功能。这 “必定是不如从 Rust 开始”,但内核社区现在有一个庞大的代码库需要管理。他说,需要有一种方法将类似 Rust 的语言的好处纳入所有的 C 代码中。Cook 说他一直在推动编译器开发人员来创建更安全的 C 语言。

Ts'o 在会议结束时指出,语言设计本身就是一个耗时很长的研究项目;也许我们大家应该在下一年来专注于策略问题。Torvalds 说,他希望看到各位维护者能运行一些持续集成测试并且加入 Rust 相关的测试——这个情况其实已经在进行中了。Laurent Pinchart 说,Rust 开发者需要准备好前期需要给内核社区提供支持;开发者会很快掌握一些技能,在一段时间后应该可以开始相互帮助了。Torvalds 补充说,Rust 其实并不是那么可怕的;“毕竟不是 Perl”。

当被问及文档问题时,Ojeda 说,Rust 的开发者正试图改进一些相应的 C 语言中已经完成了的文档。例如,可以让 Rust 的文档机制能很简单地就确保这些例子是可以被实际测试通过的。他们正在遵守关于应如何解释不安全区块的规则。

时间不够了,Matthew Wilcox 最后问道,内核开发人员是否应该编写地道的 Rust 代码,还是说应该写 “C in Rust”。Ojeda 回答说,这些代码在开始时可能更像 C 语言;采用更高级的功能(如 async)可能会需要更长时间。Gleixner 问,怎样才能防止开发者使用那些不稳定的特性(是说等内核使用的特性已经变成稳定特性之后);答案是指定内核开发时使用的编译器版本。

Linus Torvalds 获颁英特尔首个终身创新成就奖

在英特尔 2022 创新大会上的开幕致辞中,CEO Pat Gelsinger 将 Linus Torvalds 邀请到了台上,向他颁发了首个终身创新成就奖,并向他赠送了一本签名的关于 80386 开发的书。Pat 写的这本书让 Torvalds 对机器架构有了深入了解,并在后来的 Linux 内核代码开发工作中发挥了重要的作用。Torvalds 之前也得过其它奖项,如 2014 年 IEEE 计算机协会计算机先锋奖。

消息来源:Hot Hardware
老王点评:Torvalds 确实做到了终身成就。

英特尔认为摩尔定律仍旧有效

之前我们报道过,英伟达的黄仁勋称,蛮力加晶体管的方法和摩尔定律的进步基本上已经走到了尽头。但英特尔 CEO 在周二的发布会上称,摩尔定律“依然有效”,英特尔正致力于推进制造工艺的进步,例如采用新的光刻技术和 RibbonFET 架构。他说,“我们希望从今天的单个封装上容纳大约1000亿个晶体管开始,到这个十年结束时实现在单个封装中加入一万亿个晶体管”。

消息来源:Digital Trends
老王点评:或许一两年之后,我们再来看这条新闻。

Rust for Linux v10 补丁发布,预计合并到 Linux 6.1

v10 补丁主要是对以前的 v9 补丁的一些最小的修改,该补丁集包括 27 个补丁,共计 12.5 万行新代码。与之前相比,这是一个较小的 Rust 补丁系列,目的是为了更容易地实现合并到上游。一旦这项工作被主线化,使 Rust 支持更多的内核子系统和早期的 Rust 驱动就可以继续开发,并持续实现主线化。

消息来源:Phoronix
老王点评:这回应该定了,主要是前几天内核开发者们开会达成了共识。

Redox OS 刚刚获得了大量匿名捐款。它将用于什么?令人兴奋的事情!

Wow! Rust-based Redox OS Gets an Anonymous Donation of $390,000 in Cryptocurrency

Redox OS 是一个用 Rust 编写的类 Unix 操作系统。

该项目由 Jeremy Soller 于 2015 年发起,他被公认为 System76 的首席工程师及Pop!\_OS 的维护者。

我们还介绍了它今年早些时候的最后一个版本:基于 Rust 的 Redox OS 0.7.0 推出增强硬件支持

虽然这些更新包括的改进可以让它在更多硬件上启动,但它可能不是大多数用户的日常驱动程序的替代品。

然而,这是一个令人兴奋的项目,值得关注。

而在收到匿名捐款后,事情变得更加精彩

? 刚刚有人向 Redox OS 的捐赠地址发送了 299 个以太坊,相当于近 39 万美元(加密货币市场涨跌不定)。

嗯,那是一大笔钱!

根据 Jeremy 的最新推文,他还没有立即决定如何处理它。

一位匿名捐赠者刚刚向 @redox\_os 捐赠地址发送了 299 以太(相当于 393,000 美元) 。这个地址和交易都是公开的。我不知道如何处理这种规模的捐赠,但在进行一些研究后很快就会有更多细节。https://t.co/f3yBDghWSh

但是,对推文的回复给了我们一些很好的建议。

一些人建议将其捐赠给负责 Rust 语言的人,还有一些人建议用这笔钱来赞助学习 Rust 和 OS 开发。

他肯定可以使用它来扩展 Redox OS 或其他任何需要该资源的东西。

归根结底,对于想要更多基于 Rust 的东西的人来说,无论 Jeremy 选择做什么,这都可能间接成为一件好事。

或者,也许买一辆带有 Redox OS 标志的布加迪?好吧,一些推特用户对这一事件有过搞笑的回复!?

这不是开源项目第一次收到大量的加密货币捐赠。Apache 软件基金会在 2018 年收到了价值 100 万美元的比特币。

当 Jeremy 决定分享有关捐赠的更多细节以及他打算如何处理时,我将更新这篇文章。

? 你如何看待匿名捐赠给 Redox OS?如果你得到那笔捐款,你会怎么做?在下面的评论框中让我们知道你的想法。


via: https://news.itsfoss.com/redox-os-anonymous-donation/

作者:Ankush Das 选题:lkxed 译者:littlebirdnest 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

微软 Azure CTO 称 C/C++ 应该被废弃

他在 Twitter 发表了个人观点:“是时候停止用 C/C++ 启动任何新项目了,在那些需要非 GC 语言的场景中使用 Rust。为了安全和可靠性,行业应该宣布这些语言被废弃。”这并不是微软第一次倡导将 Rust 作为提高软件安全的一种手段。三年前,微软安全响应中心(MSRC)表示,“我们认为 Rust 代表了目前 C 和 C++ 的最佳替代品。……MSRC 分配了 CVE 编号的安全问题中,大约有 70% 是内存安全问题。这意味着,如果该软件是用 Rust 编写的,这些内存安全问题很可能已经被消除了。”

消息来源:Dev Class
老王点评:Rust 是一个很有希望,但是仍然不够成熟和完善的语言,不过,C/C++ 程序员们可以开始学了。

Mozilla 发布报告指责操作系统与浏览器的锁定

浏览器市场份额已经急剧减少的 Mozilla 最近发布研究报告,整篇报告并未有什么新的证据和观点。在报告中,Mozilla 警告说,“浏览器市场的竞争对于确保创新和消费者的选择至关重要,更广泛地说,保护开放网络的活力,防止商业巨头试图封锁它。”并称,“相比之下,来自独立浏览器的竞争可以帮助推动新的功能,以及在隐私和安全等领域的创新”。

消息来源:Tech Crunch
老王点评:首先,请把 Firefox 做好,而不是指责别人借助优势扩大份额吧。

被忽视 15 年的 Python 漏洞导致 35 万项目陷入风险

早在 2007 年,就已经有安全研究人员披露了一个 Python 的安全风险,并得到了编号 CVE-2007-4559。遗憾的是,它一直没有获得正式的修复补丁。唯一的缓解措施,也只是在更新后的开发者文档中提示了相关风险。今年早些时候,一位安全研究人员在调查另一个安全问题时,再次发现该漏洞可用于代码执行。该漏洞位于 Python tarfile 包中,预估有超过 35 万个存储库易受该漏洞攻击的影响,且其中不乏重要项目,如 GitHub Copilot。

消息来源:Bleeping Computer
老王点评:又一个开源供应链安全漏洞。任何一个不起眼的小漏洞都可能引起大坝崩溃。

Rust 将进入 Linux 6.1

在 Linux 内核维护者峰会上,Linus Torvalds 表示除非有意外发生,Rust 将进入 Linux 6.1,但“只是核心基础设施(即还没有正经用例)”。目前正在开发的版本是 Linux 6.0,6.1 是下一个版本。西部数据的工程师们在 Linux Plumbers 大会上展示了使用 Rust 语言开发的 NVMe 驱动,它已经实现了与 C 语言版本相当的性能。内核开发者同意 Rust on Linux 已经准备就绪。

消息来源:ZDNet
老王点评:在前两天 Linus 的采访中,他还没有肯定地确认 Rust 将进入 Linux 6.1,现在看起来经过几天的会议,内核开发者们已经达成了共识。

LibreOffice 上架 Mac 应用商店,售价 9 欧元

文档基金会宣布在 Mac 应用商店发布 LibreOffice,以支持那些希望从苹果的专有销售渠道获得所有桌面软件的最终用户。Mac 应用商店上的版本是由 Collabora 发布的,并由其提供三年的支持服务,下载它需要付出 8.99 欧元的“便利费”,以支持该项目的开发。但 macOS 用户仍然可以从文档基金会下载免费版本,免费版本和 Mac 应用商店的版本都是采用相同源代码构建的,功能没有区别,甚至商店版本由于苹果的政策限制而需要另行下载依赖项 Java。

消息来源:文档基金会
老王点评:基金会专注于免费的社区版本,而将收费的空间留给生态伙伴,这是一种好的做法。

研究发现 YouTube 的反馈按钮几乎没有用

Mozilla 研究人员通过利用来自 2 万多名 YouTube 用户的视频推荐数据发现,“不感兴趣”、“不喜欢”、“停止推荐频道”和“从观看历史中删除”等按钮在防止类似内容被推荐方面基本上不起作用。报告发现,即使在最好的情况下,点击过这些按钮后,仍有一半以上相似的内容推荐。YouTube 称,这些行为是故意的,因为该平台并不试图阻止跟某个主题有关的所有内容,并批评该报告的“类似”的定义没有考虑到 YouTube 的推荐系统是如何工作的。

消息来源:福布斯
老王点评:合着这些按钮就是安抚用户情绪啊?我想,其它的视频或微博上的类似按钮是不是也如此呢?

Rust Linux 驱动程序实现与 C 代码相当的性能

在都柏林举行的 2022 年 Linux Plumbers 大会(LPC)的 Rust 小型会议上,介绍了 Rust for Linux 工作的最新状况。Linux 内核已经有了很好的 C 语言编写的 NVMe 驱动,西部数据的测试显示,虽然其开发的 Rust NVMe 驱动仍处于早期阶段,但其驱动性能与 C 编写的驱动一样好。会议上介绍了最新的补丁系列是如何被精简以减轻上游工作的,以及过去一年的各种进展,但是关于 Rust 何时并入主线,会议上并没有披露具体的时间表和进展。

消息来源:Phoronix
老王点评:非常好的信号,但是大家都更关心什么时候能进入主线。

PyTorch 成为 Linux 基金会的顶级项目

开源 Python 机器学习库 PyTorch 成为 Linux 基金会托管的顶级项目,成立 PyTorch 基金会,其理事会的核心成员包括 AMD、AWS、谷歌云、Meta、Azure 和英伟达。PyTorch 最早由 Facebook 创建,自 2017 年以来,已经有超过 2400 名开发者在 PyTorch 基础上创建了 54000 个项目,PyTorch 成为了 AI 研究的主要平台之一。

消息来源:PyTorch
老王点评:PyTorch 是一个不错的项目,在 LF 的支持下,应该会有更好的发展。

思科承认“阎罗王”勒索团伙泄露了其数据,但表示没有问题

5 月份对思科进行了攻击的“阎罗王(Yanluowang)”勒索团伙周末在暗网上公开泄露了盗取的文件。显然,思科选择不支付勒索团伙要求的勒索,这导致被盗数据被公布。思科的威胁情报部门证实了所泄露文件的真实性,并重申其业务没有受到不利影响。然而,“阎罗王”勒索组织说,其窃取了多达 55GB 的数据,其中包括源代码和机密材料等敏感信息。

消息来源:The Register
老王点评:这组织的名字真是别致,但是到底对思科有没有影响,只有思科自己知道。