看板 LinuxDev 關於我們 聯絡資訊
※ [本文轉錄自 Linux 看板 #1ZGED4xI ] 作者: dzwei (Args&&... args) 看板: Linux 標題: [閒聊] Linux Kernel 6: Rust lang 支援 時間: Sat Oct 8 10:41:04 2022 https://tinyurl.com/kx9z6pks Linux Torvalds 與多數Kernel開發者 也一致同意Rust是第二個開發語言了 畢竟Rust現代、快速、優雅 邊界檢查與執行續安全也包含在裡面 有Modern C++的特性 但是沒有C++的歷史包袱 不過6.0很多東西還沒commit進去 可能要到6.1才有比較完整的支援 這裡有Binging相關的文章 https://lwn.net/Articles/829858/ 還有請大神來補充 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.24.236.14 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1665196868.A.ED2.html ※ 編輯: dzwei (114.24.236.14 臺灣), 10/08/2022 10:43:44 ※ 編輯: dzwei (114.24.236.14 臺灣), 10/08/2022 10:44:32
Bencrie: 這樣可以期待 vendor 可以少寫一些爛 code 是嗎 XD 10/08 12:33
是 Rust目前的目的 主要是針對Driver那塊 schd mm vm那類 目前看來短期好像沒有要改寫的計畫 不過Binding的API文件 內容還太少 正規C語言Linux開發者 短時間應該也不太好上路 Ruest的確是不想用C++的首選沒錯 ※ 編輯: dzwei (114.24.236.14 臺灣), 10/08/2022 13:16:43 wtchen:轉錄至看板 C_and_CPP 10/08 15:49
ivon852: Asashi Lina最近一直猛提這件事ww 10/08 21:01
ivon852: Rust已成為熱門語言...rewrite everything in rust 10/08 21:02
其實是新的東西 能rust寫就不要用C 他那個記憶體管理的方式 是C++ 的 * Smart Pointer * R-Value Reference (Perfect Forward) * Scope out Safe Drop (包括thread的lock) 那套RAII 高效能記憶體管理太好太方便了 語法糖下這些可以比C++精簡很多 同期的Go Lang 這點就不是很好 Go Lang好像還在依賴GC的管理機制... 不過其實rust 有一個讓人又愛又恨的缺點 就是編譯速度很慢 因為檢查的東西很多 ※ 編輯: dzwei (114.24.236.14 臺灣), 10/08/2022 21:32:22
s9209122222: 看來是時候該學程式語言了,會比 Java 簡單嗎? 10/08 21:57
s9209122222: 一直覺得 Java 語法對於我這個程設初學者很莫名其妙 10/08 21:59
s9209122222: ,不像 C 比較好懂…… 10/08 21:59
這裡是我相見恨晚的電子書 https://tinyurl.com/mtmnnr6a 剛入門的時候 那本聖經 The rust Programing lang 真的讀起來的痛苦程度 不會小於effective C++那類XD 不過建議還是要有modern C++的觀念再開始學rust 不然所有權那邊會死透 其實rust lang的本質 就是把C++03的包袱拿掉 全力專注在modern C++ 並建立語法糖 還有一點就是rust的標準後端是LLVM 雖然也有實驗性的GCC後端 但一些cross-compile的環境可能不會很好用 此時突然羨慕risc-V陣營預設的LLVM後端(?) 其實以前發過一篇廢文 但內容可以檢視自己對Modern C++的基本概念了解多少 https://tinyurl.com/yufrv7hh ※ 編輯: dzwei (114.24.236.14 臺灣), 10/08/2022 22:46:20
Bencrie: 我等 firefox 打贏 chrome 再來學好了 10/08 23:57
其實這樣比不準 https://tinyurl.com/2p92eh6t 因為rust只佔了firefox不到10%... ※ 編輯: dzwei (114.24.236.14 臺灣), 10/09/2022 00:04:23
Bencrie: 但是比例會上升吧,moz://a 發明的東西當然自己要捧場 XD 10/09 00:07
好像好幾年了 都還是這個比例 目前三巨頭 Apple Google M$ 其實也只有M$比較積極在推Rust Google總不能砸了自家很驕傲的Go-lang 只是Linux Kernel把Rust變成第二語言 倒是出乎我的意料之外 連很嘴的Linus都很看好這點 ※ 編輯: dzwei (114.24.236.14 臺灣), 10/09/2022 00:12:05
roccqqck: golang用途不一樣 10/09 00:24
印象中主要是給web後端用的 但是開發是基於C而非C++ 所以剛接觸的那陣子 有人說有機會放進去C寫的Linux Kernel裡面 但我覺得Go lang真的太難學了 還有那個文件系統 所以很快就放棄了XD 我覺得rust比較偏向軟體面 雖然說rust是有可以用於embedded的候選 但沒想到Linux直接這樣上了
roccqqck: google在研發另一個叫carbon的語言要取代C++ 10/09 00:24
roccqqck: discord cloudflare都在用rust 10/09 00:25
roccqqck: 還有facebook 10/09 00:25
感謝補充資訊
Bencrie: C++ 每隔一陣子就會自己取代自己 10/09 00:26
C++2X那個opt 就是rust的opt呀 但是沒有rust簡潔易用 所以C++2X其實讓我蠻失望的XD
roccqqck: carbon對c++ 有點像是kotlin對java 10/09 00:27
roccqqck: https://www.ithome.com.tw/news/152062 10/09 00:27
對耶 google是Carbon才是 ※ 編輯: dzwei (114.24.236.14 臺灣), 10/09/2022 00:39:13
greedycat: Driver 要改用 rust 寫了嗎?以後面豬屎屋難道要考 rus 10/09 04:29
greedycat: t 可以等我進去再改嗎QQ 10/09 04:29
沒那麼快啦XD 保守估計也要五年 也搞不好這五年rust就撞壁了(?) ※ 編輯: dzwei (114.24.236.14 臺灣), 10/09/2022 16:49:38
cs8425: golang要對標應該是java跟.net 都有runtime跟gc 10/09 20:26
roccqqck: go對手應該是java沒錯 不過go事實上沒有jvm那種runtime 10/09 21:08
roccqqck: 10/09 21:08
roccqqck: 取而代之是超級簡單的cross compile成binary 10/09 21:08
roccqqck: go語法滿簡單的比java .net簡單 10/09 21:09
roccqqck: 我覺得跟kotlin或typescript差不多 10/09 21:09
roccqqck: rust語法據說也很簡單 它難的地方是記憶體的機制 10/09 21:10
roccqqck: 但是rust只要能編譯過 記憶體就是安全的 10/09 21:14
dzwei: let s: str = "mystr" 10/09 21:44
dzwei: let s: &str = "mystr"; 10/09 21:45
dzwei: 第一個不會過 第二個會過 熟悉C/C++的人 看到這個 馬上就 10/09 21:46
dzwei: 能理解成 const char* str = "mystr" 10/09 21:46
dzwei: 就知道為啥要加&才能過編譯了 10/09 21:47
dzwei: 如果let沒有 :xxx 這個後綴 建議理解成modern C++的auto 10/09 21:48
dzwei: auto x = 10; x = "mystr"; 編譯不過 因為x已經被推論成int 10/09 21:49
dzwei: let mut x = 10; x = "mystr";也不會過 理由如上 10/09 21:50
dzwei: rust與C++型別的觀念大致上是互通的 10/09 21:51
dzwei: 然後 a=b C++預設是copy by value,而rust是類似C++的 10/09 21:54
dzwei: std::move。 10/09 21:55
dzwei: let本身就有C++的constexpr的意義在裡面 10/09 21:55
※ 發信站: 批踢踢實業坊(ptt.cc) ※ 轉錄者: sivle (202.39.11.150 臺灣), 10/11/2022 13:56:27