นักพัฒนาเสนอการปรับใช้ GNU Coreutils ใหม่ใน Rust 

gnu-coreutils-สนิม

การใช้ Rust สำหรับโปรเจกต์นี้จะช่วยเร่งกระบวนการนี้เนื่องจากบั๊กที่อาจเกิดขึ้นจำนวนมากจะถูกกำจัดออกไปโดยสิ้นเชิง

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 มากขึ้นเรื่อยๆ


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

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

*

*

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