mold 3.0 Linker ความเร็วสูง เขียนใหม่ด้วย Rust เพื่อความปลอดภัย

mold linker ตัวเชื่อมโยง (linker) ความเร็วสูงสำหรับระบบ Unix ที่ถูกออกแบบมาเพื่อเร่งความเร็วในการสร้างโปรแกรม (build) ได้ประกาศเปิดตัวเวอร์ชัน 3.0 อย่างเป็นทางการ โดยก้าวสำคัญในครั้งนี้คือการเสร็จสิ้นการเปลี่ยนผ่านฐานรหัสจากภาษา C++ ไปเป็นภาษา Rust ซึ่งผลงานนี้ยังคงนำทีมโดย Rui Ueyama ผู้พัฒนาหลักของ lld ของ LLVM

ตามข้อมูลจากนักพัฒนา mold 3.0 ถือเป็นรุ่นแรกที่ทำงานบนโครงสร้างภาษา Rust อย่างเต็มรูปแบบ ในขณะที่เวอร์ชัน 2.42.1 จะเป็นรุ่นสุดท้ายที่ใช้ฐานรหัส C++ เดิม โดยเวอร์ชันใหม่นี้ยังคงรองรับตัวเลือกบรรทัดคำสั่ง (command-line options) และสถาปัตยกรรมเป้าหมายเดิมทั้งหมด พร้อมให้ผลลัพธ์ที่แม่นยำเช่นเดิมแต่มีความเสถียรที่มากขึ้นจากการแก้ไขบั๊ก

การย้ายมาใช้ Rust ช่วยปรับปรุงความปลอดภัยในการจัดการไฟล์อินพุตที่เสียหายได้อย่างมีนัยสำคัญ ซึ่งในเวอร์ชัน C++ เดิม ข้อมูลที่ผิดพลาดอาจส่งผลให้เกิดการอ่านหน่วยความจำเกินขอบเขต (out-of-bounds memory reads) หรือการแครชแบบ segmentation faults แต่ในเวอร์ชัน Rust การเข้าถึงข้อมูลจะถูกตรวจสอบขอบเขตอย่างเข้มงวด ทำให้ระบบสามารถหยุดการทำงานได้ทันทีที่พบความผิดปกติก่อนจะเกิดความเสียหาย

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

นอกจากนี้ mold 3.0 ได้ยกเลิกการพึ่งพา oneTBB แต่ยังเลือกเชื่อมโยง mimalloc แบบสแตติกเป็นค่าเริ่มต้นเพื่อประสิทธิภาพ แม้ผู้ใช้จะสามารถเลือกใช้ตัวจัดสรรหน่วยความจำของระบบ (system allocator) ได้เองก็ตาม ในรุ่นนี้ยังมีการปรับปรุงความเข้ากันได้กับ GNU ld และแก้ไขบั๊กหลายจุด เช่น ปัญหาการแครชเมื่อเชื่อมโยงแบบสแตติก และความไม่แน่นอนของผลลัพธ์ (nondeterministic) ในบางกรณี

ในส่วนของการสนับสนุนฮาร์ดแวร์ ได้มีการปรับปรุงเฉพาะสถาปัตยกรรมสำหรับ AArch64, ARM32, i386, RISC-V รวมถึง LoongArch, PPC, m68k, SH4 และ SPARC64 โดยเป้าหมายถัดไปของซีรีส์ 3.x คือการเพิ่มความเข้ากันได้กับ GNU ld ให้สมบูรณ์ยิ่งขึ้น โดยเฉพาะในส่วนของสคริปต์ตัวเชื่อมโยง เพื่อปูทางให้ mold กลายเป็นตัวเชื่อมโยงมาตรฐานสำหรับ Linux distribution ต่างๆ ในอนาคต

รายละเอียดเพิ่มเติมเกี่ยวกับ mold 3.0 สามารถตรวจสอบได้ที่ บันทึกการเปลี่ยนแปลงของรุ่นนี้

Source: Linuxiac
ดูแลงานแปลและเรียบเรียงโดย NatapolK
mold 3.0 Linker ความเร็วสูง เขียนใหม่ด้วย Rust เพื่อความปลอดภัย

ความคิดเห็น (0)

เข้าสู่ระบบเพื่อร่วมแสดงความเห็น

สมัครสมาชิก

มาเป็นคนแรกที่แสดงความเห็นกันเลยโบร