使用 Rust 编写 FreeBSD 内核模块
目前主流的操作系统内核都是用 C/C++ 编写的,这些语言在避免常见的安全问题方面捉襟见肘。Rust 等现代语言默认提供更好的安全保证,并防止许多常见的内存安全漏洞。
在这篇文章中,我们将简要介绍 Rust 为实现这一安全目标所做的努力,并为 FreeBSD 构建一个基本的Hello World概念验证内核模块。
模式匹配兼容性策略
当使用枚举定义不同类型的数据时会非常方便,但是作为库的作者需要考虑的更多一点,比如 enum 字段拓展后的兼容性问题。假设开始的定义为:


如何编写库代码才能用使用者感知到这个变化而不产生 breaking change 呢,这里作者结合自己编写库的经验给出了三个场景下的解决方案。分别是:
Non-exhaustive enums
Translating typical Error inheritance
Enums with an “open-ended” variant
学习使用 Rust 迭代器和组合子
Rust 的迭代器搭配组合器非常有趣,可以让你的代码更简洁、更实用。这篇文档侧重于如何借助迭代器使您的代码更易于阅读或重构。 ReadMore:https://kerkour.com/rust-combinators
审核编辑:刘清
-
freebsd
+关注
关注
0文章
37浏览量
11089 -
内核模块
+关注
关注
0文章
10浏览量
3761 -
Rust
+关注
关注
1文章
240浏览量
7481
原文标题:【Rust日报】2022-08-06 使用 Rust 编写 FreeBSD 内核模块
文章出处:【微信号:Rust语言中文社区,微信公众号:Rust语言中文社区】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
Linux内核模块的加载机制
【迅为工业RK3568稳定可靠】itop-3568开发板Linux驱动开发实战:RK3568内核模块符号导出详解
【OK3506-S12Mini试用评测】编译你的第一个内核模块
【Milk-V Duo S 开发板免费体验】2 - 安装编译环境并测试Hello world!
迅为RK3568开发板内核模块实现-查看模块信息
迅为RK3568开发板内核模块实现-模块加载与卸载
迅为RK3568开发板内核模块实现-编译模块
迅为RK3568开发板内核模块实现-编写 Makefile
在mimxrt1170_evk调试hello_world出现硬件传输错误怎么解决?
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-Linux驱动模块之带参数的驱动模块
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-Linux驱动模块之helloworld驱动
飞凌嵌入式ElfBoard ELF 1板卡-Linux驱动模块之带参数的驱动模块
飞凌嵌入式ElfBoard ELF 1板卡-Linux驱动模块之helloworld驱动
使用MCUXpresso for VS Code插件开发Zephyr的hello world

为FreeBSD构建一个基本的Hello World概念验证内核模块
评论