Razvijalec ponuja ponovno implementacijo GNU Coreutils v Rust 

gnu-coreutils-rja

Uporaba Rusta za ta projekt bo pomagala pospešiti ta proces, saj je veliko morebitnih hroščev popolnoma odpravljenih.

Sylvestre Ledru je začel delati na ponovni implementaciji GNU Coreutils v Rust med pandemijo COVID-19 in ga predstavil prejšnji teden med izdajo FOSDEM 2023. Prizadevanje, imenovano uutils, je zdaj vključeno v številne distribucije Linuxa, uporablja pa ga tudi znano družbeno omrežje prek projekta Yocto.

Primerjave jezikov Rust in C++ imajo skupno rdečo nit: poudarjanje premoči Rusta nad C++ v smislu varnosti pomnilnika. Urejevalnik RisingWave pojasnjuje, zakaj je po odhodu iz projekta C++ znova napisal svoj izvirni Cloud DBMS iz nič v Rust.

»Rust zagotavlja varnost pomnilnika in niti v času prevajanja z uvedbo lastniških pravil. Presega RAII, mehanizem za upravljanje pomnilnika, ki se običajno uporablja v C++. Ima dve prednosti. Prvi je očiten: ko prevajalnik Rust potrdi naš program, med izvajanjem ne bomo imeli nobenih napak v segmentih ali tekmovalnih pogojev, kar bi zahtevalo več deset ur odpravljanja napak, zlasti v zelo sočasni kodni bazi in večinoma asinhroni. Drugi je bolj subtilen: Rustov prevajalnik preprosto omeji vrste napak, kar zmanjša tesno ugnezdene odrezke kode, ki lahko povzročijo tako napačno vedenje. Podvajanje napak je bistveno izboljšano z uporabo determinističnega izvajanja. »

GNU Coreutils je paket iz projekta GNU ki vsebuje veliko osnovnih orodij, potrebnih za operacijske sisteme, podobne Unixu: cp (kopiraj datoteko ali imenik), mkdir (ustvari imenik) itd. Razvijalec ponuja ponovno implementacijo v jeziku Rust.

Eden od ciljev: narediti paket uporaben na drugih operacijskih sistemih: Windows, macOS, Android, FreeBSD itd. Ta poteza je namenjena oživitvi razprave o vprašanju, ali nadaljevati z začenjanjem novih projektov v C in C++ ali se preprosto odločiti za jezik Rust.

»Jezik Rust privzeto ponuja varnostna jamstva, ko gre za upravljanje pomnilnika. To ne velja za C in C++, katerih uporaba v Mozilli je vzrok za težave z varnostjo pomnilnika,« poudarja Sylvestre Ledru.

Vendar se Bjarne Stroustrup ne strinja, da primerjave med Rustom in C++ omejujejo pojem varovanja programske opreme na varovanje pomnilnika:

»Ne obstaja enotna definicija pojma 'varnost' in s kombinacijo stilov programiranja, podpornih knjižnic in z uporabo statične analize lahko dosežemo različne vrste varnosti. Bjarne Stroustrup tako nakazuje, da je to, kar je mogoče dobiti od C++ v smislu varnosti programske opreme, med drugim odvisno od razvijalca in predvsem od poznavanja orodij, ki jih jezik ponuja, njegovega obvladovanja prevajalnika itd.

Googlovi inženirji, ki se zavedajo, kaj jim C++ ponuja kot možnosti, so se lotili izdelave verifikatorja izposoje v tem jeziku. To je funkcija prevajalnika Rust, ki zagotavlja varnost pomnilnika z upravljanjem dodeljevanja kazalcev pomnilnika.

Googlova ekipa, katere publikacija je izšla v tretjem četrtletju prejšnjega leta, prišel do zaključka da sistem, podoben C++, ni primeren za takšno vajo. In do da je mogoče doseči varnost pomnilnika v C++ s kontrolami med izvajanjem programa. Z drugimi besedami, prav s počasno kodo C++ je mogoče doseči raven varnosti, ki je enaka ravni Rusta.

Izdaja urejevalnika RisingWave prihaja, ko Rust izstopa od drugih jezikov, ki so bili leta predstavljeni kot alternativa C in C++. Pravzaprav postaja jedro Linuxa vedno bolj odprto za Mozillin sistemski programski jezik.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Odgovoren za podatke: AB Internet Networks 2008 SL
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.