Jauna ielāpu versija Linux kodolam ar Rust valodas atbalstu

Migels Ojeda, projekta Rust-for-Linux autors, ierosināja v5 komponentu izlaišanu ierīču draiveru izstrādei Rust valodā, lai to apsvērtu Linux kodola izstrādātāji. Šis ir jau sestais ielāpu izdevums, ņemot vērā pirmo versiju, kas publicēts bez versijas numura. Rust atbalsts tiek uzskatīts par eksperimentālu, bet jau ir iekļauts linux-next filiālē un ir pietiekami attīstīts, lai sāktu darbu pie abstrakcijas slāņu izveides virs kodola apakšsistēmām, kā arī draiveru un moduļu rakstīšanas. Izstrādi finansē Google un ISRG (Internet Security Research Group), kas ir projekta Let's Encrypt dibinātājs un veicina HTTPS un tehnoloģiju izstrādi interneta drošības uzlabošanai.

Atgādiniet, ka ierosinātās izmaiņas ļauj izmantot Rust kā otro valodu draiveru un kodola moduļu izstrādei. Rust atbalsts tiek parādīts kā opcija, kas nav iespējota pēc noklusējuma, un tā rezultātā Rust netiek iekļauta kā obligātā kodola veidošanas atkarība. Izmantojot Rust draiveru izstrādei, ar minimālu piepūli varēsit izveidot drošākus un labākus draiverus, bez problēmām, piemēram, piekļuvi atmiņai pēc atbrīvošanas, nulles rādītāja atsauču un bufera pārtēriņu.

Atmiņas drošība Rust tiek nodrošināta kompilēšanas laikā, pārbaudot atsauces, sekojot līdzi objekta īpašumtiesībām un objekta kalpošanas laikam (tvērumam), kā arī novērtējot atmiņas piekļuves pareizību koda izpildes laikā. Rūsa arī nodrošina aizsardzību pret veselu skaitļu pārpildīšanu, pieprasa obligātu mainīgo vērtību inicializāciju pirms lietošanas, labāk apstrādā kļūdas standarta bibliotēkā, pēc noklusējuma piemēro nemainīgu atsauču un mainīgo jēdzienu, piedāvā spēcīgu statisko rakstīšanu, lai samazinātu loģiskās kļūdas.

Jaunā ielāpu versija turpina novērst komentārus, kas izteikti, apspriežot pirmo, otro, trešo, ceturto un piekto ielāpu izdevumu. Jaunajā versijā:

  • Rīku komplekts ir atjaunināts, lai atbrīvotu Rust 1.59.0. Alloc bibliotēkas variants ir arī sinhronizēts ar jauno Rust versiju, novēršot iespējamo “panikas” stāvokļa rašanos kļūdu gadījumā, piemēram, pietrūkstot atmiņas. Iespēja izmantot montāžas ieliktņus (“feature(global_asm)”) ir stabilizēta.
  • Pievienots atbalsts resursdatoru programmu izveidei Rust, kuras tiek izmantotas kodola kompilācijas laikā.
  • Tā vietā, lai piegādātu iepriekš ģenerētus mērķa platformas specifikācijas failus, tie tiek dinamiski ģenerēti, pamatojoties uz kodola konfigurāciju.
  • Pievienots HAVE_RUST kodola parametrs, lai iespējotu arhitektūras, kas atbalsta Rust.
  • Abstrakcijas ir ierosinātas izmantot Rust kodā aparatūras pseidogadījuma skaitļu ģeneratoram.
  • Atļauts izmantot kļūdu kodus bez prefiksa "Error::" (piemēram, "return Err(EINVAL)"), lai aptuvenu kļūdu kodu apstrādi C.
  • Pievienots "CString" tips pielāgotajām C virknēm. Veidi Formatētājs un Buferis ir apvienoti.
  • Pievienoti Bool un LockInfo veidi.
  • Pagrieziena bloķētāju ieviešana ir vienkāršota.

Avots: opennet.ru

Pievieno komentāru