En utvecklare erbjuder en omimplementering av GNU Coreutils i Rust 

gnu-coreutils-rost

Att använda Rust för det här projektet kommer att påskynda processen eftersom många potentiella buggar helt elimineras.

Sylvestre Ledru började arbeta med en omimplementering av GNU Coreutils i Rust under covid-19-pandemin och presenterade den förra veckan under 2023 års upplaga av FOSDEM. Arbetet som kallas uutils är nu paketerat av många Linux-distributioner och används också av ett berömt socialt nätverk genom Yocto-projektet.

Jämförelser av språken Rust och C++ har en röd tråd: att lyfta fram Rusts överlägsenhet gentemot C++ när det gäller minnessäkerhet. RisingWave-redaktören förklarar varför han skrev om sitt inhemska Cloud DBMS från grunden i Rust efter att ha lämnat C++-projektet.

"Rust säkerställer minne och trådsäkerhet vid kompilering genom att införa äganderegler. Det går längre än RAII, en minneshanteringsmekanism som vanligtvis används i C++. Det har två fördelar. Det första är uppenbart: när Rust-kompilatorn väl har validerat vårt program kommer vi inte att ha några segmentfel eller tävlingsförhållanden under körning, vilket skulle kräva tiotals timmars felsökning, särskilt i en mycket samtidig kodbas och i mestadels asynkron. Det andra är mer subtilt: Rusts kompilator begränsar helt enkelt typerna av fel, vilket minskar tätt kapslade kodavsnitt som kan orsaka ett sådant felaktigt beteende. Felreplikering förbättras avsevärt genom att använda deterministisk exekvering. »

GNU Coreutils är ett paket från GNU-projektet som innehåller många grundläggande verktyg som behövs för Unix-liknande operativsystem: cp (kopiera en fil eller katalog), mkdir (skapa en katalog), etc. En utvecklare erbjuder en omimplementering på språket Rust.

Ett av målen: att göra paketet användbart på andra operativsystem: Windows, macOS, Android, FreeBSD, etc. Flytten kommer för att återuppliva debatten om frågan om man ska fortsätta starta nya projekt i C och C++ eller helt enkelt välja språket Rust.

"Språket Rust erbjuder säkerhetsgarantier som standard när det kommer till minneshantering. Detta är inte fallet med C och C++, vars användning i Mozilla är orsaken till minnessäkerhetsproblem”, betonar Sylvestre Ledru.

Bjarne Stroustrup håller dock inte med om att jämförelser mellan Rust och C++ begränsar idén om att säkra mjukvara till att säkra minne:

"Det finns ingen enskild definition av begreppet "säkerhet" och vi kan uppnå en mängd olika typer av säkerhet genom en kombination av programmeringsstilar, stödbibliotek och genom att utnyttja statisk analys. Bjarne Stroustrup menar alltså att vad som kan erhållas från C++ vad gäller mjukvarusäkerhet beror bland annat på utvecklaren och i synnerhet på kunskapen om de verktyg som språket erbjuder, dennes behärskning av kompilatorn osv.

Googles ingenjörer, medvetna om vad C++ erbjuder dem som möjligheter, har börjat skapa en låneverifierare på detta språk. Det är en funktion i Rust-kompilatorn som säkerställer minnessäkerhet genom minnespekartilldelningshantering.

Google-teamet, vars publicering publicerades under tredje kvartalet föregående år, kom fram till att det C++-liknande systemet inte lämpar sig för en sådan övning. Och till att minnessäkerhet i C++ kan uppnås med kontroller under programkörning. Med andra ord, det är med långsam C++-kod som det är möjligt att uppnå en säkerhetsnivå som motsvarar den för Rust.

Utgivningen av RisingWave-redigeraren kommer eftersom Rust skiljer sig från andra språk som har presenterats i åratal som alternativ till C och C++. Faktum är att Linux-kärnan blir mer och mer öppen för Mozillas systemprogrammeringsspråk.


Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för data: AB Internet Networks 2008 SL
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.