Mnenje Grega Kroa-Hartmana in Keisa Cuka o promociji Rusta v jedro Linuxa

Greg Kroah-Hartman, odgovoren za podporo stabilni različici jedra Linuxa, se je izrazil v podporo razvoju novih komponent jedra v jeziku Rust. Kot oseba, skozi katero v zadnjih 15 letih prehajajo vse informacije o napakah in ranljivostih v jedru Linuxa, trdi, da večino napak v jedru povzročajo ne upoštevane posebnosti jezika C (corner case), ki so v kodi v jeziku Rust popolnoma izključene.

Z uporabo Rusta bomo lahko pustili v preteklosti težave, kot so dostop do pomnilnika po njegovem sproščanju, delni prehod čez mejni alokator, nepravilno sproščanje virov pri obravnavi napak in pozabljena preverjanja vračanih kod napak, kar bo vzdrževalcem omogočilo, da se osredotočijo na prave napake, kot so stanja dirke in težave z logiko, namesto da bi se pri pregledu odpirali majhnim težavam.

Obstoječa stara koda v jeziku C ne bo izginila, vendar bo za novo kodo in nove gonilnike uvedba Rusta omogočila znatno izboljšanje kakovosti. Uvedba Rusta bo prav tako omogočila strukturiranje notranjih programskih vmesnikov jedra na način, da bodo skoraj izključene napake pri uporabi notranjega API-ja - v jedru je nabranega preveč zapletenih in zmedenih API-jev, kar predstavlja veliko obremenitev za vzdrževalce pri preverjanju, da se ti API-ji uporabljajo pravilno. V procesu razvoja Rustovih oblog imajo vzdrževalci priložnost, da preoblikujejo in uredijo API, kar bo koristilo vsem, vključno z uporabniki jezika C.

Greg ne vidi Rusta kot 'srebrno kroglo', ki bi rešila vse težave v jedru, vendar ta jezik zagotovo pomaga v številnih situacijah. Podpora Rustu bo tudi zadovoljila potrebe razvijalcev gonilnikov, ki upajo, da bodo dobili orodje, ki omogoča pisanje kode za njihovo opremo, pri čemer se izogibajo številnim vrstam napak. Kar se tiče mešanja več jezikov, Greg v tem ne vidi velike težave, po njegovem mnenju so se prejšnji razvijalci jedra spoprijeli z resnejšimi nalogami in ni razloga, da bi se odpovedali promociji novih dobrih idej v jedro, ki bodo prispevale k uspehu projekta v naslednjih 20+ letih.

Razpravi se je pridružil tudi Kees Cook, nekdanji glavni sistemski administrator kernel.org in vodja Ubuntu Security Team. Kees je pojasnil, da ne gre za ponovno pisanje obstoječega jedrnega kode, temveč za omogočanje uporabe jezika Rust za razvoj novih gonilnikov in podsistemov. Uporaba Rust za nov kodo ne bo le zmanjšala števila napak pri upravljanju z pomnilnikom, temveč tudi skrajšala čas razvoja. Hitrost razvoja se povečuje zaradi zmanjšanja delovnega napora pri odpravljanju napak in strogih jamstev jezika, ki omogočajo odkrivanje napak v zgodnji fazi pisanja kode, še pred začetkom testiranja izdelka.

Učinkovitost strategije uporabe jezika Rust za izboljšanje kakovosti nove kode je bila že dokazano prikazana s strani Google na platformi Android. Pokaže se, da je glavni vir težav z varnostjo nova koda, in izboljšanju njene kakovosti je treba posvetiti posebno pozornost. Pri stari kodi obstaja eksponentna odvisnost varnosti od časa (na primer, 5-letna koda ima v povprečju 3.4-krat manjšo gostoto ranljivosti kot nova koda).

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster