Daabacaadda saddexaad ee patches ee kernel Linux oo taageero u ah luqadda Rust

Miguel Ojeda, oo ah qoraaga mashruuca Rust-for-Linux, ayaa soo jeediyay ikhtiyaarka qayb saddexaad oo loogu talagalay horumarinta darawallada aaladaha luqadda Rust ee horumarinta kernel-ka Linux si ay u tixgeliyaan. Taageerada miridhku waxa loo tixgaliyaa inay tahay tijaabo, laakiin waxa hore loogu heshiiyey in lagu daro laanta linux-ta xigta. Horumarinta waxaa maalgeliya Google iyo ISRG (Kooxda Cilmi-baarista Amniga Internetka), oo ah aasaasaha mashruuca Aynu Encryption oo dhiirrigeliya HTTPS iyo horumarinta tignoolajiyada si loo hagaajiyo amniga internetka.

Xusuusnow in isbeddellada la soo jeediyay ay suurtogal ka dhigayaan in la isticmaalo Rust sida luqadda labaad ee horumarinta darawallada iyo qaybaha kernel-ka. Taageerada miridhku waxa loo soo bandhigay sidii ikhtiyaar aan si toos ah u shaqayn oo aan keenin in miridhku lagu daro sidii ku-tiirsanaanta loo baahan yahay ee kernel-ka. Isticmaalka Rust ee horumarinta darawalka waxay kuu oggolaan doontaa inaad abuurto darawallo badbaado leh oo ka wanaagsan oo leh dadaal yar, oo ka madax bannaan dhibaatooyinka sida gelitaanka xusuusta ka dib markii la sii daayo, tilmaameyaal aan waxba lahayn, iyo xad-dhaaf ah.

Badbaadada xusuusta waxaa lagu bixiyaa miridhku marka la ururiyo wakhtiga iyada oo la hubinayo tixraaca, la socodka lahaanshaha shay iyo cimriga shayga (baaxadda), iyo sidoo kale iyada oo loo marayo qiimaynta saxda ah ee helitaanka xusuusta inta lagu jiro fulinta koodka. Daxalku sidoo kale wuxuu ka ilaaliyaa qulqulka isdhaafsiga, wuxuu u baahan yahay bilawga qasabka ah ee qiyamka doorsoomka ka hor intaan la isticmaalin, wuxuu si fiican u maareeyaa khaladaadka maktabadda caadiga ah, wuxuu dabaqaa fikradda tixraacyada aan bedeli karin iyo doorsoomayaasha si caadi ah, waxay bixisaa qorid adag oo adag si loo yareeyo khaladaadka macquulka ah.

