Rust-subteno por Linukso-kerno alfrontas kritikon de Torvalds

Linus Torvalds reviziis la diakilojn kiuj efektivigis la kapablon krei ŝoforojn en la Rust-lingvo por la Linukso-kerno, kaj faris kelkajn kritikajn komentojn.

La plej grandaj plendoj estis kaŭzitaj de la ebla ebleco de paniko () en erarsituacioj, ekzemple, en situacio de malalta memoro, kiam operacioj de dinamika memora atribuo, inkluzive ene de la kerno, povas malsukcesi. Torvalds deklaris, ke tia aliro en la kerno estas esence neakceptebla kaj, se ĉi tiu punkto ne estas komprenita, li povas tute NAKigi ajnan kodon kiu provas uzi tian aliron. Aliflanke, la programisto de flikiloj konsentis kun ĉi tiu problemo kaj konsideras ĝin solvebla.

Alia problemo estis provoj uzi glitkoman aŭ 128-bitajn tipojn, kiuj ne estas akcepteblaj por medioj kiel la Linukso-kerno. Ĉi tio montriĝis pli serioza problemo, ĉar nuntempe la kerna Rust-biblioteko estas nedividebla kaj reprezentas unu grandan makulon - ne ekzistas maniero peti nur kelkajn el la funkcioj, malhelpante la uzon de unu aŭ alia problema funkcieco. Solvi la problemon povas postuli ŝanĝojn al la rusta kompililo kaj bibliotekoj, kvankam nuntempe la teamo ankoraŭ ne havas strategion pri kiel efektivigi moduligon de la lingvobibliotekoj.

Krome, Torvalds rimarkis, ke la provizita ŝoforekzemplo estis senutila kaj konsilis al ni uzi kiel ekzemplon iun ŝoforon kiu solvas unu el la veraj problemoj.

Ĝisdatigo: Google anoncis sian partoprenon en la iniciato puŝi Rust-subtenon en la Linuksan kernon kaj disponigis teknikajn kialojn por enkonduki Rust por batali problemojn devenantaj de memoreraroj. Guglo kredas, ke Rust pretas aliĝi al C kiel la lingvo por disvolvi Linuksan kernkomponentojn. La artikolo ankaŭ disponigas ekzemplojn de uzado de la Rust-lingvo por evoluigi kernelajn ŝoforojn, en la kunteksto de ilia uzo en la Android-platformo (Rust estas rekonita kiel oficiale subtenata lingvo por Android-evoluo).

Oni rimarkas, ke Google preparis komencan prototipon de ŝoforo skribita en Rust por la interproceza komunikmekanismo de Binder, kiu permesos detalan komparon de la agado kaj sekureco de Binder-efektivigoj en C kaj Rust. En ĝia nuna formo, la laboro ankoraŭ ne estas kompleta, sed por preskaŭ ĉiuj bazaj abstraktaĵoj de la kernfunkcieco necesaj por ke Binder funkciu, tavoloj estis preparitaj por uzi tiujn abstraktaĵojn en Rust-kodo.

fonto: opennet.ru

Aldoni komenton