Rust for Linux ietver vairākus atbalsta uzlabojumus

Pēdējo mēnešu laikā Linux izstrādātāji strīdējās iespēja atļaut lietot Rust valodu lai rakstītu kodolam jaunus ierīces draiverus.

Pagājušajā gadā Linux kodola izstrādātājiem šķiet, ka viņi ir panākuši vienošanos šajā jautājumā, Rust atbalstītāji ir citējuši darbu, kas parāda, ka aptuveni divas trešdaļas kodola ievainojamību, kas piešķirtas CVE operētājsistēmās Android un Ubuntu, ir saistītas ar atmiņas drošības problēmām.

Pēc šī paziņojuma Linuss Torvalds, programmatūras inženieris, galvenais radītājs un Linux kodola izstrādātājs, intervijā sacīja, ka diskusijas par šo tēmu būtu daudz svarīgākas par garu Google ierakstu par šo valodu.

Jautāts par ieteikumu izmantot Rust, viņš norādīja, ka "Šeit risinājums ir vienkāršs: Rust vietā izmantojiet C ++."

Pēc tam martā tika uzsākts pirmais atbalstse, kas ļāva Rust draiverus ievietot Linux-Next kokā turpmākai pārbaudei pirms to iespējamās iekļaušanas galvenajā kodolā.

Tieši aiz tā bija "pieprasījums komentēt", kas atkārtoti tika publicēts kodola adresātu sarakstā par Rust koda perspektīvu Linux kodolam.

Migels OjedaLinux kodola izstrādātājs Linux kodola adresātu sarakstā uzsāka komentāru pieprasījuma (RFC) priekšlikumu.

Adresātu saraksta ziņojumā tika izklāstīti izstrādātāju uzskati, kas iesaistīti Rust koda pievienošanā kodolam, priekšrocības, piemēram, uzlabota atmiņas drošība un daudz kas cits.

"Daži no jums pēdējo nedēļu un mēnešu laikā ir pamanījuši, ka tiek nopietni mēģināts ieviest otru valodu kodolā. Beidzot esam klāt ar RFC, kas pievieno Rust atbalstu Linux kodolam, ”sacīja Migels Odžeja. "Mēs zinām, ka jaunas valodas ieviešana kodolā rada milzīgas izmaksas un riskus," viņš piebilda.

Projekta komanda Rust for Linux pārvietots no Rust beta kompilatora uz stabilu laidienu izmantošanu, migrējot katru reizi, kad tiek izlaista jauna versija.

"Mēs vēlētos pateikties Rustam par sadarbību ar mums pie šīm iespējām, lai kodols varētu tās izmantot," sacīja Migels.

Atjauninot kompilatoru, komanda varēja noņemt dažus nestabilus līdzekļus no saraksta: const_fn_transmute, const_panic, const_unreachable_unchecked, core_panic un try_reserve.

Papildus tam tiek uzsvērts, ka ir pievienotas dažas modularizācijas iespējas vairāk, kas jāpiešķir, lai atspējotu dažas nevajadzīgas funkcijas: no_rc un no_sync.

Uz augšu, lai kodola lietošanas gadījums būtu labi atbalstīts vai, precīzāk, kodolam nepieciešamo opciju "mix", Upstream kodols ir pievienojis arī no_fp_fmt_parse.

No otras puses, Rust iespējoja virkni papildu diagnostiku Rust un Clippy kompilatoram. Viena atšķirība no C ir tā, ka rūsas diagnostiku ir nedaudz vieglāk atspējot kodā, kas parasti ir stingrāka.

arī ir ieviestas abstrakcijas un draiveru atjauninājumi. Komanda pievienoja abstrakcijas straumes bloķēšanai, jaudas pārvaldības atzvaniem, io atmiņai (readX / writeX), irq mikroshēmām un augsta līmeņa straumju pārvaldniekiem, gpio mikroshēmām (tostarp irq mikroshēmām), perifērijas ierīcēm, amba perifērijas ierīcēm un draiveriem.

Atbalsts kontrolieris ir uzlabots ar autobusu neatkarīgu infrastruktūru, Atsaucami objekti, atsaucami mutexi, efektīvi bitu iteratori, labāka panikas diagnostika un vienkāršoti rādītāju aptinēji. Turklāt tas uzlaboja un vienkāršoja Ref objektus (saderīgi ar refcount_t) un aizstāja visus Rust gadījumus.

Un jauns draiveris gpio PL061 ierīcēm ir ieviests un nosūtīts kā RFC ielāps.

Visbeidzot jāatzīmē, ka Rūsas atbalsts joprojām tiek uzskatīts par eksperimentālu. Tomēr, atbalsts ir pietiekami labs, lai kodola izstrādātāji sāktu strādāt Rust abstrakcijās rakstīšanas apakšsistēmām un kontrolleriem un citiem moduļiem. Pašreizējā sērija ir tikko ienākusi Linux-next, tāpēc pirmā palaišana notiks šonedēļ.

Fuente: https://lkml.org/lkml


Raksta saturs atbilst mūsu principiem redakcijas ētika. Lai ziņotu par kļūdu, noklikšķiniet uz šeit.

Esi pirmais, kas komentārus

Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta.

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  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.