Sylvestre Ledru เริ่มทำงานกับการนำ GNU Coreutils มาใช้ใหม่ใน Rust ในช่วงการระบาดของ COVID-19 และนำเสนอเมื่อสัปดาห์ที่แล้วระหว่างการประชุม FOSDEM ฉบับปี 2023 ความพยายามที่เรียกว่า uutils ได้รับการบรรจุโดยลีนุกซ์หลายรุ่นและยังใช้โดยโซเชียลเน็ตเวิร์กที่มีชื่อเสียงผ่านโครงการ Yocto
การเปรียบเทียบภาษา Rust และ C++ มีสิ่งที่เหมือนกัน: เน้นความเหนือกว่าของ Rust ที่เหนือกว่า C++ ในแง่ของความปลอดภัยของหน่วยความจำ ตัวแก้ไข RisingWave อธิบายว่าทำไมเขาจึงเขียน Cloud DBMS ดั้งเดิมของเขาใหม่ตั้งแต่เริ่มต้นใน Rust หลังจากออกจากโปรเจ็กต์ C++
“Rust ช่วยให้หน่วยความจำและเธรดปลอดภัยในเวลาคอมไพล์โดยแนะนำกฎความเป็นเจ้าของ มันไปไกลกว่า RAII ซึ่งเป็นกลไกการจัดการหน่วยความจำที่ใช้กันทั่วไปใน C ++ มีข้อดีสองประการ อย่างแรกเห็นได้ชัด: เมื่อคอมไพเลอร์ของ Rust ตรวจสอบความถูกต้องของโปรแกรม เราจะไม่มีข้อผิดพลาดของเซกเมนต์หรือสภาวะการแข่งขันในขณะรันไทม์ ซึ่งต้องใช้เวลาหลายสิบชั่วโมงในการดีบัก โดยเฉพาะอย่างยิ่งในโค้ดเบสที่ทำงานพร้อมกันสูงและส่วนใหญ่เป็นแบบอะซิงโครนัส ประการที่สองนั้นละเอียดกว่า: คอมไพเลอร์ของ Rust เพียงแค่จำกัดประเภทของความล้มเหลว ซึ่งลดส่วนย่อยของโค้ดที่ซ้อนกันแน่นซึ่งอาจทำให้เกิดพฤติกรรมที่ผิดพลาดดังกล่าว การจำลองแบบข้อผิดพลาดได้รับการปรับปรุงอย่างมากโดยใช้การดำเนินการที่กำหนดขึ้น »
GNU Coreutils เป็นแพ็คเกจ จากโครงการ GNU ซึ่งมีเครื่องมือพื้นฐานมากมายที่จำเป็นสำหรับระบบปฏิบัติการแบบ Unix: cp (คัดลอกไฟล์หรือไดเร็กทอรี), mkdir (สร้างไดเร็กทอรี) เป็นต้น นักพัฒนาเสนอการปรับใช้ใหม่ในภาษา Rust
หนึ่งในเป้าหมาย: เพื่อให้แพ็คเกจใช้งานได้บนระบบปฏิบัติการอื่น: Windows, macOS, Android, FreeBSD ฯลฯ การย้ายครั้งนี้มาเพื่อรื้อฟื้นการถกเถียงเกี่ยวกับคำถามที่ว่าจะเริ่มโครงการใหม่ใน C และ C++ ต่อไป หรือเพียงแค่เลือกใช้ภาษา Rust
“ภาษา Rust ให้การรับประกันความปลอดภัยตามค่าเริ่มต้นเมื่อพูดถึงการจัดการหน่วยความจำ นี่ไม่ใช่กรณีของ C และ C++ ซึ่งการใช้งานใน Mozilla เป็นสาเหตุของปัญหาความปลอดภัยของหน่วยความจำ” Sylvestre Ledru เน้นย้ำ
อย่างไรก็ตาม Bjarne Stroustrup ไม่เห็นด้วยที่การเปรียบเทียบระหว่าง Rust และ C++ จำกัดแนวคิดของซอฟต์แวร์รักษาความปลอดภัยกับหน่วยความจำที่ปลอดภัย:
“ไม่มีคำจำกัดความเดียวของแนวคิดเรื่อง 'ความปลอดภัย' และเราสามารถบรรลุความปลอดภัยประเภทต่างๆ ผ่านการผสมผสานระหว่างรูปแบบการเขียนโปรแกรม ไลบรารีการสนับสนุน และโดยการใช้ประโยชน์จากการวิเคราะห์แบบสแตติก ดังนั้น Bjarne Stroustrup จึงแนะนำว่าสิ่งที่ได้จาก C++ ในแง่ของความปลอดภัยของซอฟต์แวร์นั้นขึ้นอยู่กับผู้พัฒนาและโดยเฉพาะอย่างยิ่ง ความรู้เกี่ยวกับเครื่องมือที่ภาษานั้นนำเสนอ ความเชี่ยวชาญของเขาเกี่ยวกับคอมไพเลอร์ ฯลฯ
วิศวกรของ Google ซึ่งทราบดีว่า C++ เสนออะไรให้เป็นไปได้ จึงได้เริ่มดำเนินการสร้างตัวยืนยันเงินกู้ในภาษานี้ เป็นคุณลักษณะของคอมไพเลอร์ Rust ที่รับประกันความปลอดภัยของหน่วยความจำผ่านการจัดการการจัดสรรตัวชี้หน่วยความจำ
ทีมงาน Google ซึ่งเผยแพร่ในไตรมาสที่สามของปีที่แล้ว มาถึงบทสรุปของ ว่าระบบที่คล้าย C++ ไม่ให้ยืมตัวเองไปใช้แบบฝึกหัดดังกล่าว และ ความปลอดภัยของหน่วยความจำใน C++ สามารถทำได้ พร้อมการควบคุมระหว่างการทำงานของโปรแกรม กล่าวอีกนัยหนึ่ง ด้วยรหัส C ++ ที่ช้าจึงเป็นไปได้ที่จะบรรลุระดับความปลอดภัยเทียบเท่ากับของ Rust.
การเปิดตัวโปรแกรมแก้ไข RisingWave เกิดขึ้นเมื่อ Rust โดดเด่นกว่าภาษาอื่นๆ ที่นำเสนอเป็นทางเลือกแทน C และ C++ มาหลายปี อันที่จริง เคอร์เนลของลีนุกซ์กำลังเปิดรับภาษาการเขียนโปรแกรมระบบของ Mozilla มากขึ้นเรื่อยๆ