使用 Rust 編寫 FreeBSD 內(nèi)核模塊
目前主流的操作系統(tǒng)內(nèi)核都是用 C/C++ 編寫的,這些語(yǔ)言在避免常見(jiàn)的安全問(wèn)題方面捉襟見(jiàn)肘。Rust 等現(xiàn)代語(yǔ)言默認(rèn)提供更好的安全保證,并防止許多常見(jià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ì)非常方便,但是作為庫(kù)的作者需要考慮的更多一點(diǎn),比如 enum 字段拓展后的兼容性問(wèn)題。假設(shè)開(kāi)始的定義為:


如何編寫庫(kù)代碼才能用使用者感知到這個(gè)變化而不產(chǎn)生 breaking change 呢,這里作者結(jié)合自己編寫庫(kù)的經(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瀏覽量
11123 -
內(nèi)核模塊
+關(guān)注
關(guān)注
0文章
10瀏覽量
4391 -
Rust
+關(guān)注
關(guān)注
1文章
240瀏覽量
7586
原文標(biāo)題:【Rust日?qǐng)?bào)】2022-08-06 使用 Rust 編寫 FreeBSD 內(nèi)核模塊
文章出處:【微信號(hào):Rust語(yǔ)言中文社區(qū),微信公眾號(hào):Rust語(yǔ)言中文社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
基于凌羽派的OpenHarmony北向應(yīng)用開(kāi)發(fā):Hello World 示例應(yīng)用
Linux內(nèi)核模塊的加載機(jī)制
VS Code運(yùn)行 pytest_hello_world.py
【迅為工業(yè)RK3568穩(wěn)定可靠】itop-3568開(kāi)發(fā)板Linux驅(qū)動(dòng)開(kāi)發(fā)實(shí)戰(zhàn):RK3568內(nèi)核模塊符號(hào)導(dǎo)出詳解
為FreeBSD構(gòu)建一個(gè)基本的Hello World概念驗(yàn)證內(nèi)核模塊
評(píng)論