Kätte saabub kaheksas versioon Rusti draiveri toe paikadest Linuxis

Miguel Ojeda, projekti Rust-for-Linux autor andis välja kaheksanda väljalase Rooste keele toega Linuxi kerneli paikade väljatöötamise kohta Linuxi tuuma arendajatele.

See on plaastrite üheksas väljalase (võttes arvesse esimest ilma versiooninumbrita välja antud versiooni). Roostetugi peetakse eksperimentaalseks, kuid see sisaldub juba linux-next harus, nõuab integreerimist versioonide 5.20/6.0 sügiseses versioonis ja on piisavalt arenenud, et alustada tööd abstraktsioonikihtide loomisega kerneli alamsüsteemide peal, samuti kontrollerite ja moodulite kirjutamisega.

Arendust rahastavad Google ja ISRG (Internet Security Research Group), mis on projekti Let's Encrypt asutaja ning edendab HTTPS-i ja tehnoloogiate arendamist Interneti-turvalisuse suurendamiseks.

Kavandatavad muudatused võimaldavad kasutada Rusti draiverite ja tuumamoodulite arendamiseks teise keelena. Rooste tugi esitatakse valikuna, mis ei ole vaikimisi lubatud ja mille tulemusel ei kaasata roostet kerneli jaoks vajalike ehitussõltuvuste hulka. Rooste kasutamine draiverite arendamiseks võimaldab teil luua paremaid ja ohutumaid draivereid minimaalse pingutusega, ilma probleemideta, nagu mälualale juurdepääs pärast selle vabastamist, nullviidate viitamise tühistamine ja puhvri ületäitumine.

Mälu turvalisus on Rustis kompileerimise ajal tagatud, kontrollides viiteid, jälgides objekti omandiõigust ja objekti eluiga (ulatust), samuti hinnates koodi täitmise ajal mälule juurdepääsu õigsust.

Mis on selles kaheksandas väljaandes uut?

Selles avaldatud uues ettepanekus on seda mainitud alloc teegi variant, mis välistas võimaliku "paanika" tekitamise vigade korral, värskendatud Rust versioonile 1.62. Võrreldes eelmise versiooniga on Rusti tööriistakomplekt stabiliseerinud kerneli paikades kasutatava funktsiooni const_fn_trait_bound toe.

Peale selle köitekood on eraldatud "köite" kastide kimpu eraldi, mis teeb ümberehitamise lihtsaks, kui muudetakse ainult põhikerneli paketti.

The makro "concat_idents!" rakendamine, Ümber kirjutatud protseduurilise makrona, mis ei ole seotud funktsiooniga concat_idents ja võimaldab kasutada kohalike muutujate viiteid.

Lisaks mainitakse, et makro "static_sert!" on ümber kirjutatud, et lubada "core::assert!()" kasutatakse igas kontekstis konstantide asemel, samas kui makro "ehitusviga!" on kohandatud töötama moodulite režiimi "RUST_BUILD_ASSERT_{WARN,ALLOW}" seadistamisel.

fs moodul lisatud mis pakub linke failisüsteemidega töötamiseks. Pakutakse välja näide lihtsast failisüsteemist, mis on kirjutatud Rustis, ja tööjärjekorra moodul, mis on lisatud süsteemijärjekordadega töötamiseks.

Muudest muudatustest mis sellest uuest ettepanekust silma paistavad:

  • Lisatud eraldi konfiguratsioonifail "kernel/configs/rust.config".
  • Makroasendustega töödeldud failid "*.i" on ümber nimetatud "*.rsi"-ks.
  • Eemaldatud tugi Rust-komponentide ehitamiseks, mille optimeerimistasemed erinevad C-koodi jaoks kasutatavatest.
  • Kasync mooduli arendus jätkus asünkroonsete programmeerimismeetodite (async) juurutamisega.
  • Lisatud näide tuumataseme TCP-serverist, mis on kirjutatud Rustis ja lisatud võimalus käsitleda katkestusi Rustis.
  • Lisatud on protseduuri makro, et oleks lihtsam töötada funktsioonide osuti tabelitega, näiteks struktuur file_operations.
  • Lisatud on kahesuunaline lingitud loendi rakendamine "unsafe_list::loend".
  • Lisatud esialgne tugi RCU-le ja valvetüübile, et kontrollida, kas lugemislukk on praeguse lõimega seotud.
  • Lisatud funktsioon Task::spawn() kerneli lõimede automaatseks loomiseks ja käivitamiseks.
  • Lisatud on ka meetod Task::wake_up().
  • Lisatud viivitusmoodul

Lõpuks kui olete huvitatud sellest rohkem teada saama, saate üksikasju vaadata Järgmisel lingil.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutav: AB Internet Networks 2008 SL
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.