Facebook ityhilwe kutshanje ngokupapashwa, ukuphehlelelwa kwe Hermit, eyenza i-a imeko-bume yokwenziwa kwenkqubo eqinisekileyo, eyenza kube lula ukufezekisa umphumo ofanayo kunye nokuphinda inkqubo yophumezo ekuqalisweni okuhlukeneyo usebenzisa idatha yegalelo elifanayo.
Ngexesha lokwenziwa okuqhelekileyo, izinto ezahlukeneyo ezingaphandle zichaphazela imveliso, njengexesha langoku, imisebenzi yokucwangcisa intambo, iidilesi zememori ebonakalayo, idatha evela kwi-pseudorandom yejeneretha yeenombolo, kunye neziphawuli ezahlukeneyo ezahlukeneyo.
UHermit uvumela ukuqhuba inkqubo kwisikhongozeli apho ezi zinto zihlala zingatshintshi kwimibalekiso elandelayo. Uzalisekiso oluphinda-phindwayo, oluvelisa ngokupheleleyo ubumbeko lwemekobume eguquguqukayo, ingasetyenziselwa ukuxilongwa kwempazamo, ukulungisa ingxaki Amanyathelo amaninzi kunye nokuphindaphinda, ukudala imeko-bume emiselweyo yokuvavanya ukubuyisela umva, uvavanyo loxinzelelo, ukulungisa iingxaki ezininzi, kunye neenkqubo zokwakha eziphindaphindiweyo.
I-Hermit inyanzelisa ukuphunyezwa kweenkqubo ezingenamqathango kwaye isebenza njengosongelo oluphinda-phindayo. Oko kukuthi, iyahlukanisa inkqubo kwimithombo ye-non-determinism efana nexesha, ukudibanisa intambo, ukuveliswa kwamanani okungahleliwe, njl. Ukuqinisekiswa okuqinisekisiweyo sisixhobo esinamandla kwaye sisebenza njengesiseko kwinani lezicelo, kubandakanywa ukuvavanywa koxinzelelo lwe-concurrency, irekhodi / ukudlala kwakhona, ukwakhiwa kwakhona kunye nokuxilongwa ngokuzenzekelayo kweempazamo ze-concurrency, kunye nokunye.
I-Hermit ayikwazi ukwahlula inkqubo yeendwendwe kwimithombo yokungacacisi, njengotshintsho lwefayile yefayile okanye iimpendulo ezivela kuthungelwano lwangaphandle. Endaweni yoko, ukubonelela ngesigqibo esipheleleyo, umsebenzisi kufuneka anike umfanekiso osisiseko wefayile yefayile (umzekelo, kunye neDocker) kwaye ukhubaze amanethiwekhi angaphandle.
Malunga noHermit
Hermit ivumela amandla idala imeko-bume ephindaphindwayo ngokuthintela iifowuni zenkqubo, ezinye zazo zitshintshwa ngabaphathi bazo abavelisa imveliso rhoqo, kwaye ezinye zithunyelwa kwi-kernel, emva koko idatha engapheliyo isuswe kwimveliso.
Ukuthintela iifowuni Kwinkqubo, isakhelo sisetyenziswa phinda ubuye, ikhowudi yayo nayo ipapashwe nguFacebook. Ukuthintela utshintsho lwesixokelelwano sefayile kunye nezicelo zenethiwekhi ekuchaphazeleni inkqubela yokwenziwa, ufezekiso lwenziwa kusetyenziswa umfanekiso omileyo yesixokelelwano sefayile kunye nofikelelo kuthungelwano lwangaphandle lukhubazekile. Ngokufikelela kwi-pseudorandom number generator, uHermit uvelisa ulandelelwano oluchazwe kwangaphambili oluphindwayo qho xa lusenziwa.
Owona mthombo untsokothileyo we-non-determinism kukumcwangcisi womsonto. Indlela i-kernel icwangcisa imisonto ixhomekeke kwizinto ezininzi zangaphandle, kubandakanywa inani le-CPUs eziphathekayo okanye ezinye iintambo ezisebenza kwinkqubo efuna ixesha le-CPU.
Kwezona mpembelelo zintsokothileyo ezingapheliyo ekusebenzeni, ibalaselisa umcwangcisi womsonto, ukuziphatha kwakhe kuxhomekeke kwizinto ezininzi zangaphandle, ezifana nenani le-CPU cores kunye nobukho beminye imisonto esebenzayo.
Ukuqinisekisa ukuziphatha okuphindiweyo komcwangcisi, yonke imisonto ilandelelaniswe, ibotshelelwe kumbindi we-CPU enye kunye nolandelelwano olugqithiswa ngayo ulawulo kwimisonto. Intambo nganye ivumelekile ukuba iqhube inani elimiselweyo lemiyalelo, emva kokuba ukubulawa kumisiwe kwaye kudluliselwe kwelinye intambo (ngokunciphisa, i-CPU ye-PMU (i-Performance Monitoring Unit) isetyenzisiweyo, eyeka ukubulawa emva kwenani elichaziweyo lamasebe anemiqathango).
ukuxilonga iingxaki ngemisonto ngenxa yemeko uhlanga, Hermit inendlela yokubona imisebenzi ebingaphandle kocwangco kwaye yabangela isithintelo. Ukuze kuchongwe iingxaki ezinjalo, uthelekiso lwenziwa phakathi kwamazwe apho ukusebenza okuchanekileyo kunye nokupheliswa okungaqhelekanga kokubulawa kwabhaliswa.
Okokugqibela, ukuba unomdla wokwazi ukufunda ngakumbi ngayo, kuya kufuneka uyazi loo nto ikhowudi yeprojekthi ibhalwe ngeRust kwaye isasazwa phantsi kwelayisensi yeBSD.
Ungajonga iinkcukacha kwi eli khonkco lilandelayo.