Toleo jipya la viraka kwa kinu cha Linux na msaada kwa lugha ya Rust

Miguel Ojeda, mwandishi wa mradi wa Rust-for-Linux, alipendekeza kutolewa kwa vipengee vya v5 kwa ajili ya kuendeleza viendesha kifaa katika lugha ya Rust ili kuzingatiwa na watengenezaji wa Linux kernel. Hili ni toleo la sita la viraka, kwa kuzingatia toleo la kwanza, lililochapishwa bila nambari ya toleo. Usaidizi wa kutu unachukuliwa kuwa wa majaribio, lakini tayari umejumuishwa katika tawi linalofuata la linux na umeendelezwa vya kutosha ili kuanza kazi ya kuunda tabaka za uondoaji juu ya mifumo ndogo ya kernel, pamoja na kuandika viendesha na moduli. Maendeleo hayo yanafadhiliwa na Google na ISRG (Kikundi cha Utafiti wa Usalama wa Mtandao), 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, ya tatu, ya nne na ya tano ya patches. Katika toleo jipya:

  • Zana ya zana imesasishwa ili kutoa Rust 1.59.0. Lahaja ya maktaba ya alloc pia inalandanishwa na toleo jipya la Rust, na kuondoa uwezekano wa kutokea kwa hali ya "hofu" makosa yanapotokea, kama vile kukosa kumbukumbu. Uwezo wa kutumia viunganishi (β€œfeature(global_asm))”) umeimarishwa.
  • Usaidizi ulioongezwa wa kuunda programu za mwenyeji katika Rust ambazo hutumiwa wakati wa uundaji wa kernel.
  • Badala ya kuwasilisha faili za vipimo vya jukwaa lengwa zilizoundwa mapema, zinatengenezwa kwa nguvu kulingana na usanidi wa kernel.
  • Imeongezwa HAVE_RUST kernel parameta ili kuwezesha usanifu unaotumia Rust.
  • Vidokezo vinapendekezwa kwa matumizi katika msimbo wa kutu kwa jenereta ya nambari ya uwongo isiyo ya kawaida.
  • Imeruhusu matumizi ya misimbo ya hitilafu bila kiambishi awali cha "Error::" (kwa mfano, "return Err(EINVAL)") ili kukadiria ushughulikiaji wa misimbo ya hitilafu katika C.
  • Aina ya "CSring" imeongezwa kwa mifuatano maalum ya C. Aina za Formatter na Buffer zimeunganishwa.
  • Aina za Bool na LockInfo zilizoongezwa.
  • Utekelezaji wa kufuli za spin umerahisishwa.

Chanzo: opennet.ru

Kuongeza maoni