Vývojář nabízí reimplementaci GNU Coreutils v Rustu 

gnu-coreutils-rust

Použití Rustu pro tento projekt pomůže urychlit tento proces, protože mnoho potenciálních chyb je zcela odstraněno.

Sylvestre Ledru začal pracovat na reimplementaci GNU Coreutils v Rustu během pandemie COVID-19 a minulý týden ji prezentoval na FOSDEM 2023. Výsledný projekt s názvem uutils je nyní součástí mnoha linuxových distribucí a používá ho také populární sociální síť prostřednictvím projektu Yocto.

Srovnání jazyků Rust a C++ mají společné vlákno: zdůraznění převahy Rustu nad C++ z hlediska bezpečnosti paměti. Editor RisingWave vysvětluje, proč po odchodu z projektu C++ přepsal svůj nativní Cloud DBMS od nuly do Rustu.

„Rust zajišťuje bezpečnost paměti a vláken v době kompilace zavedením pravidel vlastnictví. Jde nad rámec RAII, mechanismu správy paměti běžně používaného v C++. Má to dvě výhody. První je zřejmý: jakmile kompilátor Rust ověří náš program, nebudeme mít za běhu žádné chyby segmentů ani závodní podmínky, které by vyžadovaly desítky hodin ladění, zejména ve vysoce souběžné kódové základně a ve většině asynchronním režimu. Druhý je jemnější: kompilátor Rust jednoduše omezuje typy selhání, což snižuje těsně vnořené úryvky kódu, které mohou způsobit takové chybné chování. Replikace chyb je výrazně vylepšena použitím deterministického provádění. »

GNU Coreutils je balíček projektů GNU obsahující mnoho základních nástrojů potřebných pro unixové operační systémy : cp (kopírování souboru nebo adresáře), mkdir (vytvoření adresáře) atd. Vývojář nabízí reimplementaci v jazyce Rust.

Jedním z cílů je zpřístupnit balíček i na jiných operačních systémech : Windows, macOS, Android, FreeBSD atd. Tento krok znovu oživuje debatu o tom, zda pokračovat v zakládání nových projektů v jazyce C a C++, nebo se jednoduše rozhodnout pro jazyk Rust.

„Jazyk Rust nabízí ve výchozím nastavení záruky zabezpečení, pokud jde o správu paměti. To není případ C a C++, jejichž použití v Mozille je příčinou problémů se zabezpečením paměti,“ zdůrazňuje Sylvestre Ledru.

Bjarne Stroustrup však nesouhlasí s tím, že srovnání mezi Rustem a C++ omezuje pojem zabezpečení softwaru na zabezpečení paměti:

„Neexistuje jediná definice pojmu „zabezpečení“ a můžeme dosáhnout různých typů zabezpečení kombinací stylů programování, podpůrných knihoven a využitím statické analýzy. Bjarne Stroustrup tak naznačuje, že to, co lze z C++ z hlediska softwarového zabezpečení získat, závisí mimo jiné na vývojáři a zejména na znalosti nástrojů, které daný jazyk nabízí, jeho zvládnutí kompilátoru atp.

Inženýři Google, vědomi si toho, jaké možnosti jim C++ nabízí, se pustili do vytvoření ověřovače půjček v tomto jazyce. Je to funkce kompilátoru Rust, která zajišťuje bezpečnost paměti prostřednictvím správy alokace ukazatelů paměti.

Tým Googlu, jehož publikace se objevila ve třetím čtvrtletí předchozího roku, dospěl k závěru, že systém podobný C++ se pro takový úkol příliš nehodí. A aby bylo v C++ dosaženo zabezpečení paměti, lze toho dosáhnout pouze pomocí kontrol během provádění programu. Jinými slovy, právě s pomalým kódem C++ je možné dosáhnout úrovně zabezpečení ekvivalentní Rustu.

Vydání editoru RisingWave přichází ve chvíli, kdy Rust vyniká nad ostatními jazyky, které byly léta prezentovány jako alternativy k C a C++. Ve skutečnosti se linuxové jádro stále více otevírá systémovému programovacímu jazyku Mozilly.


Přidat jako preferovaný zdroj v Googlu