Desmitā ielāpu versija Linux kodolam ar Rust valodas atbalstu

Migels Ojeda, projekta Rust-for-Linux autors, Linux kodola izstrādātājiem ir ierosinājis Rust ierīču draivera izstrādes komponentu v10 izlaišanu. Šis ir vienpadsmitais ielāpu izdevums, ņemot vērā pirmo versiju, kas publicēta bez versijas numura. Linusum Torvalds ir apstiprinājis Rust atbalsta iekļaušanu Linux 6.1 kodolā, ja vien nerodas neparedzētas problēmas. 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 paaugstināšanai.

Tāpat kā iepriekšējā ielāpu versija, v10 laidiens ir samazināts līdz minimumam, kas nepieciešams, lai izveidotu vienkāršu kodola moduli, kas rakstīts Rust. Atšķirības no iepriekšējās versijas ir saistītas ar nelieliem labojumiem, failā kallsyms.c aizvietojot sizeof ar ARRAY_SIZE un pielāgojot ielāpus v6.0-rc7 kodolam. Paredzams, ka minimālais ielāps, kas ir samazināts no 40 13 līdz XNUMX XNUMX koda rindiņām no XNUMX XNUMX līdz XNUMX XNUMX koda rindiņām, atvieglos Rust atbalsta iekļaušanu galvenajā plūsmā. Pēc minimālā atbalsta nodrošināšanas plānots pakāpeniski palielināt esošo funkcionalitāti, pārceļot citas izmaiņas no Rust-for-Linux filiāles.

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 starp nepieciešamajām kodola uzbūves atkarībām. Izmantojot Rust, lai izstrādātu draiverus, ar minimālu piepūli varēsit izveidot drošākus un labākus draiverus, bez problēmām, piemēram, piekļuves atmiņas apgabalam pēc tā atbrīvošanas, nulles norādes atsauču un bufera pārtēriņa.

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.

Avots: opennet.ru

Pievieno komentāru