Linuxi kerneli roostetugi seisab silmitsi Torvaldsi kriitikaga

Linus Torvalds vaatas üle paigad, mis võimaldasid luua Linuxi kerneli jaoks Rust-keeles draivereid, ja tegi mõned kriitilised kommentaarid.

Kõige rohkem kaebusi põhjustas võimalik paanika() võimalus veaolukordades, näiteks vähese mäluga olukorras, kui dünaamilise mälu jaotamise toimingud, sealhulgas tuuma sees, võivad ebaõnnestuda. Torvalds väitis, et selline lähenemine tuumas on põhimõtteliselt vastuvõetamatu ja kui sellest punktist aru ei saada, võib ta täielikult NAKida iga koodi, mis sellist lähenemist kasutada üritab. Teisest küljest nõustus plaastri arendaja selle probleemiga ja peab seda lahendatavaks.

Teiseks probleemiks olid katsed kasutada ujukoma- või 128-bitiseid tüüpe, mis pole sellistes keskkondades nagu Linuxi kernel vastuvõetavad. See osutus tõsisemaks probleemiks, kuna hetkel on Rusti tuumteek jagamatu ja kujutab endast ühte suurt pläkki – ei ole võimalik nõuda ainult mõnda funktsiooni, mis takistab ühe või teise probleemse funktsionaalsuse kasutamist. Probleemi lahendamine võib nõuda muudatusi roostekompilaatoris ja teekides, kuigi hetkel pole meeskonnal veel strateegiat, kuidas keeleteekide modulariseerimist rakendada.

Lisaks märkis Torvalds, et esitatud juhinäide oli kasutu ja soovitas meil kasutada näitena mõnda draiverit, mis lahendab ühe tegelikest probleemidest.

Värskendus: Google on teatanud oma osalemisest algatuses Rusti toe surumiseks Linuxi kernelisse ja esitanud tehnilised põhjused Rusti kasutuselevõtuks, et võidelda mäluvigadest tulenevate probleemidega. Google usub, et Rust on valmis liituma C-ga kui Linuxi kerneli komponentide arendamise keelega. Artiklis tuuakse ka näiteid Rust keele kasutamisest kerneli draiverite arendamiseks, seoses nende kasutamisega Androidi platvormil (Rust on tunnustatud Androidi arenduse ametlikult toetatud keelena).

Märgitakse, et Google on Binderi protsessidevahelise sidemehhanismi jaoks ette valmistanud Rust keeles kirjutatud draiveri esialgse prototüübi, mis võimaldab üksikasjalikult võrrelda Binderi C- ja Rust-rakenduste jõudlust ja turvalisust. Praegusel kujul pole töö veel lõpetatud, kuid peaaegu kõigi Binderi tööks vajalike kerneli funktsionaalsuse põhiabstraktsioonide jaoks on ette valmistatud kihid nende abstraktsioonide kasutamiseks Rust koodis.

Allikas: opennet.ru

Lisa kommentaar