Toleo la nne la viraka kwa kinu cha Linux kwa kutumia lugha ya Rust

Miguel Ojeda, mwandishi wa mradi wa Rust-for-Linux, alipendekeza toleo la nne la vipengee vya kutengeneza viendesha kifaa katika lugha ya Rust ili kuzingatiwa na watengenezaji wa Linux kernel. Msaada wa kutu unachukuliwa kuwa wa majaribio, lakini tayari umekubaliwa kujumuishwa katika tawi linalofuata la linux na umekomaa vya kutosha kuanza kazi ya kuunda tabaka za uondoaji juu ya mifumo ndogo ya kernel, na vile vile viendeshaji na moduli za uandishi. Maendeleo hayo yanafadhiliwa na Google na ISRG (Kikundi cha Utafiti wa Usalama Mtandaoni), ambao ndio waanzilishi wa mradi wa Let’s Encrypt na kukuza HTTPS na uundaji wa teknolojia ili kuboresha usalama wa Mtandao.

Kumbuka kwamba mabadiliko yaliyopendekezwa hufanya iwezekane kutumia Rust kama lugha ya pili kwa kukuza viendeshaji na moduli za kernel. Usaidizi wa kutu unawasilishwa kama chaguo ambalo halijawezeshwa kwa chaguo-msingi na halisababishi Rust kujumuishwa kama tegemeo la ujenzi linalohitajika kwa kernel. Kutumia Rust kwa ukuzaji wa viendeshaji kutakuruhusu kuunda viendeshaji salama na bora zaidi kwa juhudi kidogo, bila matatizo kama vile ufikiaji wa kumbukumbu baada ya kukomboa, vielekezo visivyofaa vya vielekezi, na ziada ya bafa.

Utunzaji wa kumbukumbu-salama hutolewa katika Rust wakati wa kukusanya kupitia ukaguzi wa kumbukumbu, kufuatilia umiliki wa kitu na maisha ya kitu (wigo), na pia kupitia tathmini ya usahihi wa ufikiaji wa kumbukumbu wakati wa utekelezaji wa nambari. Kutu pia hutoa ulinzi dhidi ya mafuriko kamili, inahitaji uanzishaji wa lazima wa maadili tofauti kabla ya matumizi, hushughulikia makosa vyema katika maktaba ya kawaida, hutumia dhana ya marejeleo yasiyobadilika na vigeu kwa chaguo-msingi, hutoa uchapaji thabiti wa tuli ili kupunguza makosa ya kimantiki.

Toleo jipya la patches linaendelea kuondokana na maoni yaliyotolewa wakati wa majadiliano ya matoleo ya kwanza, ya pili na ya tatu ya patches. Katika toleo jipya:

  • Mpito wa kutumia toleo thabiti la Rust 1.58.0 kama kikusanya marejeleo limefanywa. Miongoni mwa mabadiliko muhimu kwa mradi, ambayo bado hayajajumuishwa kwenye zana kuu ya Rust, bendera ya "-Zsymbol-mangling-version=v0" (inayotarajiwa katika Rust 1.59.0) na hali ya "labda_uninit_ziada" (inatarajiwa katika Rust 1.60.0). .XNUMX) zinajulikana. .
  • Imeongeza ukaguzi wa kiotomatiki wa upatikanaji wa zana zinazofaa za Rust na kupanua uwezo wa kujaribu usaidizi wa Rust kwenye mfumo.
  • Vifupisho vipya vimependekezwa kwa ajili ya kufikia jedwali za vitambulishi vya kifaa (β€œIdArray” na β€œIdTable”) kutoka kwa msimbo wa Rust.
  • Safu zilizoongezwa za kufikia vitendaji vinavyohusiana na kipima muda (mfumo wa saa).
  • Viendeshaji vya majukwaa sasa vinafafanuliwa kupitia utekelezaji wa sifa.
  • Jumla mpya imeongezwa ili kurahisisha usajili wa viendeshaji vya mifumo, na kiolezo kipya cha kiendeshi cha kawaida kimependekezwa.
  • Macros iliyoongezwa kwa miundo ya "dev_*".
  • Njia za "{read,write}*_relaxed" za aina ya IoMem zimeongezwa.
  • Imeondoa kipengele cha FileOpener ili kurahisisha utendakazi wa faili.
  • Kigezo cha "ThisModule" kimeongezwa kwa hoja zilizopitishwa wakati wa kusajili dereva.
  • Kiolezo cha kawaida cha kuunda moduli za kernel katika lugha ya Rust kinapendekezwa.

Chanzo: opennet.ru

Kuongeza maoni