使用 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瀏覽量
11145 -
內(nèi)核模塊
+關(guān)注
關(guān)注
0文章
10瀏覽量
4424 -
Rust
+關(guān)注
關(guān)注
1文章
241瀏覽量
7649
原文標(biāo)題:【Rust日報】2022-08-06 使用 Rust 編寫 FreeBSD 內(nèi)核模塊
文章出處:【微信號:Rust語言中文社區(qū),微信公眾號:Rust語言中文社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
如何將evkbmimxrt1170_hello_world_cm7.bin下載到 QSPI Flash?
在 MCUXpresso for VSCode for imx93EVK 中導(dǎo)入 Trustzone hello_world_ns 的示例應(yīng)用失敗,為什么?
小鵬汽車正式發(fā)布世界模型X-World技術(shù)報告
IMX93 測試hello_world應(yīng)用報錯,是什么原因?qū)е碌模?/a>
如何重新編譯內(nèi)核以啟用BINFMT_MISC支持
基于凌羽派的OpenHarmony北向應(yīng)用開發(fā):Hello World 示例應(yīng)用
Linux內(nèi)核模塊的加載機(jī)制
【迅為工業(yè)RK3568穩(wěn)定可靠】itop-3568開發(fā)板Linux驅(qū)動開發(fā)實戰(zhàn):RK3568內(nèi)核模塊符號導(dǎo)出詳解
為FreeBSD構(gòu)建一個基本的Hello World概念驗證內(nèi)核模塊
評論