En utvikler tilbyr en reimplementering av GNU Coreutils i Rust 

gnu-coreutils-rust

Å bruke Rust for dette prosjektet vil bidra til å fremskynde denne prosessen ettersom mange potensielle feil er fullstendig eliminert.

Sylvestre Ledru begynte å jobbe med en reimplementering av GNU Coreutils i Rust under COVID-19-pandemien og presenterte den forrige uke under 2023-utgaven av FOSDEM. Innsatsen kalt uutils er nå pakket av mange Linux-distribusjoner og brukes også av et kjent sosialt nettverk gjennom Yocto-prosjektet.

Sammenligninger av Rust- og C++-språk har en rød tråd: fremhever Rusts overlegenhet over C++ når det gjelder minnesikkerhet. RisingWave-redaktøren forklarer hvorfor han omskrev sin opprinnelige Cloud DBMS fra bunnen av i Rust etter å ha forlatt C++-prosjektet.

"Rust sikrer minne og trådsikkerhet ved kompilering ved å introdusere eierskapsregler. Det går utover RAII, en minnestyringsmekanisme som vanligvis brukes i C++. Det har to fordeler. Den første er åpenbar: når Rust-kompilatoren validerer programmet vårt, vil vi ikke ha noen segmentfeil eller løpsforhold under kjøring, noe som vil kreve titalls timer med feilsøking, spesielt i en svært samtidig kodebase og i stort sett asynkron. Det andre er mer subtilt: Rusts kompilator begrenser ganske enkelt typene feil, noe som reduserer tett nestede kodebiter som kan forårsake slik feil oppførsel. Feilreplikering er betydelig forbedret ved å bruke deterministisk utførelse. »

GNU Coreutils er en pakke fra GNU-prosjektet som inneholder mange grunnleggende verktøy som trengs for Unix-lignende operativsystemer: cp (kopier en fil eller katalog), mkdir (opprett en katalog), etc. En utvikler tilbyr en reimplementering på Rust-språket.

Et av målene: å gjøre pakken brukbar på andre operativsystemer: Windows, macOS, Android, FreeBSD, etc. Flyttingen kommer for å gjenopplive debatten om spørsmålet om å fortsette å starte nye prosjekter i C og C++ eller bare velge Rust-språket.

«Språket Rust tilbyr sikkerhetsgarantier som standard når det gjelder minneadministrasjon. Dette er ikke tilfellet med C og C++, hvis bruk i Mozilla er årsaken til minnesikkerhetsproblemer”, understreker Sylvestre Ledru.

Bjarne Stroustrup er imidlertid uenig i at sammenligninger mellom Rust og C++ begrenser forestillingen om å sikre programvare til å sikre minne:

"Det er ingen enkelt definisjon av begrepet "sikkerhet", og vi kan oppnå en rekke typer sikkerhet gjennom en kombinasjon av programmeringsstiler, støttebiblioteker og ved å utnytte statisk analyse. Bjarne Stroustrup antyder dermed at hva som kan hentes fra C++ av programvaresikkerhet blant annet avhenger av utvikleren og spesielt av kunnskapen om verktøyene som språket tilbyr, hans mestring av kompilatoren osv.

Google-ingeniører, klar over hva C++ tilbyr dem som muligheter, har begynt å lage en låneverifikatør på dette språket. Det er en funksjon i Rust-kompilatoren som sikrer minnesikkerhet gjennom administrasjon av minnepekerallokering.

Google-teamet, hvis publikasjon dukket opp i tredje kvartal året før, kom til konklusjonen av at det C++-lignende systemet ikke egner seg til en slik øvelse. Og til at minnesikkerhet i C++ kan oppnås med kontroller under programkjøring. Med andre ord, det er med langsom C++-kode det er mulig å oppnå et sikkerhetsnivå tilsvarende Rust.

Utgivelsen av RisingWave-editoren kommer ettersom Rust skiller seg ut fra andre språk som har blitt presentert i årevis som alternativer til C og C++. Faktisk blir Linux-kjernen mer og mer åpen for Mozillas systemprogrammeringsspråk.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: AB Internet Networks 2008 SL
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.