ไมโครซอฟท์เริ่มเขียนบางส่วนของ Windows ด้วย Rust แก้ปัญหาหน่วยความจำ แถมประสิทธิภาพดีขึ้น

by mk
30 April 2023 - 23:41

David Weston หัวหน้าฝ่ายความปลอดภัยระบบปฏิบัติการของ Windows ไปพูดในงานสัมมนาความปลอดภัย BlueHat IL 2023 ที่อิสราเอล เปิดเผยว่าไมโครซอฟท์เริ่มใช้ภาษา Rust เขียนบางส่วนของ Windows เพื่อแก้ปัญหาช่องโหว่หน่วยความจำแล้ว

Weston เล่าว่าช่องโหว่ด้านหน่วยความจำ มีสัดส่วนเป็น 70% ของช่องโหว่ทั้งหมดของ Windows ทำให้ไมโครซอฟท์ต้องหาวิธีแก้ไขที่ยั่งยืนในระยะยาว โดยวิธีการหนึ่งคือใช้ภาษาโปรแกรมที่ป้องกันเรื่องนี้ตั้งแต่ระดับของตัวภาษาเลย

แต่ความซับซ้อนของ Windows ทำให้ไมโครซอฟท์ต้องค่อยๆ ลองเปลี่ยนโค้ดจาก C++ มาเป็น Rust อย่างช้าๆ โดยเริ่มจากชิ้นส่วนที่ไม่ค่อยมี dependency กับส่วนอื่นมากนัก คือ DWrite เอนจินสำหรับวิเคราะห์และเรนเดอร์ข้อความบนหน้าจอ ไมโครซอฟท์เขียนมันใหม่ด้วย Rust เป็น DWriteCore ในปี 2020 ตอนนี้มีโค้ดที่เป็น Rust ราว 152,000 บรรทัดแล้ว เหลือส่วนที่เป็น C++ ราว 96,000 บรรทัด และนอกจากความปลอดภัยที่ดีขึ้นแล้ว ไมโครซอฟท์ยังพบว่าประสิทธิภาพดีขึ้นด้วย 5-15% ถือเป็นผลพลอยได้จาก Rust

ถัดมา ไมโครซอฟท์เริ่มเขียน Win32k GDI ไลบรารีส่วนที่ใช้วาด UI ขอบหน้าต่างแบบเก่าที่ใช้มาตั้งแต่ยุค 80s/90s ตอนนี้มีโค้ด Rust ราว 36,000 บรรทัด และ Win32k GDI ตัวใหม่ถูกผนวกเข้ามาใน Windows 11 รุ่นภายในแล้ว บูตผ่านแล้ว เทสต์ผ่านด้วย แต่ยังปิดการใช้งานเป็นค่าดีฟอลต์อยู่

Weston ยังเผยข้อมูลว่าตอนนี้ไมโครซอฟท์เริ่มเขียน SysCall ของเคอร์เนล Windows ด้วย Rust บ้างแล้วเช่นกัน แต่ยังไม่บอกรายละเอียดเหมือน 2 โครงการข้างต้น

ความนิยมใน Rust เพิ่มขึ้นเรื่อยๆ ในช่วงหลัง นอกจากไมโครซอฟท์แล้ว อีกองค์กรที่เริ่มใช้ Rust อย่างจริงจังคือ กูเกิลที่เขียนบางส่วนของ Android เป็น Rust รวมถึง Chrome

ที่มา - The Register

Blognone Jobs Premium