Linux Lab 已支持 Rust For Linux 开发,仅需 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 两个平台都会支持。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Easy_Trans 1.0.8 发布,一个注解搞定字典/外键翻译
1、升级内容 A 字典翻译添加国际化支持 B 添加simple翻译,通过一个注解即可实现外键翻译 其他表的name/title 的功能。 C 对所有返回responseBody的controller方法返回结果进行自动翻译 2、介绍 在项目开发中,借助JPA和Mybatis Plus我们已经可以做到单表查询不写SQL,但是很多时候我们需要关联字典表,关联其他表来实现字典码和外键的翻译,又要去写sql,使用 EasyTrans 你只需要在被翻译的pojo属性上加一个注解即可完成字典码/外键 翻译。 先看效果: easy trans适用于三种场景 A 我有一个id,但是我需要给前端展示他的title/name 但是我又不想做表关联查询 B 我有一个字典吗 sex 和 一个字典值0 我希望能翻译成 男 给前端展示。 C 我有一组user id 比如 1,2,3 我希望能展示成 张三,李四,王五 给前端 3、食用步骤 技术经理/架构 需要做的事情 1 、先把maven 引用加上 <dependency> <groupId>com.fhs-opensource<...
- 下一篇
Calibre 5.28 发布,功能强大的开源电子书工具
Calibre 开源项目是 Calibre 官方出的电子书管理工具。它可以查看,转换,编辑和分类所有主流格式的电子书。Calibre 是个跨平台软件,可以在 Linux、Windows 和 macOS 上运行。 Calibre 5.28.0 正式发布,此次更新内容如下: 新功能 自定义封面生成:允许将封面生成设置保存和加载为“主题” 电子书查看器:允许按 0-9 键来应用快速高亮样式 书籍详细信息面板:当点击标签/作者等时,按住 Ctrl+Shift 修饰键,现在用 "AND" 将标签添加到当前的搜索中,而不是只按 Ctrl 时使用的 "OR" 在偏好下拉菜单中增加一个选项,以在没有第三方插件的情况下重启 calibre 错误修复 编辑书籍:当重命名样式表中的类时,只识别以句号开头的类名 电子书查看器:由于 Google 结果页标记的改变,修复了 Google 中部分隐藏的查找 转换对话框:搜索替换表达式生成器:修正当文本中存在非 BMP unicode 字符时的不正确的搜索结果高亮显示 电子书查看器:当脚注链接指向<body>标签时,修复弹出的脚注空白的问题 电子书阅览器...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS关闭SELinux安全模块
- 2048小游戏-低调大师作品
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Red5直播服务器,属于Java语言的直播服务器
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7