0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看威廉希尔官方网站 视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

工程师邓生 来源:Rust语言中文社区 作者:Koalr 2022-09-07 10:14 次阅读

使用 Rust 编写 FreeBSD 内核模块

目前主流的操作系统内核都是用 C/C++ 编写的,这些语言在避免常见的安全问题方面捉襟见肘。Rust 等现代语言默认提供更好的安全保证,并防止许多常见的内存安全漏洞。

在这篇文章中,我们将简要介绍 Rust 为实现这一安全目标所做的努力,并为 FreeBSD 构建一个基本的Hello World概念验证内核模块。

模式匹配兼容性策略

当使用枚举定义不同类型的数据时会非常方便,但是作为库的作者需要考虑的更多一点,比如 enum 字段拓展后的兼容性问题。假设开始的定义为:

而后增加了Http2



如何编写库代码才能用使用者感知到这个变化而不产生 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

    浏览量

    10782
  • 内核模块
    +关注

    关注

    0

    文章

    10

    浏览量

    3091
  • Rust
    +关注

    关注

    1

    文章

    229

    浏览量

    6614

原文标题:【Rust日报】2022-08-06 使用 Rust 编写 FreeBSD 内核模块

文章出处:【微信号:Rust语言中文社区,微信公众号:Rust语言中文社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    THS3001构建简单的SPICE模型

    电子发烧友网站提供《THS3001构建简单的SPICE模型.pdf》资料免费下载
    发表于 10-29 10:11 0次下载
    <b class='flag-5'>为</b>THS3001<b class='flag-5'>构建</b><b class='flag-5'>一</b><b class='flag-5'>个</b>简单的SPICE模型

    linux驱动程序如何加载进内核

    ,需要了解Linux内核的基本概念和API。以下是些关键概念: 1.1 内核模块:Linux内核模块
    的头像 发表于 08-30 15:02 492次阅读

    NVIDIA全面转向开源GPU内核模块

    借助 R515 驱动程序,NVIDIA 于 2022 年 5 月发布了套开源的 Linux GPU 内核模块,该模块采用双许可证,即 GPL 和 MIT 许可。初始版本主要面向数据中心计算 GPU,而 GeForce 和工作站
    的头像 发表于 07-25 09:56 436次阅读
    NVIDIA全面转向开源GPU<b class='flag-5'>内核模块</b>

    英伟达将全面转向开源GPU内核模块

    英伟达公司近期宣布了项重大决策,即全面转向开源GPU内核模块,并计划最终以此取代闭源驱动程序。这战略转变标志着英伟达在开源领域迈出了重要步,旨在为用户提供更强大、更全面的Linu
    的头像 发表于 07-19 15:26 571次阅读

    ESP8266_RTOS_SDK-v3.4的构建错误如何解决?

    : /d/8266/ESP8266_RTOS_SDK-v3.4/examples/get-started/hello_world/build/hello-world.elf] 错误 1 15:56:16 构建完成(用时 2 分
    发表于 07-08 07:59

    鸿蒙OpenHarmony【轻量系统 编写“Hello World”程序】 (基于Hi3861开发板)

    下方将通过修改源码的方式展示如何编写简单程序,输出“Hello world”。请在下载的源码目录中进行下述操作。
    的头像 发表于 05-16 18:15 1002次阅读
    鸿蒙OpenHarmony【轻量系统 编写“<b class='flag-5'>Hello</b> <b class='flag-5'>World</b>”程序】 (基于Hi3861开发板)

    鸿蒙OpenHarmony【小型系统 编写“Hello World”程序】 (基于Hi3516开发板)

    展示如何在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“Hello World!”。
    的头像 发表于 05-10 16:26 715次阅读
    鸿蒙OpenHarmony【小型系统 编写“<b class='flag-5'>Hello</b> <b class='flag-5'>World</b>”程序】 (基于Hi3516开发板)

    鸿蒙OpenHarmony【标准系统 编写“Hello World”程序】(基于RK3568开发板)

    下方将展示如何在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“Hello World!”。
    的头像 发表于 05-09 17:58 897次阅读
    鸿蒙OpenHarmony【标准系统 编写“<b class='flag-5'>Hello</b> <b class='flag-5'>World</b>”程序】(基于RK3568开发板)

    鸿蒙OpenHarmony【标准系统编写“Hello World”程序】 (基于RK3568开发板)

    编写“Hello World”程序 下方将展示如何在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“Hello W
    的头像 发表于 04-24 17:32 822次阅读
    鸿蒙OpenHarmony【标准系统编写“<b class='flag-5'>Hello</b> <b class='flag-5'>World</b>”程序】 (基于RK3568开发板)

    鸿蒙OpenHarmony【小型系统编写“Hello World”程序】 (基于Hi3516开发板)

    下方将展示如何在单板上运行第一个应用程序,其中包括新建应用程序、编译、烧写、运行等步骤,最终输出“Hello World!”。
    的头像 发表于 04-22 21:55 368次阅读
    鸿蒙OpenHarmony【小型系统编写“<b class='flag-5'>Hello</b> <b class='flag-5'>World</b>”程序】 (基于Hi3516开发板)

    鸿蒙OpenHarmony【轻量系统编写“Hello World”程序】 (基于Hi3861开发板)

    下方将通过修改源码的方式展示如何编写简单程序,输出“Hello world”。请在下载的源码目录中进行下述操作。
    的头像 发表于 04-21 21:44 343次阅读
    鸿蒙OpenHarmony【轻量系统编写“<b class='flag-5'>Hello</b> <b class='flag-5'>World</b>”程序】 (基于Hi3861开发板)

    用于EK-RA8D1 MIPI LCD显示器的GUIX Hello World

    电子发烧友网站提供《用于EK-RA8D1 MIPI LCD显示器的GUIX Hello World.pdf》资料免费下载
    发表于 02-20 09:48 0次下载
    用于EK-RA8D1 MIPI LCD显示器的GUIX <b class='flag-5'>Hello</b> <b class='flag-5'>World</b>

    FreeBSD也要 “锈化”?

    FreeBSD 开发者正在考虑允许在 FreeBSD 基础系统中使用 Rust 编程语言的好处和成本。
    的头像 发表于 01-24 10:22 568次阅读
    <b class='flag-5'>FreeBSD</b>也要 “锈化”?

    修改蜂鸟E203 v2内核源码后,hello world报错是哪里出了问题?

    修改蜂鸟E203 v2内核源码后,测试“hello world”程序,vivado仿真可以顺利通过,再输出界面打印出“hello world
    发表于 01-10 06:12

    RZ/G2L Linux系统如何添加新的内核模块

    RZ/G2L Linux系统的镜像基于yocto构建,本篇介绍如何添加新的内核模块
    的头像 发表于 01-04 12:19 1794次阅读
    RZ/G2L Linux系统如何添加新的<b class='flag-5'>内核模块</b>