Deseta različica popravkov za jedro Linuxa s podporo za jezik Rust

Miguel Ojeda, avtor projekta Rust-for-Linux, je predlagal izdajo v10 komponent za razvoj gonilnikov naprav Rust, ki naj jih razmislijo razvijalci jedra Linuxa. To je enajsta izdaja popravkov, upoštevajoč prvo različico, objavljeno brez številke različice. Vključitev podpore za Rust je odobril Linusum Torvalds za vključitev v jedro Linuxa 6.1, razen če se pojavijo nepredvidene težave. Razvoj financirata Google in ISRG (Internet Security Research Group), ki je ustanovitelj projekta Let's Encrypt in spodbuja HTTPS ter razvoj tehnologij za povečanje varnosti interneta.

Tako kot zadnja različica popravkov je izdaja v10 skrajšana na minimum, ki zadostuje za izdelavo preprostega modula jedra, napisanega v Rustu. Razlike glede na prejšnjo različico se zmanjšajo na manjše popravke, zamenjavo sizeof z ARRAY_SIZE v kallsyms.c in prilagajanje popravkov za jedro v6.0-rc7. Pričakuje se, da bo minimalni popravek, ki je bil zmanjšan s 40 vrstic kode na 13 vrstic kode, olajšal vključitev podpore za Rust v jedro. Po zagotovitvi minimalne podpore je načrtovano postopno povečanje obstoječe funkcionalnosti s prenosom drugih sprememb iz veje Rust-for-Linux.

Predlagane spremembe omogočajo uporabo Rusta kot drugega jezika za razvoj gonilnikov in modulov jedra. Podpora za Rust je predstavljena kot možnost, ki ni privzeto omogočena in ne povzroči vključitve Rusta med zahtevane odvisnosti gradnje za jedro. Uporaba Rusta za razvoj gonilnikov vam bo omogočila ustvarjanje varnejših in boljših gonilnikov z minimalnim naporom, brez težav, kot je dostop do območja pomnilnika, potem ko je ta osvobojen, dereferenciranje ničelnih kazalcev in prekoračitev medpomnilnika.

Varno ravnanje s pomnilnikom je v Rustu zagotovljeno v času prevajanja s preverjanjem sklicevanj, spremljanjem lastništva objekta in življenjske dobe (obsega) objekta ter z vrednotenjem pravilnosti dostopa do pomnilnika med izvajanjem kode. Rust zagotavlja tudi zaščito pred celoštevilskimi prelivi, zahteva obvezno inicializacijo vrednosti spremenljivk pred uporabo, bolje obravnava napake v standardni knjižnici, privzeto uporablja koncept nespremenljivih referenc in spremenljivk, ponuja močno statično tipkanje za zmanjšanje logičnih napak.

Vir: opennet.ru

Dodaj komentar