Ceturtā izdevuma kodola ielāpi Linux ar Rust valodas atbalstu

Migels Ojeda, projekta “Rust-for-” autorsLinux, ierosināts kodola izstrādātāju izskatīšanai Linux Ceturtā komponentu versija ierīču draiveru izstrādei Rust vidē. Rust atbalsts tiek uzskatīts par eksperimentālu, taču tas jau ir apstiprināts iekļaušanai linux-next atzarā un ir pietiekami nobriedis, 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), Let's Encrypt projekta dibinātājs, kas 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 un trešo ielāpu izdevumu. Jaunajā versijā:

  • Ir veikta pāreja uz Rust 1.58.0 stabilās versijas izmantošanu kā atsauces kompilatoru. Starp projektam nepieciešamajām izmaiņām, kas vēl nav iekļautas galvenajā Rust rīkkopā, karodziņš “-Zsymbol-mangling-version=v0” (paredzams Rust 1.59.0) un režīms “maybe_uninit_extra” (paredzams Rust 1.60.0). .XNUMX) ir atzīmēti.
  • Pievienotas automātiskās pārbaudes piemērotu Rust rīku pieejamībai un paplašinātas iespējas pārbaudīt Rust atbalstu sistēmā.
  • Ir ierosinātas jaunas abstrakcijas, lai piekļūtu ierīču identifikatoru tabulām (“IdArray” un “IdTable”) no Rust koda.
  • Pievienoti slāņi, lai piekļūtu ar taimeri saistītām funkcijām (pulksteņa ietvars).
  • Platformas draiveri tagad tiek definēti, izmantojot iezīmju ieviešanu.
  • Ir pievienots jauns makro, lai vienkāršotu platformas draiveru reģistrāciju, un ir ierosināta jauna vispārīga draivera veidne.
  • Pievienoti makro "dev_*" struktūrām.
  • IoMem tipam pievienotas metodes “{lasīt, rakstīt}*_relaxed”. .
  • Noņemts FileOpener rekvizīts, lai vienkāršotu failu darbības.
  • Parametrs “ThisModule” ir pievienots argumentiem, kas nodoti, reģistrējot draiveri.
  • Tiek piedāvāta standarta veidne kodola moduļu izveidei Rust valodā.

Avots: opennet.ru

Iegādājieties uzticamu mitināšanu vietnēm ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa vietņu mitināšanu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster