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

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

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

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

評論