RFC สำหรับการรองรับ Rust ในเคอร์เนล Linux
(lkml.org)-
สรุปเหตุผลว่าทำไมจึงควรใช้ Rust เป็นภาษาที่สองของเคอร์เนล
-
ไม่ได้มีเป้าหมายเพื่อเขียนเคอร์เนลส่วนแกนหรือซับซิสเต็มหลักใหม่ แต่เพื่อให้สามารถเขียนไดรเวอร์และโมดูลแบบ "Leaf" ที่คล้ายกันด้วย Rust ได้
เมื่อใช้ Rust ในเคอร์เนล Linux
-
ด้วยคุณสมบัติของภาษา ความเสี่ยงจากบั๊กด้าน memory safety, data race และบั๊กเชิงตรรกะจะลดลง
-
เมนเทนเนอร์จะสามารถรีแฟกเตอร์โมดูลและทำแพตช์ได้อย่างมั่นใจมากขึ้น เพราะความปลอดภัยของ Rust
-
ด้วยฟีเจอร์ภาษาสมัยใหม่และเอกสารที่ละเอียด จึงเขียนไดรเวอร์และโมดูลใหม่ได้ง่าย
-
ผู้คนจำนวนมากขึ้นจะสามารถมีส่วนร่วมกับการพัฒนาเคอร์เนลโดยรวมได้ เพราะได้ใช้ภาษาสมัยใหม่
"Why Rust?"
- ในบริบทของเคอร์เนล Linux นั้น Rust มีข้อได้เปรียบสำคัญบางอย่างเมื่อเทียบกับ C
→ (ละรายละเอียดข้อดีด้านภาษาไว้..)
"Why not?"
- ในบริบทของเคอร์เนล Linux นั้น Rust มีข้อเสียเหล่านี้เมื่อเทียบกับ C
→ ได้ทุ่มเทความพยายามไปกับเครื่องมือฝั่ง C เช่น compiler plugin และ Sanitizer เป็นต้น ซึ่งจุดนี้จะดีขึ้นเมื่อการใช้งาน Rust เพิ่มขึ้นตามเวลา
→ มีอิมพลีเมนเทชันหลักเพียงตัวเดียวที่อิงกับ LLVM โดยกำลังมีความพยายามในส่วนของ GCC frontend, แบ็กเอนด์ 'ructc' ที่อิงกับ Cranelift และ 'mrustc' เพื่อลด bootstrap chain
→ ยังไม่มีการทำให้เป็นมาตรฐาน แม้ก็ยังไม่แน่ชัดว่าการทำมาตรฐานจะช่วยเคอร์เนลหรือไม่..
→ เนื่องจากฟีเจอร์และข้อจำกัดที่ซับซ้อนของคอมไพเลอร์ในปัจจุบัน ทำให้การคอมไพล์ช้า
→ ณ ตอนนี้จำเป็นต้องใช้ฟีเจอร์ที่มีอยู่ใน Nightly build จึงยังใช้รุ่นเสถียรไม่ได้ โดยตั้งเป้าจะยกเลิกข้อจำกัดนี้ภายใน 1 ปี
→ ฟีเจอร์ใน Rust standard library ส่วน 'core' และ 'alloc' ยังไม่ได้ถูกใช้งานทั้งหมด จึงยังมีขนาดใหญ่เกินกว่าส่วนที่จำเป็นในตอนนี้
-
ข้อเสียส่วนใหญ่เหล่านี้เกิดจากข้อเท็จจริงที่ว่า Rust ยังเป็นภาษาที่อายุน้อยและมีการใช้งานน้อยกว่า
-
มีความเชื่อว่า Rust จะกลายเป็นส่วนสำคัญของ system programming เช่นเดียวกับที่ C เคยเป็นมาตลอดหลายทศวรรษที่ผ่านมา
3 ความคิดเห็น
https://lkml.org/lkml/2021/4/14/1099
"So I replied with my reactions to a couple of the individual patches, but on the whole I don't hate it."
เมื่อดูข้อความที่ตามหลัง HOWEVER ด้วย
ดูเหมือนว่ากว่าจะถูกเพิ่มเข้ามาจริง ๆ อาจต้องใช้เวลาอีกพอสมควร
Linus Torvalds ได้ตอบกลับเกี่ยวกับ RFC นี้ไว้ที่ https://lkml.org/lkml/2021/4/14/1099
"So I replied with my reactions to a couple of the individual patches, but on the whole I don't hate it."
เขาบอกว่าโดยรวมแล้วไม่ได้เกลียดมัน จึงหวังว่าน่าจะเดินหน้าไปได้ด้วยดี
ลองค้นหาดูแล้วพบว่าบน GeekNews มีข่าวเกี่ยวกับ Rust ขึ้นมาเยอะมากจริง ๆ ตอนนี้คงพูดได้ว่าเป็นกระแสหลักของยุคนี้แล้ว
https://news.hada.io/search?q=Rust
ภาษาโปรแกรม Rust [ฉบับภาษาเกาหลี] https://th.news.hada.io/topic?id=1152
Rust - ภาษาสำหรับประสิทธิภาพสูงและความน่าเชื่อถือ 'คุณน่าสงสารถ้ายังไม่รู้จักความยอดเยี่ยมของ Rust' https://th.news.hada.io/topic?id=991
ผมแอบคิดอยู่เหมือนกันว่า มันอาจจะค่อย ๆ อยู่ร่วมกับ C ไปก่อน แล้ววันหนึ่งก็เข้ามาแทนที่ได้เอง... กลับกัน การแยกตัวออกจาก Mozilla อาจเป็นทางเลือกที่ดีกว่าด้วยซ้ำครับ