Rust สำหรับ Linux รุ่นที่เก้ามาถึงแล้วและบอกลาการสนับสนุนสำหรับเวอร์ชันก่อนหน้า Linux 3.2

ว้าว งานของ การสนับสนุนไดรเวอร์ Rust สำหรับ Linux กำลังดำเนินการอยู่ และเริ่มมีการพัฒนาอย่างต่อเนื่องพอสมควร เนื่องจากไม่มีอะไรมาก ประกาศเวอร์ชั่น 8 แล้ว ของแพทช์และนั่นแหละ ตอนนี้เรามีรุ่น 9

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

ถือว่าแพทช์ขั้นต่ำ จะทำให้ง่ายต่อการนำการสนับสนุน Rust มาใช้ในเคอร์เนลหลัก หลังจากให้การสนับสนุนน้อยที่สุด มีการวางแผนที่จะค่อยๆ เพิ่มฟังก์ชันการทำงานที่มีอยู่ โดยย้ายการเปลี่ยนแปลงอื่นๆ จากสาขา Rust-for-Linux

นี่คือชุดของแพตช์ (v9) เพื่อเพิ่มการรองรับ Rust เป็นภาษาที่สองให้กับเคอร์เนล Linux...

ตามปกติ ขอขอบคุณเป็นพิเศษกับ ISRG (Internet Security Research Group) และ Google สำหรับการสนับสนุนทางการเงินในความพยายามนี้

เมื่อเทียบกับเวอร์ชัน 8 ขนาดของแพตช์ลดลงจาก 40 เป็น 000 บรรทัดของโค้ด ตัวอย่างเช่น เวอร์ชัน 3 มีโค้ดเพียง 500% (60 บรรทัด) จากแพ็คเกจกล่อง "เคอร์เนล" และ 32% ของไลบรารี alloc ช่วยให้คุณสร้างโมดูลเคอร์เนลที่ง่ายที่สุดโดยใช้ประเภท Vec และแสดงข้อมูลในบันทึกเคอร์เนลโดยใช้มาโคร "pr_info!"

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

ณ สนิม 1.64 กำหนดไว้สำหรับ 22 กันยายน 2022ข้อกำหนดขั้นต่ำสำหรับ Glibc จะเพิ่มขึ้นจากเวอร์ชัน 2.11 เป็น 2.17 และเคอร์เนล Linux จาก 2.6.32 เป็น 3.2. ข้อจำกัดยังใช้กับไบนารีของ Rust ที่สร้างด้วย libstd

การกระจาย RHEL 7, SLES 12-SP5, Debian 8 และ Ubuntu 14.04 เป็นไปตามข้อกำหนดใหม่ การสนับสนุน RHEL 6, SLES 11-SP4, Debian 7 และ Ubuntu 12.04 จะถูกยกเลิก เหตุผลในการเลิกสนับสนุนระบบ Linux รุ่นเก่ารวมถึงทรัพยากรที่จำกัดเพื่อสนับสนุนสภาพแวดล้อมที่เก่ากว่าต่อไป

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

ข้อกำหนดของ toolchain มีสองส่วน: ข้อกำหนดขั้นต่ำสำหรับการรันคอมไพเลอร์ Rust บนระบบโฮสต์ และข้อกำหนดขั้นต่ำสำหรับไบนารีที่คอมไพล์ข้าม

ข้อกำหนดขั้นต่ำสำหรับ toolchains ของโฮสต์ส่งผลต่อระบบบิลด์ของเรา Rust CI สร้างสิ่งประดิษฐ์ไบนารีสำหรับเป้าหมายที่แตกต่างกันหลายสิบรายการ การสร้างไบนารีที่รองรับ glibc เวอร์ชันเก่าจำเป็นต้องสร้างระบบปฏิบัติการที่มี glibc ที่เก่ากว่า (สำหรับบิลด์ดั้งเดิม) หรือใช้รูทบิวด์ที่มี glibc เวอร์ชันเก่ากว่า (สำหรับการสร้างแบบข้าม)

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

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

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


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

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

*

*

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