Proposta għad-diskussjoni tal-kwistjoni taż-żieda ta 'għodod ta' żvilupp Rust mal-kernel tal-Linux

Nick Desagnier (Nick Desaulniers), li jaħdem fil-Google biex jipprovdi appoġġ tibni l-kernel tal-Linux bl-użu tal-kompilatur Clang u wkoll tgħin issolvi l-bugs fil-kompilatur Rust, propost iżomm f’konferenza Konferenza tal-Plamers tal-Linux 2020 sessjoni biex tiddiskuti li jagħmilha possibbli li jiġu żviluppati komponenti tal-qalba f'Rut. Nick qed jorganizza mikro-konferenza ddedikata għal LLVM, u jemmen li jkun sabiħ li jiddiskuti l-aspetti tekniċi tal-integrazzjoni possibbli tal-appoġġ Rust fil-qalba (diġa ħejja prototip ta' ħidma għal KBuild) u jifhem jekk tali appoġġ għandux. jiġu miżjuda fil-livelli kollha u liema restrizzjonijiet fuq l-użu ta ' Rust għandhom jiġu aċċettati.

Ejja nfakkru li f'diskussjoni reċenti fil-konferenza Open Source Summit u Embedded Linux, Linus Torvalds ma eskludihx l-emerġenza ta 'rbit għall-iżvilupp ta' sottosistemi tal-qalba mhux ċentrali (per eżempju, sewwieqa) f'lingwi bħal Rust. Il-ħila li niżviluppaw sewwieqa f'Rut tippermettilna noħolqu sewwieqa aktar sikuri u aħjar bi sforz minimu, ħielsa minn problemi bħal aċċess għall-memorja wara l-ħelsien, dereferences null pointer, u buffer overruns. Diġà hemm diversi proġetti ta’ partijiet terzi biex jimplimentaw din il-karatteristika:

  • Iżviluppaturi mill-kumpanija "Fish in a Barrel" ippreparat sett ta 'għodda għall-kitba ta' moduli li jistgħu jitgħabbew għall-qalba tal-Linux fil-lingwa Rust, bl-użu ta 'sett ta' saffi astratti fuq l-interfaces u strutturi tal-qalba biex tiżdied is-sigurtà. Is-saffi huma ġġenerati awtomatikament abbażi tal-fajls eżistenti tal-header tal-qalba bl-użu tal-utilità bindgen. Clang jintuża biex jinbnew saffi. Minbarra s-saffi ta' bejn is-saffi, il-moduli immuntati jużaw il-pakkett staticlib.
  • Riċerkaturi mill-Università Ċiniża ta 'Hong Kong tiżviluppa proġett għall-iżvilupp ta 'sewwieqa għal sistemi inkorporati u apparati tal-Internet tal-Oġġetti f'Rut, li juża wkoll bindgen biex jiġġenera saffi bbażati fuq fajls tal-header tal-kernel. Il-qafas jippermettilek ittejjeb is-sigurtà tas-sewwieq mingħajr ma tagħmel bidliet fil-qalba - minflok ma toħloq livelli ta 'iżolament addizzjonali għas-sewwieqa fil-qalba, huwa propost li timblokka l-problemi fl-istadju tal-kumpilazzjoni, bl-użu tal-lingwa Rust aktar sigura. Huwa preżunt li tali approċċ jista 'jkun fid-domanda mill-manifatturi tat-tagħmir li jiżviluppaw sewwieqa proprjetarji bil-għaġla mingħajr ma jwettqu verifika xierqa.
  • Żviluppaturi tal-qafas C2Rust għax-xandir tal-kodiċi C lil Rust, iwettqu esperimenti dwar il-konverżjoni tal-moduli tal-qalba b'modifiki manwali minimi. Waħda mill-problemi nnutati hija l-użu f'ħafna partijiet tal-qalba tal-kodiċi li juża estensjonijiet GCC li għadhom mhumiex appoġġjati f'C2Rust. Biex issolvi din il-problema, C2Rust qed tippjana li żżid appoġġ għall-attributi GCC inline, cold, alias, used and section, kif ukoll tespandi l-kapaċitajiet tal-assemblatur inline u ssolvi problemi bi strutturi li huma kemm allinjati u ppakkjati (per eżempju, xregs_state) . Problemi sinifikanti li jeħtieġu xogħol manwali jinkludu l-inabbiltà li jiġu tradotti macros C mhux trivjali f'macros Rust u l-ħtieġa li jiġu definiti mill-ġdid it-tipi, peress li C2Rust jittraduċi tipi C f'definizzjonijiet fil-pakkett libc, iżda dan il-pakkett ma jistax jintuża fil-moduli tal-kernel.

Sors: opennet.ru

Żid kumment