Nag-aalok ang isang developer ng muling pagpapatupad ng GNU Coreutils sa Rust 

gnu-coreutils-rust

Ang paggamit ng Rust para sa proyektong ito ay makakatulong na mapabilis ang prosesong ito dahil maraming potensyal na bug ang ganap na naaalis.

Nagsimulang magtrabaho si Sylvestre Ledru sa muling pagpapatupad ng GNU Coreutils sa Rust sa panahon ng pandemya ng COVID-19 at iniharap ito noong nakaraang linggo sa 2023 na edisyon ng FOSDEM. Ang pagsisikap na tinatawag na uutils ay nakabalot na ngayon ng maraming distribusyon ng Linux at ginagamit din ng isang sikat na social network sa pamamagitan ng proyektong Yocto.

Ang mga paghahambing ng Rust at C++ na mga wika ay may isang karaniwang thread: itinatampok ang higit na kahusayan ni Rust sa C++ sa mga tuntunin ng kaligtasan ng memorya. Ipinapaliwanag ng editor ng RisingWave kung bakit muling isinulat niya ang kanyang katutubong Cloud DBMS mula sa simula sa Rust pagkatapos umalis sa proyektong C++.

“Tinitiyak ng kalawang ang memorya at kaligtasan ng thread sa oras ng pag-compile sa pamamagitan ng pagpapakilala ng mga panuntunan sa pagmamay-ari. Lumalampas ito sa RAII, isang mekanismo ng pamamahala ng memorya na karaniwang ginagamit sa C++. Mayroon itong dalawang pakinabang. Ang una ay halata: kapag na-validate ng Rust compiler ang aming programa, hindi na kami magkakaroon ng anumang mga error sa segment o kundisyon ng lahi sa runtime, na mangangailangan ng sampu-sampung oras ng pag-debug, lalo na sa isang mataas na kasabay na codebase at sa karamihan ay asynchronous. Ang pangalawa ay mas banayad: Pinipigilan lang ng compiler ng Rust ang mga uri ng mga pagkabigo, na binabawasan ang mahigpit na nested na mga snippet ng code na maaaring magdulot ng gayong maling gawi. Ang pagtitiklop ng error ay makabuluhang napabuti sa pamamagitan ng paggamit ng deterministikong pagpapatupad. »

Ang GNU Coreutils ay isang pakete mula sa proyekto ng GNU na naglalaman ng maraming pangunahing tool na kailangan para sa mga operating system na katulad ng Unix: cp (kopya ng file o direktoryo), mkdir (lumikha ng direktoryo), atbp. Nag-aalok ang isang developer ng muling pagpapatupad sa wikang Rust.

Isa sa mga layunin: gawing magagamit ang package sa iba pang mga operating system: Windows, macOS, Android, FreeBSD, atbp. Dumating ang hakbang upang muling buhayin ang debate sa tanong kung ipagpapatuloy ang pagsisimula ng mga bagong proyekto sa C at C++ o pipiliin lamang ang Rust na wika.

"Ang Rust na wika ay nag-aalok ng mga garantiya sa seguridad bilang default pagdating sa pamamahala ng memorya. Hindi ito ang kaso ng C at C++, na ang paggamit sa Mozilla ay ang sanhi ng mga problema sa seguridad ng memorya", binibigyang-diin ni Sylvestre Ledru.

Gayunpaman, hindi sumasang-ayon si Bjarne Stroustrup na ang mga paghahambing sa pagitan ng Rust at C++ ay naglilimita sa ideya ng pag-secure ng software sa pag-secure ng memorya:

“Walang iisang kahulugan ng paniwala ng 'seguridad' at makakamit natin ang iba't ibang uri ng seguridad sa pamamagitan ng kumbinasyon ng mga istilo ng programming, mga library ng suporta, at sa pamamagitan ng paggamit ng static na pagsusuri. Iminumungkahi ni Bjarne Stroustrup na kung ano ang maaaring makuha mula sa C++ sa mga tuntunin ng seguridad ng software ay nakasalalay, bukod sa iba pang mga bagay, sa developer at, lalo na, sa kaalaman sa mga tool na inaalok ng wika, ang kanyang kahusayan sa compiler, atbp.

Ang mga inhinyero ng Google, na alam kung ano ang inaalok sa kanila ng C++ bilang mga posibilidad, ay nagsimula sa paglikha ng isang loan verifier sa wikang ito. Ito ay isang tampok ng Rust compiler na nagsisiguro sa kaligtasan ng memorya sa pamamagitan ng pamamahala ng paglalaan ng memory pointer.

Google team, na ang publikasyon ay lumabas sa ikatlong quarter ng nakaraang taon, dumating sa konklusyon ng na ang C++-like system ay hindi nagpapahiram ng sarili sa naturang ehersisyo. At sa na ang kaligtasan ng memorya sa C++ ay maaaring makamit na may mga kontrol sa panahon ng pagpapatupad ng programa. Sa ibang salita, ito ay may mabagal na C++ code na posibleng makamit ang antas ng seguridad na katumbas ng Rust.

Ang paglabas ng RisingWave editor ay dumating bilang ang Rust ay namumukod-tangi sa iba pang mga wika na ipinakita sa loob ng maraming taon bilang mga alternatibo sa C at C++. Sa katunayan, ang Linux kernel ay nagiging mas at mas bukas sa mga system programming language ng Mozilla.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: AB Internet Networks 2008 SL
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.