Linus Torvalds tarkasteli korjauspäivityksiä, jotka toteuttivat mahdollisuuden luoda ajureita Rust-kielellä ytimelle. Linuxja esitti joitakin kriittisiä kommentteja.
Suurin kritiikki koski panic()-funktion mahdollisuutta virhetilanteissa, kuten muistin ollessa vähissä, jolloin dynaamiset muistin allokointioperaatiot, mukaan lukien ytimen sisäiset operaatiot, voisivat epäonnistua. Torvalds totesi, että tällainen lähestymistapa on pohjimmiltaan mahdoton hyväksyä ytimessä, ja jos tätä ei ymmärretä, hän voisi täysin hylätä minkä tahansa koodin, joka yrittää käyttää sitä. Toisaalta ongelman korjaamisesta vastaava kehittäjä myönsi ongelman ja uskoo sen olevan ratkaistavissa.
Toinen ongelma oli yritykset käyttää liukulukuja tai 128-bittisiä tyyppejä, mikä ei ole hyväksyttävää ympäristöissä, kuten ytimessä. LinuxTämä osoittautui vakavammaksi ongelmaksi, koska Rust-ydinkirjasto on tällä hetkellä jakamaton ja edustaa yhtä suurta möykkyä – se ei salli vain tiettyjen ominaisuuksien pyytämistä, mikä estää tiettyjen ongelmallisten toimintojen käytön. Tämän ongelman ratkaiseminen saattaa vaatia muutoksia Rust-kääntäjään ja -kirjastoihin, eikä tiimillä ole tällä hetkellä strategiaa modulaarisuuden toteuttamiseksi kielikirjastoissa.
Torvalds huomautti myös, että annettu ajuriesimerkki oli hyödytön ja neuvoi tarjoamaan ajuriesimerkin, joka ratkaisee todellisen ongelman.
Päivitys: Google on ilmoittanut osallistuvansa aloitteeseen, jolla Rust-tuki lisätään ytimeen. Linux ja esitteli Rustin käyttöönoton teknisen toteutettavuuden muistinhallintavirheistä johtuvien ongelmien ratkaisemiseksi. Google uskoo, että Rust on nyt valmis liittymään C:n seuraan ytimen komponenttien kehityskielenä. LinuxArtikkelissa annetaan myös esimerkkejä Rust-kielen käytöstä kernel-ajurien kehittämisessä alustan kontekstissa. Android (Rust on virallisesti tunnustettu kehityskieleksi Android).
Google on valmistellut alustavan prototyypin Rust-kielellä kirjoitetusta ajurista Binderin prosessienvälistä kommunikaatiomekanismia varten. Tämä mahdollistaa Binderin C- ja Rust-toteutusten yksityiskohtaisen suorituskyvyn ja tietoturvan vertailun. Vaikka työ ei ole vielä valmis, lähes kaikille ydinabstraktioille, joita Binder tarvitsee käyttääkseen näitä abstraktioita Rust-koodissa, on jo valmisteltu kerrokset.
Lähde: opennet.ru
