内容简介:1. 开源之夏 今年的开源之夏活动马上接近尾声,开源之夏是由中科院软件所组织的暑期开源活动,主要面向高校学生和开源社区,由开源社区出项目和 Mentor,面向高校召集学生报名开展 3 个月的开源项目开发活动。 泰...
1. 开源之夏
今年的开源之夏活动马上接近尾声,开源之夏是由中科院软件所组织的暑期开源活动,主要面向高校学生和开源社区,由开源社区出项目和 Mentor,面向高校召集学生报名开展 3 个月的开源项目开发活动。
泰晓科技技术社区每年都参与了该项活动,今年更是提报了 5 个左右的项目,相关信息见:第2届开源之夏即将开启学生报名阶段,有社区老人指导做开源项目,还有奖金领,你报名了吗?
目前活动即将结束,提报的几个项目也陆续进入到紧张的代码集成和总结阶段,相关项目的开发过程见:Issues · 泰晓科技/Cloud Lab - Gitee.com
由于部分学生在开展项目的过程中,有的在企业实习,有的在撰写论文,所以开发时间其实是非常紧张的,而参与指导的 Mentor 们自己本身有繁重的企业项目工作,所以能取得目前的进展还是非常不容易的。
感谢所有实实在在投入精力参与指导的 Mentor 们,也祝贺花费时间思考和动手并获得一定提升的同学们。欢迎同学们关注并报名明年社区即将提报的项目 ;-)
2. Rust For Linux
今年提报的项目之一是:Linux Lab 新增 Rust for Linux 开发支持。
Rust For Linux 项目旨在允许使用 Rust 开发 Linux 内核模块,从而把 Rust 的一些特性带入到驱动开发领域,以便消除更多的 UB 行为,可参考 Rust For Linux。
该项目提报的时候,Rust For Linux 已经进入到了 linux-next 分支,我们本来预期在 Linux v5.13/v5.14 的时候 Rust For Linux 能进入到主线。但是,现实是,在具体提交的过程中,包括 Linus 在内的大佬提出了不少改进的建议,所以开发者一直在完善和修复遗留的问题:
[PATCH 00/13] [RFC] Rust support
3. 在 Linux Lab 中极速体验用 Rust 开发 Linux 内核模块
基于 Rust For Linux “缓慢”的 upstream 进展,短期内直接在 Linux 主线分支或 tag 中体验 Rust For Linux 就不实际了,所以我们转而采用了 Linux Lab 的 kernel-feature 特性功能,以独立 patchset 的方式来轻量级管理和快速体验一个新的内核特性,更为重要的是,一条命令就能使用和验证新特性。
考虑到需要保留一些时间作更充分的测试,目前 Linux Lab 新建了一个名叫 “rust”的分支来管理 Rust For Linux 功能,在 rust 分支下面,用这三条命令就可以快速体验:
// 用 x86_64/pc 这块板子
$ make BOARD=x86_64/pc
// 从默认的 v5.1 克隆一套 v5.13 内核配置,最新的 patchset 只能打到 v5.13 上
$ make kernel-clone LINUX_NEW=v5.13
// 直接使能 rust for linux, 编译,启动,并插入和移除 rust_print 模块
$ make test f=rust m=rust_print FPL=0
...
module: modprobe rust_print
[ 3.742751] rust_print: loading out-of-tree module taints kernel.
[ 3.743931] rust_print: Rust printing macros sample (init)
[ 3.744587] rust_print: Emergency message (level 0) without args
[ 3.745338] rust_print: Alert message (level 1) without args
[ 3.746119] rust_print: Critical message (level 2) without args
[ 3.746939] rust_print: Error message (level 3) without args
[ 3.747723] rust_print: Warning message (level 4) without args
[ 3.748499] rust_print: Notice message (level 5) without args
[ 3.749420] rust_print: Info message (level 6) without args
[ 3.750458] rust_print: A line that is continued without args
[ 3.751253] rust_print: Emergency message (level 0) with args
[ 3.752015] rust_print: Alert message (level 1) with args
[ 3.752679] rust_print: Critical message (level 2) with args
[ 3.753397] rust_print: Error message (level 3) with args
[ 3.754076] rust_print: Warning message (level 4) with args
[ 3.754846] rust_print: Notice message (level 5) with args
[ 3.755495] rust_print: Info message (level 6) with args
[ 3.756142] rust_print: A line that is continued with args
...
手头有 Linux Lab Disk 的同学可以直接体验了,在 labs/linux-lab 目录下更新仓库并 checkout rust 分支即可,之后的用法同上:
$ git fetch --all
$ git checkout -b rust origin/rust
也可以进一步更新到最新的镜像,新镜像支持 llvm,这样运行的时候就不需要下载 llvm了:
$ cd /path/to/cloud-lab
$ git fetch --all
$ git checkout next
$ git pull
$ tools/docker/rerun linux-lab
手头没有 Linux Lab Disk 的同学可以去某宝检索集成了 Linux Lab 的“Linux Lab真盘”。

动手能力较强,喜欢折腾的同学也可以自行摸索并安装 Linux Lab,安装完记得顺手给个 Star 哈:
4. 后续计划
预计在 2 周左右,会把该功能合并到 Linux Lab 的 next 分支,随后再发布到 v0.8-rc3,敬请期待,v0.8 正式版预计也会在一个月左右发布。
另外,x86_64/pc board 将升级内核版本到 v5.13,并支持 LLVM 编译。
接下来会陆续合并对 openEuler 内核开发的支持,包括 x86_64 和 aarch64 两个平台都会支持。
以上所述就是小编给大家介绍的《Linux Lab 已支持 Rust For Linux 开发,仅需 3 条命令即可极速体验》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web 2.0 Architectures
Duane Nickull、Dion Hinchcliffe、James Governor / O'Reilly / 2009 / USD 34.99
The "Web 2.0" phenomena has become more pervasive than ever before. It is impacting the very fabric of our society and presents opportunities for those with knowledge. The individuals who understand t......一起来看看 《Web 2.0 Architectures》 这本书的介绍吧!
