Podrška za Rust za Linux kernel suočava se s kritikama Torvaldsa

Linus Torvalds pregledao je zakrpe koje su implementirale mogućnost stvaranja upravljačkih programa na Rust jeziku za Linux kernel i dao neke kritičke komentare.

Najveće pritužbe izazvala je potencijalna mogućnost panike() u situacijama pogreške, na primjer, u situaciji nedostatka memorije, kada operacije dinamičke dodjele memorije, uključujući unutar kernela, mogu biti neuspješne. Torvalds je izjavio da je takav pristup u jezgri fundamentalno neprihvatljiv i, ako se ova točka ne razumije, on može u potpunosti uništiti svaki kod koji pokuša koristiti takav pristup. S druge strane, programer zakrpe složio se s ovim problemom i smatra ga rješivim.

Drugi problem bili su pokušaji korištenja pomičnog zareza ili 128-bitnih tipova, koji nisu prihvatljivi za okruženja kao što je Linux kernel. Ovo se pokazalo ozbiljnijim problemom, budući da je u ovom trenutku jezgra Rust knjižnice nedjeljiva i predstavlja jednu veliku mrlju - ne postoji način da se zahtijevaju samo neke od značajki, sprječavajući korištenje jedne ili druge problematične funkcionalnosti. Rješavanje problema može zahtijevati promjene u rust prevoditelju i bibliotekama, iako trenutno tim još nema strategiju kako implementirati modularizaciju jezičnih biblioteka.

Osim toga, Torvalds je primijetio da je navedeni primjer upravljačkog programa beskoristan i savjetovao nam je da kao primjer upotrijebimo neki upravljački program koji rješava jedan od stvarnih problema.

Ažuriranje: Google je najavio svoje sudjelovanje u inicijativi za ubacivanje podrške za Rust u jezgru Linuxa i pružio je tehničke razloge za uvođenje Rusta za borbu protiv problema koji proizlaze iz grešaka u memoriji. Google vjeruje da je Rust spreman pridružiti se C-u kao jeziku za razvoj komponenti Linux kernela. U članku se također navode primjeri korištenja jezika Rust za razvoj upravljačkih programa jezgre, u kontekstu njihove upotrebe na platformi Android (Rust je priznat kao službeno podržani jezik za razvoj Androida).

Napominje se da je Google pripremio inicijalni prototip upravljačkog programa napisanog u Rustu za međuprocesni komunikacijski mehanizam Bindera, koji će omogućiti detaljnu usporedbu performansi i sigurnosti implementacija Bindera u C-u i Rustu. U svom trenutnom obliku, rad još nije dovršen, ali za gotovo sve osnovne apstrakcije funkcionalnosti jezgre potrebne za rad Bindera, pripremljeni su slojevi za korištenje ovih apstrakcija u Rust kodu.

Izvor: opennet.ru

Dodajte komentar