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

    文章

    36

    浏览量

    10723
  • 内核模块
    +关注

    关注

    0

    文章

    10

    浏览量

    3062
  • Rust
    +关注

    关注

    1

    文章

    225

    浏览量

    6447

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

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

收藏 人收藏

    评论

    相关推荐

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

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

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

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

    修改蜂鸟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 1224次阅读
    RZ/G2L Linux系统如何添加新的<b class='flag-5'>内核模块</b>

    freebsd为什么比linux稳定

    FreeBSD自由、开源的类Unix操作系统,它以其卓越的稳定性而闻名。与Linux相比,FreeBSD在稳定性方面有以下几个方面的优势: 代码质量和设计哲学:
    的头像 发表于 12-08 10:27 864次阅读

    c语言hello world程序编写

    C语言是种非常经典和常用的编程语言,而"Hello world"程序是每一个编程入门者的必修课。它是用来熟悉编程语言基本语法、环境配置,以及验证
    的头像 发表于 11-26 09:23 1511次阅读

    我的第一个UVM代码——Hello world

    `uvm_component_utils有关 仿真命令: irun -sv -uvmhome \\\\ /.../ies/tools/methodology/UVM/CDNS-1.2/sv \\\\ hello_world.sv 仿真结果如下: 最后,再用张图来描述
    发表于 11-03 10:18

    深入分析Linux kernel安全特性: 内核模块签名

    顾名思义,在开启该功能之后,内核在加载内核模块时,会对内核模块的签名进行检查。
    的头像 发表于 10-18 12:32 2562次阅读

    RA-RTT体验RT-Thead超级简单的hello world!

    在这篇帖子上,我们增加自己的代码,实现串口输出hello world等功能
    的头像 发表于 10-12 14:36 347次阅读
    RA-RTT体验RT-Thead超级简单的<b class='flag-5'>hello</b> <b class='flag-5'>world</b>!

    内核模块知识:多个源文件编译生成内核模块

    多个源文件编译生成内核模块 例如,将hello.c和world.c两c文件编译生成
    的头像 发表于 09-26 16:58 638次阅读

    内核模块依赖什么意思

    通常情况下,模块只使用内核导出的符号,自己不导出符号。但是如果
    的头像 发表于 09-26 16:51 405次阅读

    创建简单Hello World Linux应用程序的过程

    本教程将向您介绍创建简单的Hello World Linux应用程序的过程,然后将该应用程序加载到运行ARM嵌入式Linux的Cortex-A9固定虚拟平台(FVP)模型上。 Co
    发表于 08-28 06:32

    让ChatGPT写内核模块

    笔者最近看到这样篇文章 ,原作者让 ChatGPT 写内核模块,要求实现的功能是:每 5 秒向控制台打印句 "
    发表于 08-17 09:30 358次阅读

    如何使用ARM编译器构建Hello World

    在本教程中,我们将展示如何使用Arm构建名为hello_world.C的简单C程序DS-5中的编译器工具链。 您可以找到Arm编译器工具链的概述。本教程假定您已安装并获得Arm D
    发表于 08-08 07:55

    如何使用Arm Compiler 6构建Hello World

    Virtual上调试站台 本Arm®DS-5 Development Studio教程介绍了基本的Hello World C程序。它将是 如果您想在Armv8平台上进行裸机软件开
    发表于 08-08 07:41