Pembangun menawarkan pelaksanaan semula GNU Coreutils dalam Rust 

gnu-coreutils-rust

Menggunakan Rust untuk projek ini akan membantu mempercepatkan proses ini kerana banyak pepijat yang berpotensi dihapuskan sepenuhnya.

Sylvestre Ledru mula mengusahakan pelaksanaan semula GNU Coreutils dalam Rust semasa pandemik COVID-19 dan membentangkannya minggu lepas semasa FOSDEM edisi 2023. Usaha yang dipanggil uutils kini dibungkus oleh banyak pengedaran Linux dan juga digunakan oleh rangkaian sosial terkenal melalui projek Yocto.

Perbandingan bahasa Rust dan C++ mempunyai rentetan yang sama: menonjolkan keunggulan Rust berbanding C++ dari segi keselamatan ingatan. Editor RisingWave menerangkan mengapa dia menulis semula Cloud DBMS asalnya dari awal di Rust selepas meninggalkan projek C++.

“Karat memastikan ingatan dan keselamatan benang pada masa penyusunan dengan memperkenalkan peraturan pemilikan. Ia melangkaui RAII, mekanisme pengurusan memori yang biasa digunakan dalam C++. Ia mempunyai dua kelebihan. Yang pertama adalah jelas: sebaik sahaja pengkompil Rust mengesahkan program kami, kami tidak akan mempunyai sebarang ralat segmen atau keadaan perlumbaan pada masa larian, yang memerlukan berpuluh-puluh jam penyahpepijatan, terutamanya dalam pangkalan kod yang sangat serentak dan kebanyakannya tidak segerak. Yang kedua adalah lebih halus: Pengkompil Rust hanya mengekang jenis kegagalan, yang mengurangkan coretan kod bersarang ketat yang boleh menyebabkan tingkah laku rosak sedemikian. Replikasi ralat dipertingkatkan dengan ketara dengan menggunakan pelaksanaan deterministik. »

GNU Coreutils ialah pakej daripada projek GNU yang mengandungi banyak alat asas yang diperlukan untuk sistem pengendalian seperti Unix: cp (menyalin fail atau direktori), mkdir (membuat direktori), dsb. Pembangun menawarkan pelaksanaan semula dalam bahasa Rust.

Salah satu matlamat: untuk menjadikan pakej boleh digunakan pada sistem pengendalian lain: Windows, macOS, Android, FreeBSD, dsb. Langkah itu datang untuk menghidupkan semula perdebatan mengenai persoalan sama ada untuk meneruskan memulakan projek baharu dalam C dan C++ atau hanya memilih bahasa Rust.

“Bahasa Rust menawarkan jaminan keselamatan secara lalai apabila ia berkaitan dengan pengurusan memori. Ini bukan kes C dan C++, yang penggunaannya dalam Mozilla adalah punca masalah keselamatan memori”, tegas Sylvestre Ledru.

Walau bagaimanapun, Bjarne Stroustrup tidak bersetuju bahawa perbandingan antara Rust dan C++ mengehadkan tanggapan mengamankan perisian kepada mengamankan ingatan:

“Tiada definisi tunggal tentang pengertian 'keselamatan' dan kami boleh mencapai pelbagai jenis keselamatan melalui gabungan gaya pengaturcaraan, perpustakaan sokongan dan dengan memanfaatkan analisis statik. Oleh itu, Bjarne Stroustrup mencadangkan bahawa apa yang boleh diperoleh daripada C++ dari segi keselamatan perisian bergantung, antara lain, pada pembangun dan, khususnya, pada pengetahuan tentang alat yang ditawarkan oleh bahasa itu, penguasaannya terhadap pengkompil, dsb.

Jurutera Google, menyedari kemungkinan yang ditawarkan oleh C++ kepada mereka, telah memulakan penciptaan pengesah pinjaman dalam bahasa ini. Ia adalah ciri pengkompil Rust yang memastikan keselamatan memori melalui pengurusan peruntukan penunjuk memori.

pasukan Google, yang penerbitannya muncul pada suku ketiga tahun sebelumnya, sampai ke kesimpulan bahawa sistem seperti C++ tidak sesuai dengan latihan sedemikian. Dan kepada bahawa keselamatan ingatan dalam C++ boleh dicapai dengan kawalan semasa pelaksanaan program. Dalam kata lain, ia adalah dengan kod C++ yang perlahan bahawa adalah mungkin untuk mencapai tahap keselamatan yang setara dengan Rust.

Keluaran editor RisingWave datang kerana Rust menonjol daripada bahasa lain yang telah dibentangkan selama bertahun-tahun sebagai alternatif kepada C dan C++. Malah, kernel Linux semakin terbuka kepada bahasa pengaturcaraan sistem Mozilla.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.