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

Rust Linux kernel

Josh Triplett, tvrtka sa sjedištem u Intelu i član odbora za nadzor razvoja Crates.io, već predstavio radnu skupinu prije nekoliko dana u svom govoru na tehnološkom summitu otvorenog koda čiji je cilj dovesti Rust u ravan C s programiranjem jezgre Linuxa.

U radnoj skupini koja je u procesu stvaranja, Programeri hrđe, zajedno s Intelovim inženjerima, pripremit će specifikacije koji mogu istaknuti funkcionalnost koju Rust treba implementirati za programiranje unutar Linux jezgre. Programiranje sustava često zahtijeva manipulacije na niskoj razini, kao što je izvršavanje privilegiranih uputa za procesor 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 s memorijom na niskoj razini, već također pruža primjenjivost u razvoju modernih programskih paradigmi.

Tijekom rasprave o Joshovu govoru izražena je ideja da:

dodati sposobnost 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 poput pristupa memorijskom području nakon što ga oslobodite, referenciranja null pokazivača i izlaska izvan granica odbojnika.

Greg Kroah-Hartman, odgovoran za održavanje stabilne grane Linux jezgre ix je izrazio spremnost za dodavanje okvira Rust driver-a jezgri ako ima stvarnih prednosti u odnosu na C, na primjer, pružit će sigurna vezanja preko API-a 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.

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

Međuslojevi se automatski generiraju na temelju 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.

Istodobno se razvija još jedan projekt usmjeren na razvoj kontrolera za ugrađene sustave i uređaji Internet of Things, koji također koriste bindgen za generiranje ogrlica na temelju datoteka zaglavlja jezgre.

Okvir vam omogućuje poboljšanje sigurnosti upravljačkog programa bez promjene jezgre; Umjesto stvaranja dodatnih razina 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 biti u stanju razviti ovaj pristup na brzinu bez odgovarajuće revizije.

Još nisu implementirane sve planirane funkcionalnosti, 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 provedba prilikom pisanja upravljačkog programa Rust na jeziku C.

Primjećuje se da veličina modula i opći troškovi izvršavanja komponenti nisu značajni pri razvoju upravljačkog programa za Rust, koji vam omogućuje upotrebu okvira za uređaje s ograničenim resursima.

izvor: https://hub.packtpub.com


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  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 obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   L1ch dijo

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