Soo jeedinta ka doodista arrinta ku darista agabka horumarinta daxalka ee kernel-ka Linux

Nick Desagnier (Nick Desaulniers), kaasoo ka shaqeeya Google inuu bixiyo taageero dhisidda kernel-ka Linux iyadoo la adeegsanayo isku-dariyaha Clang iyo sidoo kale caawinta ku hagaaji khaladaadka ku jira compiler Rust, soo jeediyay shir lagu qabto Shirka Plumbers Linux 2020 kalfadhiga si looga wada hadlo suurtogalinta in la horumariyo qaybaha kernel ee miridhku. Nick wuxuu abaabulayaa shir-yar oo loogu talagalay LLVM, wuxuuna aaminsan yahay inay fiicnaan lahayd in laga wada hadlo dhinacyada farsamada ee suurtogalka ah isdhexgalka taageerada Rust ee kernel (wuxuu horeyba u diyaariyey tusaalaha shaqada ee KBuild) oo uu fahmo in taageeradaas ay tahay in lagu daro gabi ahaanba iyo waxa xaddidaadda isticmaalka miridhku waa in la aqbalo.

Aynu dib u xasuusanno dooddii dhowaan ka dhacday Shirweynihii Ilaha Furan iyo shirkii Linux ee la dhex-dhigay, Linus Torvalds. ma aysan xukumin Soo ifbaxa xirmooyinka horumarinta nidaamyada hoose ee kernel-ka (tusaale ahaan, darawallada) ee luqadaha sida Rust. Kartida lagu horumarinayo darawalada gudaha Rust waxay noo ogolaanaysaa inaan abuurno darawalo badbaado leh oo ka fiican oo leh dadaal yar, oo ka madax banaan dhibaatooyinka sida helitaanka xusuusta ka dib xoreynta, tilmaame null ah, iyo dulsaar xad dhaaf ah. Waxa horeba u jiray dhawr mashruuc oo dhinac saddexaad ah si loo fuliyo sifadan:

  • Soo-saareyaasha shirkadda "Fish in a foosto" diyaarisay qalab loogu talagalay qorista cutubyada la rari karo ee Linux kernel ee luuqada Rustka, iyadoo la adeegsanayo lakabyo aan la taaban karin oo dulmaraya is-dhexgalka iyo qaab dhismeedka kernel si loo kordhiyo amniga. Lakabyada si toos ah ayaa loo soo saaray iyadoo lagu salaynayo faylalka madaxa kernel ee jira iyadoo la isticmaalayo utility xidhan. Clang waxaa loo isticmaalaa in lagu dhiso lakabyo. Marka lagu daro isku-xidhayaasha, qaybaha la isku keenay waxay isticmaalaan xirmada staticlib.
  • Cilmi-baarayaal ka socda Jaamacadda Shiinaha ee Hong Kong horumariyo Mashruuc loogu talagalay horumarinta darawalada nidaamyada ku-xiran iyo aaladaha Internetka ee Waxyaabaha ku jira Rust, kaas oo sidoo kale adeegsada bindgen si loo abuuro lakabyo ku saleysan faylalka madaxa kernel. Nidaamku wuxuu kuu oggolaanayaa inaad hagaajiso amniga darawalka adigoon isbeddel ku sameynin kernel - halkii laga abuuri lahaa heerar dheeraad ah oo go'doomin ah darawallada kernel-ka, waxaa la soo jeediyay in la joojiyo dhibaatooyinka marxaladda isku-darka, adoo isticmaalaya luqadda Rust ee ammaan ah. Waxaa loo malaynayaa in habkan oo kale uu yahay mid ay dalbanayaan soosaarayaasha qalabka si degdeg ah u samaynaya darawallo gaar ah iyada oo aan la samayn hanti-dhawr habboon.
  • Horumarinta qaab-dhismeedka C2Rust baahinta C code ee Rust, fulin tijaabooyin lagu beddelayo cutubyada kernel-ka oo leh tafatirka gacanta ugu yar. Mid ka mid ah dhibaatooyinka la xusay waa isticmaalka qaybo badan oo ka mid ah kernel of code ee adeegsada kordhinta GCC ee aan weli lagu taageerin C2Rust. Si loo xalliyo dhibaatadan, C2Rust waxay qorsheyneysaa inay ku darto taageerada sifooyinka GCC ee khadka, qabow, naaneyska, la isticmaalo iyo qaybta, iyo sidoo kale ballaarinta awoodaha isku-duwayaasha khadka iyo xalinta dhibaatooyinka qaab-dhismeedka kuwaas oo labadaba isku xiran oo xiran (tusaale, xregs_state) . Dhibaatooyinka muhiimka ah ee u baahan shaqada gacanta waxaa ka mid ah awood la'aanta in loo tarjumo macros C aan yareyn macros Rust iyo baahida loo qabo in dib loo qeexo noocyada, maadaama C2Rust ay u tarjumeyso noocyada C qeexitaanka xirmada libka, laakiin xirmadan looma isticmaali karo cutubyada kernels.

Source: opennet.ru

Add a comment