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

Miguel Ojeda, autor projekta Rust-for-Linux, predložio je izdavanje v10 komponenti za razvoj upravljačkih programa uređaja u jeziku Rust na razmatranje od strane programera Linux kernela. Ovo je jedanaesto izdanje zakrpa, uzimajući u obzir prvu verziju, objavljenu bez broja verzije. Uključivanje podrške za Rust odobrio je Linusum Torvalds za uključivanje u jezgru Linuxa 6.1, osim nepredviđenih problema. Razvoj financiraju Google i ISRG (Internet Security Research Group) koji je osnivač projekta Let's Encrypt te promovira HTTPS i razvoj tehnologija za poboljšanje internetske sigurnosti.

Kao i prethodna verzija zakrpa, izdanje v10 smanjeno je na minimum, dovoljan za izgradnju jednostavnog modula kernela napisanog na jeziku Rust. Razlike u odnosu na prethodnu verziju svode se na manje izmjene, zamjenu sizeof s ARRAY_SIZE u kallsyms.c i prilagodbu zakrpa v6.0-rc7 kernelu. Očekuje se da će minimalna zakrpa, čija je veličina smanjena s 40 na 13 tisuća redaka koda, pojednostaviti usvajanje podrške za Rust u glavnoj jezgri. Nakon pružanja minimalne podrške, planirano je postupno povećavanje postojeće funkcionalnosti, prijenosom ostalih promjena iz Rust-for-Linux grane.

Predložene promjene omogućuju korištenje Rusta kao drugog jezika za razvoj upravljačkih programa i modula kernela. Podrška za Rust predstavljena je kao opcija koja nije omogućena prema zadanim postavkama i ne rezultira uključivanjem Rusta kao obavezne ovisnosti o izgradnji za kernel. Korištenje Rusta za razvoj upravljačkih programa omogućit će vam stvaranje sigurnijih i boljih upravljačkih programa uz minimalan napor, bez problema poput pristupa memoriji nakon oslobađanja, dereferenciranja nultog pokazivača i prekoračenja međuspremnika.

Rukovanje sigurnim za memoriju omogućeno je u Rustu tijekom kompajliranja provjerom referenci, praćenjem vlasništva objekta i životnog vijeka objekta (opseg), kao i procjenom ispravnosti pristupa memoriji tijekom izvođenja koda. Rust također pruža zaštitu od prekoračenja cjelobrojnih brojeva, zahtijeva obaveznu inicijalizaciju vrijednosti varijabli prije upotrebe, bolje obrađuje pogreške u standardnoj biblioteci, primjenjuje koncept nepromjenjivih referenci i varijabli prema zadanim postavkama, nudi snažno statično tipkanje za smanjenje logičkih pogrešaka.

Izvor: opennet.ru

Dodajte komentar