สนิมสิ่งที่นักพัฒนา Linux ดูเหมือนจะเห็นด้วย

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

ในการประชุมเสมือนจริงของ Linux Plumbers 2020 ขั้นตอนการประชุมย่อย โดย LLVM จัดเซสชันเกี่ยวกับคำถามเปิด และอุปสรรค สำหรับการยอมรับ Rust บนเคอร์เนลของ Linux

ความสนใจในหัวข้อนี้สามารถมองเห็นได้เนื่องจากเซสชั่นนี้เป็นงานที่คึกคักที่สุดในปี 2020

ตอนนี้เราควรเขียนเคอร์เนล Linux ใหม่ทั้งหมดด้วยภาษา Rust หรือไม่? การสนทนานี้ไม่ได้เกิดขึ้นตั้งแต่วันนี้และได้รับการเน้นตั้งแต่การปรากฏตัวของ Rust เวอร์ชันเสถียรรุ่นแรกในปี 2015

ในมุมมองของความเป็นไปได้ที่มีให้ สนิมบางคนแนะนำให้ทำ ปีนี้ในการประชุม Linux Plumbers ในเดือนสิงหาคม วิทยากรมีเวลาอีกครั้งในการอภิปราย

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

เซสชั่นนี้สร้างขึ้นจากงานก่อนหน้าของนักพัฒนาหลายคนรวมถึงการพูดคุยเมื่อปีที่แล้วโดย Alex Gaynor และ Geoffrey Thomas ในงาน Linux Security Summit

ในการประชุมพวกเขานำเสนอผลงานของพวกเขาเกี่ยวกับการสร้างต้นแบบโมดูลเคอร์เนล Rust และสนับสนุนให้มีการนำ Rust มาใช้ในเคอร์เนล

พวกเขาอ้างถึงงานที่แสดงให้เห็นว่าประมาณสองในสามของช่องโหว่ของเคอร์เนลที่ได้รับมอบหมาย CVE ใน Android และ Ubuntu นั้นเกี่ยวข้องกับปัญหาด้านความปลอดภัยของหน่วยความจำ

พวกเขาจบลงด้วยการอธิบายว่า สนิมสามารถหลีกเลี่ยงข้อผิดพลาดประเภทนี้ได้อย่างสมบูรณ์ด้วย API ที่ปลอดภัยยิ่งขึ้น เปิดใช้งานตามประเภทระบบของคุณและผู้ตรวจสอบเงินกู้ของคุณ

การศึกษานี้ประสบความสำเร็จในการโน้มน้าวผู้ดูแลหลายคนแล้ว Linus Torvalds ผู้สนับสนุนการนำ Rust เข้าสู่เคอร์เนล Thomas และ Gaynor, Josh Triplett ประธานร่วมของทีมภาษา Rust และผู้พัฒนาเคอร์เนล Linux ที่รู้จักกันมานานตลอดจนนักพัฒนาที่สนใจอื่น ๆ เข้าร่วมในการอภิปรายในหัวข้อนี้

พวกเขาสัมผัสงานของเขาสั้น ๆ จนถึงตอนนี้รวมถึงความคิดและคำถามแรกของเขาก่อนที่จะเปิดเวลาส่วนใหญ่สำหรับการอภิปราย

นี่คือการใช้ API ที่มีอยู่ในเคอร์เนลการสนับสนุนสถาปัตยกรรมและคำถามเกี่ยวกับความเข้ากันได้ของ ABI ระหว่าง Rust และ C

ในความเป็นจริงพวกเขาเชื่อในตอนแรก การนำ Rust เข้าสู่โครงสร้างต้นไม้ต้องเคารพ C API ที่มีอยู่ 

อย่างไรก็ตามทุกคนรู้สึกว่าปีศาจอยู่ในรายละเอียดและทั้งงานที่ทำจนถึงตอนนี้และการสนทนาระหว่างเซสชั่นได้เปิดเผยความท้าทายที่เปิดกว้าง

ตัวอย่างเช่น Linux ใช้มาโครตัวประมวลผลล่วงหน้าและฟังก์ชันแบบอินไลน์อย่างหนักซึ่งไม่ได้รับการสนับสนุนอย่างง่ายดายโดยเครื่องมือ bindgen และอินเทอร์เฟซฟังก์ชันภายนอกของ Rust

ตามที่พวกเขา, ในขณะนี้การใช้งาน Rust เพียงอย่างเดียวคือคอมไพเลอร์ rustc ซึ่งออกรหัสผ่าน LLVM

เคอร์เนล Linux รองรับสถาปัตยกรรมที่หลากหลายซึ่งส่วนใหญ่ไม่มีแบ็กเอนด์ LLVM

ในส่วนของเขา Triplett แนะนำว่าการเพิ่ม Rust ลงในเคอร์เนลจะช่วยเพิ่มการสนับสนุนทางสถาปัตยกรรมสำหรับ Rust โดยอ้างถึงประสบการณ์ของเขากับโครงการ Debian เขากล่าวว่าการเปิดตัวซอฟต์แวร์ Rust ใน Debian ช่วยกระตุ้นให้ผู้ที่ชื่นชอบและผู้ใช้สถาปัตยกรรมเฉพาะกลุ่มปรับปรุงการรองรับ Rust และเขาหวังว่าจะเพิ่มการรองรับเคอร์เนลเพื่อให้ได้ผลที่คล้ายกัน

โดยเฉพาะอย่างยิ่งเขาเชื่อมั่นว่าสถาปัตยกรรมใด ๆ ที่มีแบ็กเอนด์ LLVM จะเข้ากันได้กับ Rust อย่างรวดเร็ว การอภิปรายยังมุ่งเน้นไปที่การใช้งาน Rust ทางเลือกเพื่อเป็นแนวทางในการสนับสนุนสถาปัตยกรรมที่กว้างขึ้น

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


แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   หม้อแปลงไฟฟ้​​า dijo

    ดูเหมือนว่าจุดเริ่มต้นของยุคใหม่ C ที่ไม่สามารถเคลื่อนย้ายได้เกิดขึ้น

    สวัสดีสนิมลาก่อน Linus Torvalds!