[分享] rust在Linux Kernel生態圈之爭議/衝突
懶人包可以看這邊:
Rust和Linux之争,到底在争什么?
https://youtu.be/ONZZvc_IqQg?si=BztP9lTC0iqKWrrY
Rust和Linux的冲突已经超越技术层面
https://youtu.be/tV4SEMSdjXc?si=k6ULNl1_Rcp6HyxS
如影片所說,這種神仙打架
不是我們這種嗑瓜觀眾群
想看就看的到的
這邊快速整理:
-----------------------------------------------
雖然6.2版本開始引入rust
作者Linus也表示相當期待
但還是有原本Kernel組的人
對此感冒
包括著名的檔案系統(e2fs)作者: 曹子德Ts'o
(試著下這個指令`man e2fsck`
然後看最下面的作者是誰XD)
甚至鬧到高峰會的YT都知道
留言區會炸鍋
所幸先關閉留言XD
https://youtu.be/WiPp9YEBV0Q?si=vST86iObqjxZGNdP
另一個則是
rust陣營想幫DMA加入一個好用的rust版本DMA API
然後被owner打槍 不是技術上的理由
而是owner拒絕C語言以外的MR
這個事情燒到
蘋果M系列porting給Linux的maintainer
後面退出kerner的maintainer
可見燒得有多大
--------------------------------------------------
這邊作者說的
rust result<T,E> + match
這種機制
對比c語言的手動確認
根本上可以避免很多難以預期的事情發生
https://i.postimg.cc/FzLgpyBb/image.png

這邊用chatgpt產生一些pseudo code
C:
struct inode *
iget_locked(struct super_block *sb, unsigned long ino) {
struct inode *inode;
inode = find_inode(sb, ino);
if (inode) {
return inode;
}
inode = alloc_inode();
if (!inode) {
return NULL;
}
inode->state = I_NEW;
if (init_inode(inode)) {
unlock_new_inode(inode);
return inode;
} else {
iget_failed(inode);
return NULL;
}
}
Rust:
fn
get_or_create_inode(&self, ino: Ino)
-> Result <
Either<
ARc< INode<T> >, inode::New<T>
>,
Error
>
{
if let Some(inode) = self.find_inode(ino) {
return Ok(Either::Right(inode));
}
let new_inode = inode::New::new(ino)?;
// 新 inode 需要初始化
Ok(Either::Left(new_inode))
}
註:
各位想想看
自己debug的時候打的patch
幾成是在code的某段加個if/else
來處理沒預期到的scenario
(x)
補充
什么是正确的错误处理方法
https://youtu.be/_p0SgfajQFo?si=VOqQdMW2ehH1JCi8
---------------------------------------------------
以上大概是內容 也希望拋磚引玉
希望版上的Linux高手
能來分享看法
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 211.76.58.247 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1748767698.A.3A2.html
※ 編輯: dzwei (211.76.58.247 臺灣), 06/01/2025 18:51:17
推
06/01 21:16,
1天前
, 1F
06/01 21:16, 1F
Linus回覆的那句 其實已經定錨了
後續也沒什麼好看了XD
※ 編輯: dzwei (211.76.58.247 臺灣), 06/01/2025 22:56:13
→
06/02 00:25,
1天前
, 2F
06/02 00:25, 2F
一些該作者的內容不能完全認同
但針對本文的事
我覺得說得很好R
推
06/02 01:21,
1天前
, 3F
06/02 01:21, 3F
另一個讓我沒想到的是
Linus脾氣真的收不少
整個變得很圓滑(政治意味)
※ 編輯: dzwei (211.76.58.247 臺灣), 06/02/2025 01:38:47
推
06/02 10:55,
1天前
, 4F
06/02 10:55, 4F
推
06/02 11:20,
1天前
, 5F
06/02 11:20, 5F
→
06/02 11:20,
1天前
, 6F
06/02 11:20, 6F
噓
06/02 17:59,
21小時前
, 7F
06/02 17:59, 7F
噓
06/02 18:00,
21小時前
, 8F
06/02 18:00, 8F
→
06/02 18:00,
21小時前
, 9F
06/02 18:00, 9F
噓
06/03 10:29,
4小時前
, 10F
06/03 10:29, 10F
推
06/03 12:13,
2小時前
, 11F
06/03 12:13, 11F
Linux 近期熱門文章
PTT數位生活區 即時熱門文章