Hoʻopuka ʻo Facebook iā Hermit, kahi mea hana no ka hoʻokō ʻana i ka papahana

Ua paʻi ʻo Facebook (pā ʻia ma ka Russian Federation) i ke code no ka Hermit toolkit, e hana ana i kahi kaiapuni no ka hoʻokō deterministic o nā papahana, e ʻae ana i nā holo like ʻole e hoʻokō i ka hopena like a hana hou i ka hoʻokō me ka hoʻohana ʻana i ka ʻikepili komo like. Ua kākau ʻia ka code papahana ma Rust a ua māhele ʻia ma lalo o ka laikini BSD.

I ka wā o ka hoʻokō maʻamau, hoʻopili ʻia ka hopena e nā ʻano mea ʻokoʻa like ʻole, e like me ka manawa o kēia manawa, ka hoʻonohonoho ʻana o ka thread, nā helu hoʻomanaʻo virtual, nā ʻikepili mai ka mea hana helu pseudorandom, a me nā ʻano ʻike like ʻole. Hāʻawi ʻo Hermit iā ʻoe e holo i kahi papahana i loko o kahi pahu kahi e hoʻomau mau ai kēia mau mea i nā holo aʻe. Hiki ke hoʻohana hou ʻia ka hoʻokō ʻana, ka mea e hoʻopuka piha ai i nā ʻāpana hoʻomau ʻole o ke kaiapuni, hiki ke hoʻohana ʻia no ka hōʻoia hewa, ka hoʻopiʻi multi-step me ka holo hou ʻana, ka hana ʻana i kahi kūlana paʻa no nā hoʻāʻo regression, hoʻāʻo kaumaha, ʻike i nā pilikia me ka multithreading a me nā ʻōnaehana kūkulu hou. .

Hoʻopuka ʻo Facebook iā Hermit, kahi mea hana no ka hoʻokō ʻana i ka papahana

Hoʻokumu ʻia kahi ʻano reproducible e ka intercepting system calls, kekahi o ia mau mea i hoʻololi ʻia me kā lākou mau mea hoʻohana ponoʻī e hoʻopuka i kahi hopena mau, a hoʻihoʻi ʻia kekahi i ka kernel, a laila e hoʻomaʻemaʻe ʻia ka hopena mai ka ʻikepili paʻa ʻole. No ka intercept system calls, hoʻohana ʻia ka reverie framework, ka code o ia mea i paʻi ʻia e Facebook. No ka pale ʻana i ka hoʻololi ʻana i ka ʻōnaehana faila a me nā noi pūnaewele mai ka hopena i ka holomua o ka hoʻokō, hana ʻia ka hoʻokō me ka hoʻohana ʻana i kahi kiʻi FS paʻa a me ke komo ʻana i nā pūnaewele waho i pio. I ke komo ʻana i ka mea hana helu pseudo-random, hana ʻo Hermit i kahi kaʻina i koho mua ʻia e hana hou ʻia i kēlā me kēia manawa i hoʻomaka ʻia.

ʻO kekahi o nā mea hoʻololi paʻakikī i ka holomua o ka hoʻokō ʻana, ʻo ia ka mea hoʻonohonoho thread, nona ka ʻano e pili ana i nā kumu o waho, e like me ka helu o nā cores CPU a me ka hele ʻana o nā kaula hoʻokō ʻē aʻe. No ka hōʻoia ʻana i ka hana hou ʻana o ka mea hoʻonohonoho, hoʻokō ʻia nā pae āpau e pili ana me hoʻokahi kumu CPU wale nō a mālama i ke kauoha e hoʻoili ʻia ai ka mana i nā kaula. ʻAe ʻia kēlā me kēia pae e hoʻokō i kahi helu paʻa o nā ʻōlelo aʻo, ma hope o ka pau ʻana o ka hoʻokō ʻana a hoʻoneʻe ʻia i kahi kaula ʻē aʻe (e kaupalena i ka CPU PMU (Performance Monitoring Unit), e hoʻōki i ka hoʻokō ʻana ma hope o kahi helu o nā lālā kūlana).

No ka ʻike ʻana i nā pilikia me nā pae ma muli o nā kūlana lāhui, he ʻano ʻo Hermit no ka ʻike ʻana i nā hana i hala ʻole ke kauoha hoʻokō a alakaʻi ʻia i kahi pani kūlohelohe. No ka ʻike ʻana i ia mau pilikia, hoʻohālikelike ʻia nā mokuʻāina kahi i hoʻopaʻa ʻia ai ka hana pololei a me ka hoʻopau ʻole ʻia o ka hoʻokō.

Source: opennet.ru

Pākuʻi i ka manaʻo hoʻopuka