作者dzwei (Args&&... args)
看板Linux
標題[分享] rust在Linux Kernel生態圈之爭議/衝突
時間Sun Jun 1 16:48:15 2025
懶人包可以看這邊:
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://webptt.com/m.aspx?n=bbs/Linux/M.1748767698.A.3A2.html
※ 編輯: dzwei (211.76.58.247 臺灣), 06/01/2025 18:51:17
1F:推 goodyW: 這件事演到後面linus有出來說話,後續就當成小說看吧 06/01 21:16
Linus回覆的那句 其實已經定錨了
後續也沒什麼好看了XD
※ 編輯: dzwei (211.76.58.247 臺灣), 06/01/2025 22:56:13
2F:→ saxontai: 又一個在推廣原子能的?XD 06/02 00:25
一些該作者的內容不能完全認同
但針對本文的事
我覺得說得很好R
3F:推 Bencrie: 這不就常見的政治問題嗎 XD 06/02 01:21
另一個讓我沒想到的是
Linus脾氣真的收不少
整個變得很圓滑(政治意味)
※ 編輯: dzwei (211.76.58.247 臺灣), 06/02/2025 01:38:47
4F:推 nthank: Linus年紀大後脾氣真的好不少 06/02 10:55
5F:推 drm343: 老話一句,問問洛克希德 ada 怎麼被 c/c++ 取代的,再來 06/02 11:20
6F:→ drm343: 說 rust 比較好 06/02 11:20
7F:噓 brli7848: 騙點擊?都是「說書系」簡體,有看的必要嗎? 06/02 17:59
8F:噓 Aozakitouko: 連發文都不轉繁體?然後泛論一些早就已知的東西?洗 06/02 18:00
9F:→ Aozakitouko: 文章也不是這樣的吧? 06/02 18:00
10F:噓 tonytonyjan: 洗文 06/03 10:29
11F:推 CityRanger: 姆z 多洗點 這版太冷清 06/03 12:13
12F:→ leolarrel: 在科技業搞了2x年,只能說年輕時以為自己是風,懂了事後 06/04 10:10
13F:→ leolarrel: 大家都是草 06/04 10:11
14F:推 intotherain: 宗教問題 06/11 14:43
15F:推 Gold740716: 不過那個 rust 泛型簽名也太華麗 06/11 22:26
16F:推 cancelpc: YT上技術就少,內容自己判斷 07/24 07:38
17F:→ cancelpc: 跟書一樣,現在正體資源多嗎? 07/24 07:39