Kerla: เคอร์เนลใหม่ที่เขียนด้วย Rust และเข้ากันได้กับ Linux ABI

ข้อมูลเกี่ยวกับโปรเจ็กต์ Kerla ได้รับการเผยแพร่เมื่อเร็วๆ นี้ ซึ่งกำลังได้รับการพัฒนาเป็นเคอร์เนลของระบบปฏิบัติการที่เขียนด้วยภาษา Rust รหัสนี้เผยแพร่ภายใต้ใบอนุญาต Apache 2.0 และ MIT โครงการนี้ได้รับการพัฒนาโดยนักพัฒนาชาวญี่ปุ่น Seiya Nuta ซึ่งเป็นที่รู้จักจากการสร้างระบบปฏิบัติการไมโครเคอร์เนล Resea ซึ่งเขียนด้วยภาษา C

เคอร์เนลใหม่มีจุดมุ่งหมายในตอนแรก รับรองความเข้ากันได้กับเคอร์เนล Linux ที่ระดับ ABI ซึ่งจะทำให้ไบนารีที่ไม่มีการแก้ไขซึ่งสร้างขึ้นสำหรับ Linux สามารถทำงานในสภาพแวดล้อมที่ใช้ Kerla

เกี่ยวกับ Keral

Kerla เป็นเคอร์เนลระบบปฏิบัติการเสาหิน สร้างขึ้นตั้งแต่เริ่มต้นใน Rust ในขั้นปัจจุบันของการพัฒนา Kerla สามารถทำงานบนระบบที่มีสถาปัตยกรรม x86_64 เท่านั้น และใช้การเรียกระบบพื้นฐาน เช่น เขียน สถิติ mmap ไพพ์ และโพล สนับสนุนสัญญาณ ไพพ์ที่ไม่มีชื่อ และสวิตช์บริบท การโทรเช่น fork, wait4 และ execve เพื่อควบคุมกระบวนการ มีการรองรับ tty และ pseudo-terminals (pty) ในบรรดาระบบไฟล์ initramfs (ใช้เพื่อเมาต์ FS รูท) ยังรองรับ tmpfs และ devfs

นอกจากนี้ยังมีสแต็กเครือข่ายที่รองรับซ็อกเก็ต TCP และ UDP ตามไลบรารี smoltcp นักพัฒนาซอฟต์แวร์ได้เตรียมสภาพแวดล้อมการบูตที่ทำงานใน QEMU หรือ Firecracker VM ด้วยคอนโทรลเลอร์ virtio-net ซึ่งคุณสามารถเชื่อมต่อผ่าน SSH ได้แล้ว. Musl ใช้เป็นไลบรารีระบบและ BusyBox ใช้เป็นยูทิลิตี้ผู้ใช้. ตาม Docker ได้มีการเตรียมระบบบิลด์ที่ช่วยให้คุณสามารถสร้างการบูต initramfs ของคุณเองด้วยเคอร์ล่า Kerla

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

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

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

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

ตามที่ผู้สร้างกล่าว ด้วยเหตุผลนี้เองที่นักพัฒนา Linux โดยเฉพาะอย่างยิ่ง Linus Torvalds เอง พวกเขาปฏิเสธแนวคิดในการเขียนเคอร์เนลใหม่ทั้งหมดใน Rust

“ทำงานบางอย่างเพื่อสร้างลิงก์ที่ปลอดภัย จากนั้นเขียนโค้ดเพิ่มเติมใน Rust และคุณยังสามารถเพลิดเพลินกับโค้ดสำหรับผู้ใหญ่นั้นได้ (นั่นคือสิ่งที่ Linux ทำ มีความพยายามที่จะเพิ่มความสามารถในการเขียนโมดูลเคอร์เนลใน Rust)” เขากล่าวเสริม นักพัฒนา Linux ได้สำรวจความเป็นไปได้ในการเขียนโมดูลเคอร์เนลใหม่โดยใช้ภาษา Rust มาประมาณสามปีแล้ว สิ่งนี้ทำให้เกิดโครงการ »Rust for Linux«

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


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

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

*

*

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