你现在可以用rustup安装2021测试版了。
使用rustup default beta
切换到最新的测试版,然后你可以将你的toml文件迁移到 edition="2021" 或者用cargo new
启动一个使用21版的新项目。
关于现有项目的迁移过程的一些信息:
https://doc.rust-lang.org/cargo/commands/cargo-fix.html
陈渝老师的rcore系列操作系统课程更新了:
rCore-Tutorial-Book
在暑假期间又进行了一轮修改,算是从0.35版进化到0.50版了。请对学习用Rust写OS感兴趣的朋友看看。如果有问题、建议,发现了bug,请直接在每节下方的交互窗口留言。如果想一起来参与写作,请直接联系 陈渝或吴一凡。谢谢!本书定位是以尽量简单的编程和尽量少的OS/CPU知识来逐步设计实现一个一个的小OS,让学生知道操作系统的概念的实际体现和操作系统的全貌。经过我们讨论,虽然这本书是基于单处理器讲解的,但觉得还是要加入OS的同步互斥支持,与传统方式不同,这一章主要讲解操作系统如何支持用户态线程的同步互斥操作。所以,目前还缺的是关于同步互斥的一章,各种图,相关OS历史的介绍,相关知识点的进一步补充。争取本月完成。
Read More: https://rcore-os.github.io/rCore-Tutorial-Book-v3/
9.13 分享:
High Velocity Kernel Modules in Rust with Bento —— Samantha Miller
Bento 是 Safe Rust 实现的 linux 内核 文件系统。通过实现安全的 API 并使用安全的内核函数包装器,文件系统是用安全的 Rust 编写的。这些安全接口尽可能接近现有的用户空间(主要是标准库)接口,因此只需将 Bento 包含更改为用户空间 Rust 库和/或 bento_utils 包含,就可以将文件系统重新编译为 FUSE 文件系统。更多信息:https://github.com/smiller123/bento
这次分享主要讨论 Bento ,用于加速 Linux 内核开发的框架。目前已经为文件系统模块实现了Bento框架,并利用它实现了一个性能类似于ext4的文件系统,可以在不卸载的情况下进行升级,而且只需要15ms的停机时间。我们目前正在努力扩展Bento,以支持自定义的TCP/IP堆栈。
How can we formally verify Rust for Linux? —— Alastair Reid
在Linux中使用Rust的目的是创建更稳固、更安全的代码:通过利用Rust的语言特性和设计一个安全的API供驱动程序使用,避免内存安全问题和并发问题。该分享研究了我们如何/是否可以利用自动形式验证工具走得更远。
9.14 分享:
Rust key concepts for the Linux kernel (I) —— Miguel Ojeda
介绍 在 Linux 内核领域应用 Rust 的一些关键概念,第一部分
The Thread wrapper for Rust in Linux kernel — Boqun Feng (冯博群)
内核线程是内核中最重要的组件之一,它也是实现内核中其他核心子系统的必要环节。本专题将分享如何在Linux内核中实现Rust类线程的封装器的学习过程,以及目前的状况和未来的工作。
Implementing the Iterator trait for seq_file —— Adam Bratschi-Kaye
内核中的seq_file接口允许通过实现一个迭代可以打印的值的接口来轻松创建虚拟文件。这似乎应该直接转化为Rust的Iterator特性,其中Item实现了Display,但当然,魔鬼在细节中。该分享将展示如何为Rust代码提供seq_file的接口。
9.15 分享
Rust key concepts for the Linux kernel (II) —— Wedson Almeida Filho
介绍在 Linux 内核领域应用 Rust 的一些关键概念,第二部分
Writing an embedded SPI-based Linux driver in Rust —— Arthur Cohen, Esteban Blanc, Martin Schmidt
虽然Linux主要不是一个以嵌入式为重点的操作系统,但它仍然被用于诸如Raspberry Pi这样的平台。在这些平台上,内核模块提供了一种有用的方式,可以在内核层面与各种设备进行交互,这些设备通常使用低级协议进行通信,如SPI或I2C。
在这种工作负载中使用Rust有很多优势,虽然这些协议的内核API已经被尝试和测试了很长时间,但目前还没有Rust的抽象。
在该分享中,将谈论在ARM64平台上为Linux带来一个安全的Rust的SPI协议的抽象,以及如何使用它来实现一个简单的设备驱动程序。该分享将与C语言的原始实现进行比较,后者提供了同样多的功能。最后,将深入探讨所使用的技术和他们使用Rust-for-Linux的经验。
以上三天的研讨会,应该是线下的,因为并没有提供线上参与链接。
对此话题感兴趣的可以关注:https://github.com/Rust-for-Linux/linux,
也可以登记参加在线讨论:https://rust-for-linux.zulipchat.com
研讨会官网:https://kangrejos.com/
谷歌发布了一篇名为在Chrome中更安全地使用C++
,它有一些关于这些安全问题如何困扰Chrome和Android代码库的安全报告的链接,这部分链接内提到了Rust。
Read More: https://docs.google.com/document/d/e/2PACX-1vRZr-HJcYmf2Y76DhewaiJOhRNpjGHCxliAQTBhFxzv1QTae9o8mhBmDl32CRIuaWZLt5kVeH9e9jXv/pub
Tokio Cosole
开发日记#1自从几个月前开始制作
Tokio Console
原型以来,我们一直在努力工作,把它变成一个很棒的异步任务调试器。我们想围绕它的进展情况提供一些集中的更新。
Read More: https://tokio.rs/blog/2021-09-console-dev-diary-1
最值得激动的新功能当然是:
simd
和simd-nightly
特性使得支持稳定和不稳定的SIMD
Read More: https://docs.rs/zerocopy/0.6.0/zerocopy/
rpg-cli
发布1.0版本!rpg-cli是一个用Rust编写的极简主义computer RPG。它的命令行界面可以作为CD
的替代品,当你改变目录时,你会随机遇到敌人。
Github: https://github.com/facundoolano/rpg-cli/
第 407 期。
Read More: https://this-week-in-rust.org/blog/2021/09/08/this-week-in-rust-407/
From 日报小组 Cupnfish
社区学习交流平台订阅:
Rust.cc 论坛: 支持 rss
微信公众号:Rust 语言中文社区