专栏首页Rust语言学习交流【Rust日报】2020-07-11 关于 Linux 内核支持 Rust 的讨论

【Rust日报】2020-07-11 关于 Linux 内核支持 Rust 的讨论

关于 Linux 内核支持 Rust 的讨论

Rust 编程语言在安全性方面具有一些优势,因此某些 Linux 内核开发人员希望使用它。其中一位 Nick Desaulniers 希望在即将举行的 Linux Plumbers Conference 上进行介绍和讨论。Linux Plumbers Conference 是一个会议,参会的是从事 Linux 工作的顶尖开发人员(包括内核子系统,核心库,窗口系统等)。

添加构建内核所需的新工具链的成本相对较高,更不用说人员的成本,需要熟练掌握 Rust 语言以充分审查所有新代码和移植代码。因此,电子邮件中讨论评估 Linux 内核开发社区是否愿意接受这些成本,如果是,那么可能需要清除哪些实际障碍才能真正实现。

TL;DR

  • Nick Desaulniers 表示:“很想会议讨论 Linux 内核支持 Rust ”,较大的疑问是:“我们应该这样做吗?”或“我们如何限制使用它的范围?”
  • 包括 Greg Koah-Hartmann 在内的大多数人都对参加讨论感兴趣。
  • rustc的开发人员 Josh Triplett 表示:“很高兴 Linux 内核成为 Rust 语言开发的重点。如果在内核中构建 Rustic 接口需要一些额外的语言功能,我们应该看看对语言的哪些增强最能满足这些要求。“
  • Linus Torvalds 表示:”我不希望我们陷入困境 - 甚至不对任何新的 Rust 支持默认经过构建测试。“

其中 Linux kernel in-tree Rust support 中的 in-tree,是 Linux 术语,意思是与内核源代码树本身一起存储并与之一起构建内核模块。

讨论链接,https://lore.kernel.org/lkml/CAKwvOdmuYc8rW_H4aQG4DsJzho=F+djd68fp7mzmBp3-wY--Uw@mail.gmail.com/T/#u

cargo-todo

cargo-todo 是一个用来查看 rust 代码中每个 TODO 的工具。将显示//todo的行数:

$ cargo todo
Line 39 : refactor

相关链接:

  • Github,https://github.com/ProbablyClem/cargo-todo
  • Crates.io,https://crates.io/crates/cargo-todo

异步内存访问

关于异步内存访问的 Rust 代码,要点是现代 CPU 与缓存有关。下面的 Paper 对该代码的作用有深入描述,感兴趣的可翻阅。

Playground 链接,https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=b99e44f23000d3ab90c5ef3a9ab75b55

相关 Paper,http://www.vldb.org/pvldb/vol11/p1702-jonathan.pdf

Miri 解释器

Miri,是一个针对 Rust 的 MIR(Mid-level Intermediate Representation) 实验性解释器。它可以运行 cargo 项目的二进制文件和测试套件,并检测某些类别的未定义行为。

关于如何使 Rust 的编译速度更快,以便开发人员可以更快地进行迭代,这已经有很多讨论。但是另一种解决方案是根本不编译它。Python 之所以开发者友好,原因之一是因为编写一行代码到看到更改结果之间的时间不到一秒钟。miri 会为 Rust 带来同样的开发便利吗?

Github 链接,https://github.com/rust-lang/miri

本文分享自微信公众号 - Rust语言学习交流(rust-china),作者:知行之录

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【Rust日报】2020-03-21 absolution,Rust安全指南文档

    除了top外,一些可能会使用的基于终端的系统监视工具,包括ytop,bottom,zenith。

    MikeLoveRust
  • 【投稿】刀哥:Rust学习笔记 1

    近段时间在学习研究Rust。都说Rust学习曲线陡峭,感觉果然如此。之前学习Go,基本上没有专门去看语法,只是在需要的时候上网查一查,再花点时间看看大型的开源软...

    MikeLoveRust
  • 【Rust日报】 2019-06-19:Facebook的数字货币项目Libra由Rust实现

    看看Libra的愿景,安全是重中之重。使用Rust写区块链,底层的内存安全有保证,也就是说杜绝了系统产生漏洞的可能性。

    MikeLoveRust
  • 2018最新mfc作为上位机接收硬件端USB或串口数据显示成图片 解决串口接收数据丢字节丢包问题

    第一步:首先建立一个MFC工程,成功后会跳出一个对话框,直接在对话框上点击右键-》点击插入ACTIVAE控件-》选择MicrosoftCommunication...

    徐飞机
  • Linux养成计划(三)

    既然在虚拟机上面安装了CentOS操作系统,直接在虚拟机操作不就可以,为什么还需要远程登陆呢?在公司中每个程序员都有一个电脑,但是我们需要操作的Linux服务器...

    用户1093975
  • 零基础入门 32:修改组件的位置.宽高.旋转.缩放

    已经不止一两个同学来问过我这个问题了,如何修改一个组件的位置啊,宽高啊,旋转啊,缩放啊之类的问题,鉴于好多同学都有这个疑问,我就单独把他抽出一个小分享内容列出来...

    韩东吉
  • JDK1.9-字节流

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

    cwl_java
  • 笔记 | Linux 服务基本介绍

    悠风
  • ubuntu 16.04 安装 llvm方式1 bin方式2 apt测试

    http://releases.llvm.org/download.html#6.0.1

    iOSDevLog
  • Java|Spring Cloud Stream 体系及原理介绍

    Spring Cloud Stream 在 Spring Cloud 体系内用于构建高度可扩展的基于事件驱动的微服务,其目的是为了简化消息在 Spring Cl...

    heidsoft

扫码关注云+社区

领取腾讯云代金券