Tags:
Node Thumbnail

ที่งาน Open Source Technology Summit (OSTS) ปีนี้ Josh Triplett วิศวกรอินเทลบรรยายในหัวข้อ "Intel and Rust: the Future of Systems Programming" ระบุถึงศักยภาพของภาษา Rust ที่จะนำมาใช้เขียนโปรแกรมระบบ (system programming) เต็มรูปแบบในอนาคต และหากทำได้ก็มีโอกาสที่จะใช้ภาษา Rust ในระดับเคอร์เนลต่อไป

ภาษา Rust แม้จะมีฟีเจอร์ของภาษายุคใหม่ เช่น การหลีกเลี่ยงการยุ่งเกี่ยวกับ pointer โดยตรงแต่อาศัย smart pointer แทนที่ แต่ขณะเดียวกันภาษาก็ไม่ต้องการ runtime แบบภาษาจาวาหรือ C# และยังไม่มี garbage collector (GC) เหมือนภาษา Go แต่ทุกอย่างวิเคราะห์ที่ช่วงเวลาคอมไพล์เท่านั้น

แต่ Triplett ระบุว่าสิ่งที่ Rust ยังขาดอยู่คือฟีเจอร์ที่เทียบเท่ากับภาษาที่ใช้เขียนโปรแกรมระบบทุกวันนี้คือภาษา C ที่มีฟีเจอร์หลายอย่างที่ใช้งานในระดับล่าง เช่นที่ผ่านมา Rust ไม่รองรับโครงสร้างข้อมูลแบบ union หรือการใช้พื้นที่หน่วยความจำเดียวกันกับโครงสร้างข้อมูลหลายรูปแบบ โดย Triplett ชี้ว่าถ้า Rust จะถูกใช้งานเป็นภาษาโปรแกรมระบบได้นั้นต้องทำงานร่วมกับภาษาเดิมได้ครบ โดยเรียกเงื่อนไขนี้ว่า "parity with C" โดยมีเงื่อนไขหลัก 3 กลุ่ม

  • ฟังก์ชั่นใช้งานร่วมกันได้ ทั้งการเปิดให้ฟังก็ชั่นภาษาอื่นมาเรียกโค้ด Rust และโค้ด Rust ไปเรียกฟังก์ชั่นอื่น รวมถึงการเรียกฟังก์ชั่นที่มีจำนวนอาร์กิวเมนต์ยืดหยุ่น
  • โครงสร้างข้อมูล เช่น union, การจัดการโครงสร้างระดับบิต
  • ทำงานร่วมกับ pointer ได้

เขาระบุว่าก่อนหน้าที่ภาษา C จะเข้ามาเป็นภาษาโปรแกรมระบบได้ ตัวภาษา C เองสามารถใช้งานแทนภาษาแอสแซมบลีได้เต็มรูปแบบเหมือนกัน และยังแทรกโค้ดแอสแซมบลีสลับไปมาได้ด้วย การที่ภาษา Rust จะเข้าไปแทรกในการพัฒนาเคอร์เนลได้ก็ต้องทำงานร่วมกับโครงสร้างเดิมได้ระดับเดียวกัน

ตอนนี้ Triplett กำลังเริ่มกับ WG-FFI ที่จะพยายามเพิ่มฟีเจอร์ให้ภาษา Rust ให้ครบถ้วน และผลักดันให้ Rust พัฒนาฟีเจอร์เหล่านี้ไปอยู่ในรุ่น stable จากเดิมที่ฟีเจอร์ส่วนมากเป็นฟีเจอร์ในคอมไพล์เลอร์เวอร์ชั่น nightly เท่านั้น ทางฝั่งเคอร์เนลเอง Triplett ได้คุยกับ Greg Kroah-Hartman นักพัฒนาเคอร์เนลลินุกซ์ ที่ระบุว่าเขาจะยอมรับโมดูลเคอร์เนลในภาษา Rust เข้าไปในซอร์สโค้ดของเคอร์เนล แต่ต้องเป็นฟีเจอร์พิเศษที่ไม่ถูกคอมไพล์แม้จะคอมไพล์แบบ "allyesconfig" ก็ตาม เพราะกระบวนการคอมไพล์เคอร์เนลต้องไม่บังคับนักพัฒนาให้ติดตั้ง Rust

ก่อนหน้านี้ศูนย์รับมือเหตุการณ์ความปลอดภัยของไมโครซอฟท์ก็ออกมาแสดงความสนใจในภาษา Rust เพราะมีความเป็นไปได้ที่จะนำมาใช้ในโครงการระดับต่ำแต่ยังได้ความปลอดภัยของหน่วยความจำอยู่

ที่มา - PacktPub

No Description

Get latest news from Blognone

Comments

By: kimminwoo
AndroidRed HatUbuntuWindows
on 3 September 2019 - 12:58 #1126520

เห็น redox os ที่ใช้ Rust พัฒนา

By: mr_tawan
ContributoriPhoneAndroidWindows
on 3 September 2019 - 17:56 #1126568
mr_tawan's picture

ถามนอกเรื่องครับ เราสามารถเรียกโค๊ดที่เขียนบน rust จาก C ได้ไหม?


  • 9tawan.net บล็อกส่วนตัวฮับ