แพตช์เวอร์ชั่นที่สองสำหรับการรองรับไดรเวอร์ Rust บน Linux ได้จัดส่งไปแล้ว

ในเดือนมีนาคมของปีนี้บน linux-next branch ซึ่งในขณะนั้นมันใช้งานได้กับเคอร์เนลลินุกซ์ 5.13 รวมชุดส่วนประกอบเริ่มต้นเพื่อพัฒนาไดรเวอร์อุปกรณ์ใน ภาษา สนิมและตอนนี้ได้ทำการร้องขอเพื่อรวมรุ่นที่สอง ของแพตช์เพื่อเพิ่มการรองรับ Rust ให้กับเคอร์เนล Linux

ผู้ที่ส่งคำขอไปยังนักพัฒนา Linux คือ Miguel Ojeda ผู้เขียนโครงการ Rust-for-Linux และคนที่เราพูดถึงเมื่อไม่กี่วันก่อนด้วยเนื่องจากเขาได้รับการว่าจ้างให้ดูแลโครงการ "Prossimo" ซึ่งโดยพื้นฐานแล้ว มุ่งเน้นไปที่การประสานงานเพื่อย้ายโครงสร้างพื้นฐานซอฟต์แวร์ที่สำคัญไปยังรหัสที่ปลอดภัยเพื่อรักษาความปลอดภัยหน่วยความจำเคอร์เนล Linux ด้วย Rust (หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับโครงการ คุณสามารถปรึกษา โพสตามลิงค์ด้านล่างครับ)

ไดรเวอร์สนิมบน Linux
บทความที่เกี่ยวข้อง:
Prossimo โครงการ ISRG เพื่อรักษาความปลอดภัยหน่วยความจำเคอร์เนล Linux ด้วย Rust

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

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

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

จากการเปลี่ยนแปลงที่โดดเด่น ของแพตช์เวอร์ชั่นใหม่นี้มีการกล่าวถึง:

  • รหัสการจัดสรรหน่วยความจำป้องกันความเป็นไปได้ในการสร้างสภาวะตื่นตระหนกเมื่อเกิดข้อผิดพลาด เช่น หน่วยความจำไม่เพียงพอ
  • รวมอยู่ด้วย ไลบรารี่ของ Rust alloc ที่เปลี่ยนรหัสซึ่งมีการทำงานใหม่เพื่อจัดการกับการล็อคแต่เป้าหมายสุดท้ายคือการนำคุณสมบัติที่จำเป็นทั้งหมดสำหรับเคอร์เนลไปยังรุ่นหลักของ alloc (การเปลี่ยนแปลงได้จัดเตรียมและส่งต่อไปยังไลบรารี Rust มาตรฐานแล้ว)
  • แทนที่จะใช้บิลด์ทุกคืน ตอนนี้สามารถใช้เวอร์ชันเบต้าและเวอร์ชันเสถียรได้แล้ว คอมไพเลอร์ rustc เพื่อคอมไพล์เคอร์เนลที่เปิดใช้งาน Rust ปัจจุบัน rustc 1.54-beta1 ถูกใช้เป็นคอมไพเลอร์อ้างอิง แต่หลังจากปล่อย 1.54 เมื่อสิ้นเดือน มันจะได้รับการสนับสนุนเป็นคอมไพเลอร์อ้างอิง
  • เพิ่มการรองรับการเขียนการทดสอบโดยใช้แอตทริบิวต์ Rust มาตรฐาน "# [test]" และความสามารถในการใช้ doctests เพื่อใช้โค้ดตัวอย่างจากเอกสารประกอบเป็นการทดสอบ
  • เพิ่มการรองรับสถาปัตยกรรม ARM32 และ RISCV นอกเหนือจาก x86_64 และ ARM64 ที่รองรับก่อนหน้านี้
    ปรับปรุงการใช้งาน GCC Rust (ส่วนหน้า GCC สำหรับ Rust) และ rustc_codegen_gcc (แบ็กเอนด์ rustc สำหรับ GCC) ซึ่งตอนนี้ผ่านเกณฑ์มาตรฐานทั้งหมดแล้ว
  • อา ระดับใหม่ของนามธรรม เพื่อให้โปรแกรม Rust ใช้กลไกเคอร์เนลที่เขียนด้วยภาษา C เช่น tree, อ็อบเจกต์การนับอ้างอิง, การสร้าง file descriptor, งาน, ไฟล์ และเวกเตอร์ I/O
  • ส่วนประกอบการพัฒนาไดรเวอร์ได้ปรับปรุงการรองรับโมดูล "file_operations", "โมดูล!" มาโคร การบันทึกแมโคร และไดรเวอร์พื้นฐาน (โพรบและลบ)
  • Binder รองรับการส่งตัวอธิบายไฟล์และลิงก์ LSM
  • ตัวอย่างที่ใช้งานได้ดีกว่าของไดรเวอร์ Rust, bcm2835-rng ถูกเสนอสำหรับตัวสร้างหมายเลขสุ่มฮาร์ดแวร์สำหรับบอร์ด Raspberry Pi

สุดท้ายหากคุณสนใจที่จะทราบข้อมูลเพิ่มเติมคุณสามารถปรึกษารายละเอียดได้ ในลิงค์ต่อไปนี้.


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

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

*

*

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