Trešā ielāpu versija Rust draivera atbalstam operētājsistēmā Linux jau ir izlaista

Sešus mēnešus pēc otrās versijas publicēšanas, Migels Ojeda, Rust-for-Linux projekta autors, darīja zināmu trešā varianta priekšlikumu ierīču draiveru izstrādei Rust valodā Linux kodolā.

Rust atbalsts tiek uzskatīts par eksperimentālu, bet par tā iekļaušanu linux-next zarā jau ir panākta vienošanās. Izstrādi finansē Google un ISRG (Internet Security Research Group) organizācija, kas ir projekta Let's Encrypt dibinātāja un sniedz ieguldījumu HTTPS popularizēšanā un tehnoloģiju izstrādē, lai uzlabotu interneta drošību.

Jāatceras, ka ierosinātās izmaiņas ļauj Rust izmantot kā otro valodu kodola draiveru un moduļu izstrādei.

Rust draiveri operētājsistēmā Linux
saistīto rakstu:
Rust draiveru atbalsta Linux ielāpu otrā versija jau ir nosūtīta

Rūsas atbalsts tiek reklamēts kā opcija, kas pēc noklusējuma nav aktīva un tā rezultātā Rust netiek iekļauts nepieciešamajās pamata uzbūves atkarībās. Rust izmantošana draiveru izstrādei ļaus jums izveidot labākus un drošākus draiverus ar minimālu piepūli, bez problēmām piekļūt atmiņas apgabalam, kad tas ir atbrīvots, atsaukt nulles rādītājus un pārsniegt bufera ierobežojumus.

Jaunā ielāpu versija turpina novērst komentārus, kas tika izteikti, apspriežot pirmo un otro ielāpu versiju, un ievērojamākās izmaiņas, ko varam atrast:

Pāreja uz Rust 1.57 stabilo versiju ir nodrošināta kā atsauces kompilators un saistība ar Rust 2021 valodas stabilizēto izdevumu. Pāreja uz Rust 2021 p specifikācijuatļauts sākt strādāt, lai izvairītos no šādu nestabilu līdzekļu izmantošanas ielāpos, piemēram, const_fn_transmute, const_panic, const_unreachable_unchecked un core_panic un try_reserve.

Tas arī izceļas alloc versijas izstrāde ir turpinājusies no Rust bibliotēkas jaunajā versijā, opcijas "no_rc" un "no_sync" ir ieviestas, lai atspējotu funkcionalitāti kas netiek izmantots Rust kodā kodolam, padarot bibliotēku modulārāku. Mēs turpinām strādāt ar galvenajiem alloc izstrādātājiem, lai galvenajā bibliotēkā ieviestu nepieciešamās kodola izmaiņas. Opcija "no_fp_fmt_parse", kas nepieciešama, lai bibliotēka darbotos kodola līmenī, ir pārvietota uz Rust bāzes bibliotēku (kodolu).

Kods ir notīrīts, lai noņemtu iespējamos kompilatora brīdinājumus kompilējot kodolu režīmā CONFIG_WERROR. Kad kods tiek izveidots Rust, tiek iekļauti papildu diagnostikas kompilatora režīmi un Clippy lintera brīdinājumi.

Viņi ierosināja abstrakcijas, lai izmantotu seqlocks (secības bloķēšana), atzvanīšanas zvani enerģijas pārvaldībai, atmiņas I / O (readX / writeX), pārtraukumu un pavedienu apstrādātāji, GPIO, piekļuve ierīcei, draiveri un akreditācijas dati rūsas kodā.

Ir paplašināti draiveru izstrādes rīki izmantojot pārvietojamus muteksus, bitu iteratorus, vienkāršotu saistīšanu pār norādes, uzlabotu kļūdu diagnostiku un datu kopnes neatkarīgu infrastruktūru.

Darbs ar saitēm ir uzlabots, izmantojot Ref veidu vienkāršots, pamatojoties uz refcount_t aizmugursistēmu, kas izmanto tāda paša nosaukuma centrālo API, lai uzskaitītu atsauces. Standarta kartēšanas bibliotēkā nodrošinātais Arc un Rc tipu atbalsts ir noņemts, un tas nav pieejams kodā, kas tiek izpildīts kodola līmenī (pašai bibliotēkai ir sagatavotas opcijas šo tipu atspējošanai).

Ielāpiem ir pievienota PL061 GPIO draivera versija, kas pārrakstīta Rust valodā. Draivera iezīme ir tāda, ka tā gandrīz pa rindiņai ieviešana atkārto esošo C GPIO draiveri. Izstrādātājiem, kuri vēlas iepazīties ar Rust ēku kontrolieriem, ir sagatavots salīdzinājums pa rindiņām, kas sniedz ieskatu par to, par kādiem Rust būvēm ir kļuvis C kods.

Rust galvenajā kodu bāzē tiek izmantota rustc_codegen_gcc — GCC rustc aizmugursistēma, kas ievieš AOT kompilāciju, izmantojot bibliotēku libgccjit. Pareizi attīstot aizmugursistēmu, tas ļaus jums savākt kodolā iesaistīto Rust kodu, izmantojot GCC.
Papildus ARM, Google un Microsoft Red Hat ir izteicis interesi par Rust izmantošanu Linux kodolā.

Visbeidzot, ja vēlaties uzzināt vairāk par to, varat uzzināt sīkāku informāciju Šajā saitē.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: AB Internet Networks 2008 SL
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.