Rust Rustissa voitaisiin toteuttaa ytimessä kuljettajien parantamiseksi

Rust Linux -ydin

Josh Triplett, Intel-pohjainen yritys ja Crates.io-kehityksen valvontakomitean jäsen, esitteli jo muutama päivä sitten työryhmän puheessaan avoimen lähdekoodin teknologiahuippukokouksessa jonka tarkoituksena on tuoda Rust C: n tasolle Linux-ytimen ohjelmoinnissa.

Työryhmässä, jota ollaan luomassa, Ruosteen kehittäjät laativat yhdessä Intelin insinöörien kanssa eritelmät joka voi korostaa toimintoja, jotka Rust tarvitsee toteuttaa ohjelmoidessaan Linux-ytimessä. Järjestelmän ohjelmointi vaatii usein matalan tason manipulointeja, kuten etuoikeutettujen prosessoriohjeiden suorittamisen ja yksityiskohtaisten tietojen hankkimisen prosessorin tilasta.

Rustille jo kehitetyistä vastaavista ominaisuuksista nimeämättömien rakenteiden tukea tuetaan, unions (union), assembler-insertit ("asm!" -makro) ja BFLOAT16-liukulukujen muoto.

Josh uskoo, että järjestelmäohjelmoinnin tulevaisuus on Rustilla, ja nykyajan todellisuuden C-kieli väittää olevansa Assemblerin paikka menneisyydessä. Ruoste ei pelkästään lievitä kehittäjiä erityisistä C-kieliongelmista, jotka johtuvat matalan tason työskentelystä muistilla, vaan tarjoaa myös sovellettavuutta nykyaikaisten ohjelmointiparadigmojen kehittämiseen.

Joshin puheen keskustelun aikana ajatus ilmaistiin:

lisätä kyky kehittää ruostekielisiä ohjaimia Linux-ytimeen, mikä mahdollistaisi minimaalisten ponnistelujen avulla luoda parempia ja turvallisempia ohjaimia, jotka lievittävät ongelmia, kuten pääsy muistialueelle sen vapauttamisen jälkeen, viittaaminen nollaosoittimiin ja poistuminen rajojen yli puskurista.

Greg Kroah-Hartman, - vastuussa Linux-ytimen vakaan haaran ylläpitämisestä jax ilmaisi halukkuutensa lisätä Rust-ajurikehys ytimeen, jos sillä on todellisia etuja C: hen nähden, Greg pitää tätä kehystä vain vaihtoehtona, joka ei ole oletusarvoisesti aktiivinen, jotta Rustia ei sisällytetä ydinkokoonpanon riippuvuuksien määrään.

Kävi ilmi, että useat joukkueet työskentelevät jo tähän suuntaan. Esimerkiksi Fish in the Barrel -kehittäjät valmistelivat työkalupaketin ladattavien moduulien kirjoittamiseen Linux-ytimelle Rust-kielellä, käyttäen turvallisuuden parantamiseksi joukkoa abstrakteja kerroksia ytimen rajapintojen ja rakenteiden päällä.

Välikerrokset luodaan automaattisesti ytimen otsikkotiedostojen perusteella, jotka ovat käytettävissä bindgen-apuohjelmalla. Clangia käytetään välikerrosten rakentamiseen. Kokoonpanetut moduulit käyttävät kerrosten lisäksi staticlib-pakettia.

Samanaikaisesti kehitetään toista hanketta, joka keskittyy sulautettujen järjestelmien ohjainten kehittämiseen ja esineiden Internet-laitteet, jotka myös käyttävät bindgeniä kaulusten luomiseen ytimen otsikkotiedostojen perusteella.

Kehyksen avulla voit parantaa ohjaimen turvallisuutta tekemättä muutoksia ytimeen; Sen sijaan, että luodaan ylimääräisiä eristystasoja ohjaimille ytimessä, ehdotetaan, että ongelmat estetään kääntämisvaiheessa käyttämällä turvallisempaa Rust-kieltä.

Oletetaan, että laitevalmistajat voivat kehittää tämän lähestymistavan kiireellä ilman asianmukaista tarkastusta.

Kaikkia suunniteltuja toimintoja ei ole vielä toteutettu, mutta kehys on jo varsin sopiva työhön ja sitä käytetään toimivan ohjaimen kirjoittamiseen mukana toimitetulle LAN9512 USB Ethernet -ohjaimelle Raspberry Pi 3 -levylle.

Olemassa oleva smsc95xx-ohjain kirjoitettiin viitetoteutuksena kun kirjoitat Rust-ohjainta C-kielellä.

On huomattava, että moduulin koko ja ajonaikaiset komponentit eivät ole merkittäviä kehitettäessä Rust-ohjainta, jonka avulla voit käyttää kehystä laitteille, joilla on rajoitetut resurssit.

lähde: https://hub.packtpub.com


Artikkelin sisältö noudattaa periaatteita toimituksellinen etiikka. Ilmoita virheestä napsauttamalla täällä.

Kommentti, jätä sinun

Jätä kommentti

Sähköpostiosoitettasi ei julkaista.

*

*

  1. Vastaa tiedoista: AB Internet Networks 2008 SL
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.

  1.   L1ch dijo

    En löydä tietoa smsc95xx-ohjaimesta lähteestä tai että jotain on tarkoitus toteuttaa Linuxin Rustissa.