Greg Croa-Hartman je govorio o tome kako Rust može pomoći u borbi protiv grešaka u Linux kernelu

Greg Kroah-Hartman, odgovoran za podršku stabilnim i 'staging' grana Linux jezgra i glavni održavatelj u 16 pod-sustava jezgra, održao je izlaganje na konferenciji Rust Week 2026, u kojem je govorio o tome kako programski jezik Rust može pomoći u sprečavanju ranjivosti u jezgru koje proizlaze iz uobičajenih grešaka programera u C-u prilikom rada s memorijom, blokadama, obradom grešaka i radom s nepouzdanim podacima. Kao glavna prednost Rust-a ističe se mogućnost otkrivanja ovakvih grešaka u fazi izgradnje, a ne revidiranjem koda od strane ljudi. Ipak, Rust se ne smatra panacejom koja može riješiti sve probleme, a niko ne planira prepisati jezgro u Rust-u: očekuje se postepena implementacija Rust-a kroz njegovo korištenje za nove drajvere i pod-sustave.

Kao primjer grešaka u jezgru koje bi se mogle izbjeći korištenjem Rust-a, spomenuta je greška u Bluetooth pod-sustavu koja je ostala neprimijećena 15 godina, uz problem u hipervizoru Xen. U prvom slučaju, programer je izvršio dereferenciranje pokazivača bez provjere, dok je u drugom zaboravio otključati blokadu u kodu za obradu grešaka.
Prema Gregu, većina grešaka u jezgru uzrokovana je sličnim sitnicama koje se s vremenom nakupljaju i isplivavaju kao ranjivosti. U Rust-u, mnoge od ovih problema sprječava prevodilac; na primjer, Rust-ove apstrakcije za blokade u jezgru omogućuju pristup internim pokazivačima struktura tek nakon stjecanja odgovarajuće blokade, koja se automatski uklanja. Bez stjecanja blokade, pristup pokazivačima struktura u Rust-u nije moguć.

Greg smatra da ovakve mogućnosti Rust-a ne bi dopustile pojavu 60% grešaka koje se otkrivaju u jezgru, a provjere koje provodi prevodilac oslobodile bi programere od trošenja vremena na rasprave s autorima o ispravnosti obrade grešaka i opravdanosti postavljanja blokada na pravim mjestima. Štaviše, implementacija podrške za Rust već je pozitivno utjecala i na C-kod u jezgru zahvaljujući uvođenju reda u C-kod i interfejse, kao i preuzimanju nekih razvojnih pristupa (na primjer, implementirane su blokade s ograničenim opsegom vidljivosti).

Zahvaljujući sistemu tipova koji osigurava pridržavanje zadatih pravila, kao i primjeni sistema kontinuirane integracije koji provjeravaju kod tokom kompilacije, prilikom recenziranja promjena u Rustu, recenzenti se mogu fokusirati na provjeru logike rada, a ne na praćenje manipulacija resursima. Primjena Rust-a također omogućava pažljiviji pristup podacima koji dolaze sa opreme ili iz vanjskih sistema. Ovo se postiže jasnim razdvajanjem pouzdanih i nepouzdanih podataka na nivou sistema tipova: programeru je samo potrebno izvršiti analizu prilikom prelaska iz nepouzdanog u pouzdano stanje.

U posljednje vrijeme tim koji se bavi sigurnošću jezgra objavljuje otprilike 13 izvještaja o ranjivostima svaki dan, što se u odnosu na prethodnu dinamiku otkrivanja ranjivosti doživljava kao neka vrsta ludila (na primjer, jučer je objavljeno 277 izvještaja o ranjivostima u jezgru). Po mišljenju Grega, korištenje Rust-a je jedan od stvarnih načina za smanjenje broja grešaka u jezgru, uzrokovanih tradicionalnim promašajima u obradi grešaka i upravljanju resursima. U jezgru je podrška za Rust već nadmašila eksperiment i krajem prošle godine je priznata kao standardna mogućnost jezgra.

Predvajaj video


Izvor: opennet.ru
Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster