10 คะแนน โดย xguru 2021-04-16 | 3 ความคิดเห็น | แชร์ทาง WhatsApp
  • สรุปเหตุผลว่าทำไมจึงควรใช้ 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 ความคิดเห็น

 
octopuset 2021-04-17

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 ด้วย

ดูเหมือนว่ากว่าจะถูกเพิ่มเข้ามาจริง ๆ อาจต้องใช้เวลาอีกพอสมควร

 
xguru 2021-04-16

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 ขึ้นมาเยอะมากจริง ๆ ตอนนี้คงพูดได้ว่าเป็นกระแสหลักของยุคนี้แล้ว

 
ffdd270 2021-04-18

ผมแอบคิดอยู่เหมือนกันว่า มันอาจจะค่อย ๆ อยู่ร่วมกับ C ไปก่อน แล้ววันหนึ่งก็เข้ามาแทนที่ได้เอง... กลับกัน การแยกตัวออกจาก Mozilla อาจเป็นทางเลือกที่ดีกว่าด้วยซ้ำครับ