使用 Rust 編寫 FreeBSD 內(nèi)核模塊
目前主流的操作系統(tǒng)內(nèi)核都是用 C/C++ 編寫的,這些語言在避免常見的安全問題方面捉襟見肘。Rust 等現(xiàn)代語言默認(rèn)提供更好的安全保證,并防止許多常見的內(nèi)存安全漏洞。
在這篇文章中,我們將簡(jiǎn)要介紹 Rust 為實(shí)現(xiàn)這一安全目標(biāo)所做的努力,并為 FreeBSD 構(gòu)建一個(gè)基本的Hello World概念驗(yàn)證內(nèi)核模塊。
模式匹配兼容性策略
當(dāng)使用枚舉定義不同類型的數(shù)據(jù)時(shí)會(huì)非常方便,但是作為庫的作者需要考慮的更多一點(diǎn),比如 enum 字段拓展后的兼容性問題。假設(shè)開始的定義為:

如何編寫庫代碼才能用使用者感知到這個(gè)變化而不產(chǎn)生 breaking change 呢,這里作者結(jié)合自己編寫庫的經(jīng)驗(yàn)給出了三個(gè)場(chǎng)景下的解決方案。分別是:
Non-exhaustive enums
Translating typical Error inheritance
Enums with an “open-ended” variant
學(xué)習(xí)使用 Rust 迭代器和組合子
Rust 的迭代器搭配組合器非常有趣,可以讓你的代碼更簡(jiǎn)潔、更實(shí)用。這篇文檔側(cè)重于如何借助迭代器使您的代碼更易于閱讀或重構(gòu)。 ReadMore:https://kerkour.com/rust-combinators
審核編輯:劉清
-
freebsd
+關(guān)注
關(guān)注
0文章
37瀏覽量
10959 -
內(nèi)核模塊
+關(guān)注
關(guān)注
0文章
10瀏覽量
3244 -
Rust
+關(guān)注
關(guān)注
1文章
233瀏覽量
7024
原文標(biāo)題:【Rust日?qǐng)?bào)】2022-08-06 使用 Rust 編寫 FreeBSD 內(nèi)核模塊
文章出處:【微信號(hào):Rust語言中文社區(qū),微信公眾號(hào):Rust語言中文社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
迅為RK3568開發(fā)板內(nèi)核模塊實(shí)現(xiàn)-查看模塊信息
迅為RK3568開發(fā)板內(nèi)核模塊實(shí)現(xiàn)-模塊加載與卸載
迅為RK3568開發(fā)板內(nèi)核模塊實(shí)現(xiàn)-編譯模塊
迅為RK3568開發(fā)板內(nèi)核模塊實(shí)現(xiàn)-編寫 Makefile
在mimxrt1170_evk調(diào)試hello_world出現(xiàn)硬件傳輸錯(cuò)誤怎么解決?
嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-Linux驅(qū)動(dòng)模塊之帶參數(shù)的驅(qū)動(dòng)模塊
嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-Linux驅(qū)動(dòng)模塊之helloworld驅(qū)動(dòng)
飛凌嵌入式ElfBoard ELF 1板卡-Linux驅(qū)動(dòng)模塊之帶參數(shù)的驅(qū)動(dòng)模塊
飛凌嵌入式ElfBoard ELF 1板卡-Linux驅(qū)動(dòng)模塊之helloworld驅(qū)動(dòng)
使用MCUXpresso for VS Code插件開發(fā)Zephyr的hello world

為THS3001構(gòu)建一個(gè)簡(jiǎn)單的SPICE模型

linux驅(qū)動(dòng)程序如何加載進(jìn)內(nèi)核
NVIDIA全面轉(zhuǎn)向開源GPU內(nèi)核模塊

評(píng)論