Toleo jipya la viraka vya kernel Linux kwa usaidizi wa lugha ya Rust

Miguel Ojeda, mwandishi wa mradi wa Rust-for-Linux, iliyopendekezwa kuzingatiwa na watengenezaji wa kernel Linux Kutolewa kwa v5 ya vipengele kwa ajili ya kutengeneza viendeshi vya vifaa katika Rust. Huu ni marekebisho ya sita ya viraka, kwa kuzingatia toleo la kwanza, lililochapishwa bila nambari ya toleo. Usaidizi wa kutu unachukuliwa kuwa wa majaribio, lakini tayari umejumuishwa katika tawi la linux-next na umekomaa vya kutosha kuanza kazi ya kuunda tabaka za uchukuaji juu ya mifumo midogo ya kernel, pamoja na uandishi wa viendeshi na moduli. Maendeleo hayo yanafadhiliwa na Google na ISRG (Kikundi cha Utafiti wa Usalama wa Mtandao), mwanzilishi wa mradi wa Let's Encrypt, ambao unakuza HTTPS na maendeleo ya teknolojia ili kuboresha usalama wa intaneti.

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.

Utoaji mpya wa kiraka unaendelea kushughulikia wasiwasi uliojitokeza wakati wa majadiliano ya matoleo ya kiraka cha kwanza, cha pili, cha tatu, cha nne, na cha tano. Katika toleo jipya:

  • Msururu wa zana umesasishwa hadi Rust 1.59.0. Utekelezaji wa maktaba ya alloc pia umesawazishwa na toleo jipya la Rust, na kuondoa hofu zinazoweza kusababishwa na hitilafu kama vile hali za nje ya kumbukumbu. Uwezo wa kutumia assembly injects ("feature(global_asm)") umeimarishwa.
  • Imeongeza usaidizi wa kuunda programu mwenyeji katika lugha ya Rust inayotumika wakati wa mkusanyiko wa kernel.
  • Badala ya kusambaza faili za vipimo vya jukwaa lengwa zilizotengenezwa awali, sasa zinazalishwa kiotomatiki kulingana na usanidi wa kernel.
  • Imeongeza kigezo cha kernel cha HAVE_RUST, ambacho kimewezeshwa kwa usanifu unaounga mkono Rust.
  • Vifupisho vinapendekezwa kutumika katika msimbo wa Rust wa jenereta ya nambari bandia nasibu ya maunzi.
  • Matumizi ya misimbo ya hitilafu bila kiambishi awali cha "Hitilafu::" (k.m. "rudisha Hitilafu (EINVAL)") yanaruhusiwa kukadiria utunzaji wa misimbo ya hitilafu katika C.
  • Imeongeza aina ya "CString" kwa mifuatano asilia ya C. Imeunganisha aina za Fomati na Buffer.
  • Aina za Bool na LockInfo zimeongezwa.
  • Utekelezaji wa kufuli za spin umerahisishwa.

Chanzo: opennet.ru

Nunua upangishaji wa kuaminika wa tovuti zilizo na ulinzi wa DDoS, seva za VPS VDS 🔥 Nunua upangishaji wa tovuti unaoaminika kwa ulinzi wa DDoS, seva za VPS VDS | ProHoster