Ang ikasampung bersyon ng mga patch para sa Linux kernel na may suporta sa Rust na wika

Iminungkahi ni Miguel Ojeda, ang may-akda ng proyektong Rust-for-Linux, ang pagpapalabas ng mga bahagi ng v10 para sa pagbuo ng mga driver ng device sa wikang Rust para sa pagsasaalang-alang ng mga developer ng Linux kernel. Ito ang ikalabing-isang edisyon ng mga patch, na isinasaalang-alang ang unang bersyon, na inilathala nang walang numero ng bersyon. Ang pagsasama ng Rust support ay inaprubahan ng Linusum Torvalds para sa pagsasama sa Linux 6.1 kernel, maliban sa mga hindi inaasahang problema. Ang pagpapaunlad ay pinondohan ng Google at ng ISRG (Internet Security Research Group), na siyang nagtatag ng proyektong Let's Encrypt at nagpo-promote ng HTTPS at ang pagbuo ng mga teknolohiya upang mapabuti ang seguridad sa Internet.

Tulad ng nakaraang bersyon ng mga patch, ang paglabas ng v10 ay pinuputol hanggang sa pinakamababa, sapat na upang bumuo ng isang simpleng kernel module na nakasulat sa wikang Rust. Ang mga pagkakaiba mula sa nakaraang bersyon ay bumaba sa maliliit na pag-edit, pinapalitan ang sizeof ng ARRAY_SIZE sa kallsyms.c at pag-adapt ng mga patch sa v6.0-rc7 kernel. Inaasahan na ang pinakamababang patch, ang laki nito ay nabawasan mula 40 hanggang 13 libong linya ng code, ay magpapasimple sa pag-ampon ng suporta sa Rust sa pangunahing kernel. Pagkatapos magbigay ng kaunting suporta, pinlano na unti-unting taasan ang umiiral na functionality, paglilipat ng iba pang mga pagbabago mula sa sangay ng Rust-for-Linux.

Ginagawang posible ng mga iminungkahing pagbabago na gamitin ang Rust bilang pangalawang wika para sa pagbuo ng mga driver at kernel module. Ang suporta sa kalawang ay ipinakita bilang isang opsyon na hindi pinagana bilang default at hindi nagreresulta sa pagsasama ng Rust bilang isang kinakailangang build dependency para sa kernel. Ang paggamit ng Rust para sa pagpapaunlad ng driver ay magbibigay-daan sa iyo na lumikha ng mas ligtas at mas mahusay na mga driver na may kaunting pagsisikap, libre mula sa mga problema tulad ng pag-access sa memorya pagkatapos ng pagbabakante, mga hindi pagtukoy sa null pointer, at mga buffer overrun.

Ang kaligtasan ng memorya ay ibinibigay sa Rust sa oras ng pag-compile sa pamamagitan ng pagsuri sa sanggunian, pagsubaybay sa pagmamay-ari ng bagay at panghabambuhay ng bagay (saklaw), gayundin sa pamamagitan ng pagsusuri ng kawastuhan ng pag-access sa memorya sa panahon ng pagpapatupad ng code. Nagbibigay din ang kalawang ng proteksyon laban sa mga overflow ng integer, nangangailangan ng mandatoryong pagsisimula ng mga variable na halaga bago gamitin, mas mahusay na pinangangasiwaan ang mga error sa karaniwang library, inilalapat ang konsepto ng hindi nababagong mga sanggunian at mga variable bilang default, nag-aalok ng malakas na static na pag-type upang mabawasan ang mga lohikal na error.

Pinagmulan: opennet.ru

Magdagdag ng komento