Deseta verzija zakrpa za Linux kernel sa podrškom za Rust jezik

Miguel Ojeda, autor projekta Rust-for-Linux, predložio je izdavanje v10 komponenti za razvoj drajvera uređaja na jeziku Rust za razmatranje od strane programera jezgra Linuxa. Ovo je jedanaesto izdanje zakrpa, uzimajući u obzir prvu verziju, objavljenu bez broja verzije. Linusum Torvalds je odobrio uključivanje Rust podrške za uključivanje u jezgro Linuxa 6.1, izuzimajući nepredviđene probleme. Razvoj finansiraju Google i ISRG (Internet Security Research Group), koji je osnivač projekta Let's Encrypt i promoviše HTTPS i razvoj tehnologija za poboljšanje internet sigurnosti.

Kao i prethodna verzija zakrpa, v10 izdanje je svedeno na minimum, dovoljno da se napravi jednostavan modul kernela napisan na Rust jeziku. Razlike u odnosu na prethodnu verziju svode se na manje izmjene, zamjenu sizeof sa ARRAY_SIZE u kallsyms.c i prilagođavanje zakrpa na v6.0-rc7 kernel. Očekuje se da će minimalna zakrpa, čija je veličina smanjena sa 40 na 13 hiljada linija koda, pojednostaviti usvajanje Rust podrške u glavnom kernelu. Nakon pružanja minimalne podrške, planirano je postepeno povećanje postojeće funkcionalnosti, prenoseći ostale promjene iz grane Rust-for-Linux.

Predložene promjene omogućavaju korištenje Rusta kao drugog jezika za razvoj drajvera i modula kernela. Podrška za Rust je predstavljena kao opcija koja nije omogućena prema zadanim postavkama i ne dovodi do toga da Rust bude uključen kao obavezna zavisnost izgradnje za kernel. Korištenje Rusta za razvoj drajvera omogućit će vam da kreirate sigurnije i bolje drajvere uz minimalan napor, bez problema kao što su pristup memoriji nakon oslobađanja, nulte reference pokazivača i prekoračenje bafera.

Sigurnost memorije je obezbeđena u Rustu u vreme kompajliranja kroz proveru referenci, praćenje vlasništva nad objektom i životnog veka objekta (opsega), kao i kroz procenu ispravnosti pristupa memoriji tokom izvršavanja koda. Rust također pruža zaštitu od prekoračenja cijelih brojeva, zahtijeva obaveznu inicijalizaciju vrijednosti varijabli prije upotrebe, bolje obrađuje greške u standardnoj biblioteci, primjenjuje koncept nepromjenjivih referenci i varijabli po defaultu, nudi snažno statičko kucanje kako bi se minimizirale logičke greške.

izvor: opennet.ru

Dodajte komentar