Podrška za Rust u jezgru Linuxa naišla je na kritiku Torvaldsa

Linus Torvalds je pregledao ispravke s implementacijom mogućnosti kreiranja drajvera na jeziku Rust za Linux kernel i iznio nekoliko kritičkih zapažanja.

Najveće pritužbe izazvala je potencijalna mogućnost prelaska u panic() u grešnim situacijama, na primjer, u situaciji nedostatka memorije, kada operacije dinamičke alokacije memorije, uključujući i unutar samog kernela, mogu završiti greškom. Torvalds je izjavio da je takav pristup u kernelu principijelno neprihvatljiv i da, ako se to ne shvati, može potpuno odbaciti (totally NAKed) bilo koji kod koji pokuša primijeniti takav pristup. S druge strane, programer koji radi na ispravkama slaže se s ovim problemom i smatra ga rješivim.

Još jedan problem bile su pokušaji korištenja izračuna s pomičnom zarezom ili 128-bitnim tipovima, što nije prihvatljivo za takva okruženja kao što je Linux kernel. To se pokazalo ozbiljnijim problemom, budući da trenutna osnovna (core) biblioteka Rust nije modularna i predstavlja jedan veliki blob — u njoj nema mogućnosti da se zatraže samo određene funkcionalnosti, sprečavajući korištenje problematične funkcionalnosti. Rješenje ovog problema može zahtijevati izmjene u Rust kompajleru i biblioteci, a trenutna ekipa još nema strategiju kako ostvariti modularnost biblioteka jezika.

Osim toga, Torvalds je istaknuo da je dostavljeni primjer drajvera beskoristan i savjetovao da se priloži neki drajver koji rješava jednu od stvarnih problema.

Dopuna: Kompanija Google izjavila je o svom sudjelovanju u inicijativi za promociju podrške Rust-u u Linux kernel i navela tehničke aspekte opravdanosti uvođenja Rust-a za rešavanje problema koji nastaju usled grešaka pri radu s memorijom. Google smatra da je Rust već spreman pridružiti se C-u kao jezik za razvoj komponenti Linux kernela. U članku su također navedeni primjeri korištenja jezika Rust za razvoj drajvera kernela, u kontekstu njihove upotrebe na Android platformi (Rust je službeno podržani jezik za razvoj Android-a).

Primjećuje se da je Google pripremio početni prototip izvođača napisanog na jeziku Rust za mehanizam međuprocesne komunikacije Binder, što će omogućiti detaljno usporedbu performansi i sigurnosti realizacija Bindera na C-u i Rustu. U trenutnom obliku rad još nije dovršen, ali su gotovo sve osnovne apstrakcije funkcionalnosti jezgre potrebne za rad Bindera pripremljene za korištenje tih apstrakcija u kodu na jeziku Rust.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster