Okvir u Rustu mogao bi se implementirati u kernel kako bi se poboljšali upravljački programi

Rust Linux kernel

Josh Triplett, kompanija sa sjedištem u Intelu i član odbora za nadzor razvoja Crates.io, već predstavio radnu grupu prije nekoliko dana u svom govoru na tehnološkom samitu otvorenog koda čiji je cilj dovesti Rust u ravni sa C u programiranju Linux jezgre.

U radnoj grupi koja je u procesu stvaranja, Programeri hrđe, zajedno s Intelovim inženjerima, pripremit će specifikacije koji mogu naglasiti funkcionalnost koju Rust treba implementirati za programiranje unutar Linux kernela. Programiranje sistema često zahtijeva manipulacije na niskom nivou, kao što je izvršavanje privilegiranih uputa procesora i dobivanje detaljnih informacija o statusu procesora.

Od sličnih mogućnosti koje se već razvijaju za Rust, podržana je podrška neimenovanim strukturama, sindikati (unija), umetci asemblera (makronaredba "asm!") i format broja s pokretnom zarezom BFLOAT16.

Josh vjeruje da budućnost sistemskog programiranja leži na Rustu, a jezik C u modernoj stvarnosti tvrdi da je mjesto Assemblera u prošlosti. Rust ne samo da oslobađa programere specifičnih problema na C jeziku koji nastaju uslijed rada na memoriji na niskom nivou, već također pruža primjenjivost u razvoju modernih programskih paradigmi.

Tokom rasprave o Joshovom govoru izražena je ideja da:

dodati mogućnost razvijanja upravljačkih programa na jeziku Rust u Linux jezgru, što bi omogućilo uz minimalan napor stvaranje boljih i sigurnijih upravljačkih programa koji ublažavaju probleme kao što je pristup memorijskom području nakon što ga oslobodite, referenciranje null pokazivača i izlazak izvan granica bafera.

Greg Kroah-Hartman, odgovoran za održavanje stabilne grane Linux jezgre ix je izrazio spremnost da doda jezgru Rust upravljačkog programa jezgri ako ima neke stvarne prednosti u odnosu na C, na primjer, pružit će sigurna povezivanja preko API-ja jezgre.Također, Greg ovaj okvir smatra samo opcijom koja nije aktivna prema zadanim postavkama, kako ne bi uključio Rust u broj ovisnosti sklopa jezgre.

Ispostavilo se da nekoliko timova već radi u ovom pravcu. Na primjer, programeri Riba u bačvi pripremili su komplet alata za pisanje modula koji se mogu učitati za Linux kernel na jeziku Rust, koristeći skup apstraktnih slojeva na vrhu sučelja i struktura kernela za povećanje sigurnosti.

Srednji slojevi se automatski generiraju na osnovu datoteka zaglavlja jezgre dostupnih pomoću uslužnog programa bindgen. Clang se koristi za izgradnju srednjih slojeva. Sastavljeni moduli, osim slojeva, koriste i paket staticlib.

Istovremeno se razvija još jedan projekat, fokusiran na razvoj kontrolera za ugrađene sisteme i uređaji Internet of Things, koji također koriste bindgen za generiranje ogrlica na osnovu datoteka zaglavlja jezgre.

Okvir vam omogućava da poboljšate sigurnost upravljačkog programa bez mijenjanja jezgre; Umjesto stvaranja dodatnih nivoa izolacije za upravljačke programe u jezgri, predloženo je blokiranje problema u fazi prevođenja korištenjem sigurnijeg jezika Rust.

Proizvođači opreme trebali bi moći razviti ovaj pristup na brzinu bez odgovarajuće revizije.

Još nije implementirana sva planirana funkcionalnost, ali okvir je već sasvim prikladan za posao i koristi se za pisanje ispravnog upravljačkog programa za isporučeni LAN9512 USB Ethernet kontroler na ploči Raspberry Pi 3.

Napisan je postojeći smsc95xx upravljački program kao referentna implementacija prilikom pisanja Rust upravljačkog programa na jeziku C.

Primijećeno je da veličina modula i režijski troškovi komponenti vremena izvođenja nisu značajni pri razvoju upravljačkog programa za Rust, koji vam omogućava upotrebu okvira za uređaje ograničene na resurse.

Izvor: https://hub.packtpub.com


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Odgovoran za podatke: AB Internet Networks 2008 SL
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   L1ch rekao je

    Ne mogu pronaći informacije za smsc95xx upravljački program u izvoru ili da će se nešto implementirati u Rust na Linuxu.