Nooca cusub ee balastarku wuxuu sii wadaa inuu baabi'iyo faallooyinka la sameeyay intii lagu jiray doodaha noocyada koowaad iyo labaad ee dhejiska. Isbeddelada ugu muuqda:

  • Isbeddel ayaa la sameeyay si loo isticmaalo sii daynta xasilloon ee Rust 1.57 oo ah isuduwaha tixraaca iyo isku xirka daabacaadda xasiloon ee luqadda Rust 2021 ayaa la bixiyay. Markii hore, dhejisyo ayaa lagu xidhay laanta beta ee miridhku waxayna isticmaaleen astaamo luqadeed ayaa loo kala saaray kuwo aan degganayn. U gudubka qeexitaanka Rust 2021 ayaa noo ogolaatay inaan bilowno shaqo si aan uga fogaano adeegsiga sifooyinka aan degganeyn ee balastarrada sida const_fn_transmute, const_panic, const_unavailable_unchecked iyo core_panic iyo try_reserve.
  • Horumarinta qaybta alloc ee maktabadda Rust ee lagu daray balastarrada ayaa sii waday, wax laga beddelay si looga takhaluso hawlaha qoondaynta xusuusta ee jiilka suurtagalka ah ee gobolka "argagaxa" marka khaladaadku dhacaan, sida xasuusta. Nooca cusubi wuxuu hirgeliyaa xulashooyinka "no_rc" iyo "no_sync" si loo baabi'iyo shaqeynta aan loo isticmaalin koodhka kernel-ka, taasoo ka dhigaysa maktabad mid la mid ah. Shaqadu waxay ku sii socotaa soosaarayaasha alloc ee ugu muhiimsan, oo loogu talagalay wareejinta isbeddelada loo baahan yahay kernel maktabadda weyn. Xulashada "no_fp_fmt_parse", ee looga baahan yahay maktabadda inay ka shaqeyso heerka kernel, ayaa loo raray maktabadda saldhigga Rust (core).
  • Koodhka ayaa la nadiifiyay si looga takhaluso digniinaha isku xidhka ee suurtogalka ah marka la dhisayo kernel-ka qaabka CONFIG_WERROR. Marka koodhka lagu dhisayo Rust, hababka ogaanshaha isku-darka dheeraadka ah iyo digniinaha Clippy linter waa la damciyaa.
  • Aabstractions waxaa loo soo jeediyay in lagu isticmaalo koodhka Rust ee seqlocks (quful isku xigxiga), wicitaanada dib u soo celinta ee maaraynta awooda, I/O Memory (readX/writeX), kala gooyayaasha iyo kuwa dunta gacanta ku haya, GPIO, gelitaanka aaladaha, darawalada iyo aqoonsiga.
  • Aaladaha loogu talagalay horumarinta darawalka ayaa la balaariyay si ay ugu daraan mutexyada la rari karo, tafatirayaasha yar yar, xirmooyinka tilmaame ee la fududeeyay, ogaanshaha cilladaha oo la hagaajiyay, iyo kaabayaasha xogta baska-madax banaan.
  • Shaqada la wanaajiyay ee isku xidhka iyadoo la adeegsanayo nooca Ref la fududeeyay, oo ku salaysan refcount_t backend, kaas oo isticmaala API kernel ee isla magaca loogu talagalay tirinta tixraacyada. Taageerada noocyada Arc iyo Rc ee lagu bixiyo maktabadda alloc ee caadiga ah waa laga saaray oo laguma heli karo koodka lagu fuliyay heerka kernel (ikhtiyaarada ayaa loo diyaariyay maktabadda lafteeda oo joojisa noocyadan).
  • Xirmooyinka waxaa ku jira nooca darawalka PL061 GPIO, oo dib loogu qoray Rust. Sifada gaarka ah ee dareewalku waa in ku dhawaad ​​hirgalintiisa ay ku soo celiso wadaha GPIO ee jira luqada C. Horumariyeyaasha raba inay bartaan abuurista darawalada Rust, isbarbardhigga khadka-line ayaa loo diyaariyey taasoo u oggolaanaysa inay fahmaan dhismooyinka Rust ee C code loo beddelayo.
  • Rust codebase-ka ugu weyn waxa uu qaatay rustc_codegen_gcc, rustc dhabarka u ah GCC kaas oo hirgeliya ururinta wakhti kahor (AOT) iyada oo la adeegsanayo maktabadda libgccjit. Horumarinta saxda ah ee dhabarka dambe, waxay kuu oggolaan doontaa inaad ururiso koodka Rust ee ku lug leh kernel adoo isticmaalaya GCC.
  • Marka lagu daro ARM, Google iyo Microsoft, Koofiyadda Cas ayaa muujisay xiisaha ay u leedahay isticmaalka luqadda Rust ee kernel Linux. Aynu xasuusanno in Google si toos ah u taageero mashruuca Rust ee Linux, uu horumarinayo hirgelinta cusub ee habka isgaadhsiinta isdhexgalka ee Binder ee Rust, oo uu tixgelinayo suurtogalnimada dib-u-shaqaynta darawallada kala duwan ee Rust. Microsoft waxay bilowday hirgalinta darawalada Hyper-V ee Rust. ARM waxay ka shaqaynaysaa sidii ay u horumarin lahayd taageerada miridhku ee nidaamyada ku salaysan ARM. IBM waxay ka hirgalisay taageerada Rust kernel ee nidaamyada PowerPC.

Source: opennet.ru

Add a comment