Ang suporta sa kalawang para sa Linux kernel ay nahaharap sa kritisismo mula sa Torvalds

Sinuri ni Linus Torvalds ang mga patch na nagpatupad ng kakayahang lumikha ng mga driver sa Rust na wika para sa Linux kernel, at gumawa ng ilang kritikal na komento.

Ang pinakadakilang mga reklamo ay sanhi ng potensyal na posibilidad ng panic() sa mga sitwasyon ng error, halimbawa, sa isang sitwasyon na mababa ang memorya, kapag ang mga operasyon ng dynamic na paglalaan ng memorya, kabilang ang loob ng kernel, ay maaaring mabigo. Sinabi ni Torvalds na ang gayong diskarte sa kernel ay sa panimula ay hindi katanggap-tanggap at, kung ang puntong ito ay hindi naiintindihan, maaari niyang ganap na Hubaran ang anumang code na sumusubok na gumamit ng ganoong diskarte. Sa kabilang banda, sumang-ayon ang developer ng patch sa problemang ito at itinuturing itong malulutas.

Ang isa pang problema ay ang mga pagtatangka na gumamit ng floating point o 128-bit na mga uri, na hindi katanggap-tanggap para sa mga kapaligiran tulad ng Linux kernel. Ito ay naging isang mas malubhang problema, dahil sa ngayon ang pangunahing Rust library ay hindi mahahati at kumakatawan sa isang malaking patak - walang paraan upang humiling lamang ng ilan sa mga tampok, na pumipigil sa paggamit ng isa o isa pang problemang pag-andar. Ang paglutas ng problema ay maaaring mangailangan ng mga pagbabago sa rust compiler at mga aklatan, bagama't sa ngayon ang koponan ay wala pang diskarte kung paano ipatupad ang modularization ng mga library ng wika.

Bilang karagdagan, sinabi ni Torvalds na ang ibinigay na halimbawa ng driver ay walang silbi at pinayuhan kaming gumamit bilang isang halimbawa ng ilang driver na lumulutas sa isa sa mga tunay na problema.

Update: Inihayag ng Google ang pakikilahok nito sa inisyatiba upang itulak ang suporta sa Rust sa kernel ng Linux at nagbigay ng mga teknikal na dahilan para sa pagpapakilala ng Rust upang labanan ang mga problemang nagmumula sa mga error sa memorya. Naniniwala ang Google na handa na ang Rust na sumali sa C bilang wika para sa pagbuo ng mga bahagi ng kernel ng Linux. Nagbibigay din ang artikulo ng mga halimbawa ng paggamit ng wikang Rust upang bumuo ng mga driver ng kernel, sa konteksto ng kanilang paggamit sa platform ng Android (Kinikilala ang Rust bilang isang opisyal na sinusuportahang wika para sa pagbuo ng Android).

Napansin na ang Google ay naghanda ng isang paunang prototype ng isang driver na nakasulat sa Rust para sa Binder interprocess na mekanismo ng komunikasyon, na magbibigay-daan para sa isang detalyadong paghahambing ng pagganap at seguridad ng mga pagpapatupad ng Binder sa C at Rust. Sa kasalukuyang anyo nito, ang gawain ay hindi pa kumpleto, ngunit para sa halos lahat ng mga pangunahing abstraction ng kernel functionality na kinakailangan para gumana ang Binder, ang mga layer ay inihanda para sa paggamit ng mga abstraction na ito sa Rust code.

Pinagmulan: opennet.ru

Magdagdag ng komento