Hoʻomaka ʻo Mozilla i ka hoʻokō ʻana i ka ʻenehana hoʻokaʻawale hale waihona puke RLBox

Nā mea noiʻi mai ke Kulanui o Stanford, ke Kulanui o Kaleponi ma San Diego a me ke Kulanui o Texas ma Austin kūkulu ʻia mea paahana ʻO RLBox, hiki ke hoʻohana ʻia ma ke ʻano he papa hoʻokaʻawale ʻē aʻe e pale ai i nā nāwaliwali o nā hale waihona puke hana. Hoʻoholo ʻia ʻo RLBox i ka hoʻoponopono ʻana i ka pilikia palekana o nā hale waihona puke ʻaoʻao ʻekolu i hilinaʻi ʻole ʻia ʻaʻole i lalo o ka mana o nā mea hoʻomohala, akā hiki i nā mea nāwaliwali ke hoʻololi i ka papahana nui.

Huina Mozilla hoʻolālā hoʻohana i ka RLBox ma Linux i kūkulu ʻia o Firefox 74 a me macOS i kūkulu ʻia o Firefox 75 e hoʻokaʻawale i ka hoʻokō hale waihona. Hōʻike, kuleana no ka hoʻolilo ʻana i nā font. Eia naʻe, ʻaʻole kikoʻī ʻo RLBox iā Firefox a hiki ke hoʻohana ʻia e hoʻokaʻawale i nā hale waihona puke i nā papahana ʻokoʻa. Nā hoʻomohala ʻana ʻO RLBox pālahalaha aku ma lalo o ka laikini MIT. Ke kākoʻo nei ʻo RLBox i nā platform Linux a me macOS, me ke kākoʻo Windows i manaʻo ʻia ma hope.

Hana Ke iho nei ka hana a RLBox i ka hōʻuluʻulu ʻana i ka code C/C++ o kahi hale waihona puke i loko o ka code WebAssembly haʻahaʻa haʻahaʻa haʻahaʻa, a laila hoʻolālā ʻia ma ke ʻano he module WebAssembly, ua hoʻonohonoho ʻia nā ʻae e pili ana i kēia module (no ka laʻana, kahi waihona. no ka hana ʻana i nā kaula ʻaʻole hiki ke wehe i kahi kumu pūnaewele a i ʻole faila) . Hoʻohana ʻia ka hoʻololi ʻana i ka code C/C++ i WebAssembly wasi-sdk.

No ka hoʻokō pololei ʻana, hoʻohui ʻia ka module WebAssembly i loko o ka code mīkini me ka hoʻohana ʻana i kahi mea hoʻohui ʻO Lucet a holo i loko o kahi "nanoprocess" kaʻawale mai ke koena o ka hoʻomanaʻo o ka noi. Hoʻokumu ʻia ka Lucet compiler ma ke code like me ka engine JIT ʻO Cranelift, hoʻohana ʻia ma Firefox e hoʻokō i ka WebAssembly.

Ke hana nei ka module i hui ʻia ma kahi ʻāpana hoʻomanaʻo ʻokoʻa a ʻaʻole loaʻa i ke koena o ka wahi helu wahi. Inā hoʻohana ʻia kahi palupalu i loko o ka waihona, e kaupalena ʻia ka mea hoʻouka a ʻaʻole hiki iā ia ke komo i nā wahi hoʻomanaʻo o ke kaʻina hana nui a i ʻole ka hoʻololi ʻana i ka mana ma waho o ke kaiapuni kaʻawale.

Hoʻomaka ʻo Mozilla i ka hoʻokō ʻana i ka ʻenehana hoʻokaʻawale hale waihona puke RLBox

Hāʻawi ʻia ka ʻike kiʻekiʻe no nā mea hoʻomohala API, hiki iā ʻoe ke kāhea i nā hana waihona ma ke ʻano kaʻawale. ʻAʻole makemake nā mea lawelawe WebAssembly i nā kumuwaiwai ʻē aʻe a ʻo ka launa pū ʻana me lākou ʻaʻole i ʻoi aku ka lohi ma mua o ke kāhea ʻana i nā hana maʻamau (hoʻokō ʻia nā hana waihona ma ke ʻano o ke code maoli, a piʻi nā kumukūʻai ma luna o ke kope a nānā ʻana i ka ʻikepili i ka wā o ka launa pū ʻana me ke kaiapuni kaʻawale). ʻAʻole hiki ke kāhea pololei ʻia nā hana hale waihona puke a pono ke kiʻi ʻia me ka hoʻohana ʻana
layer invoke_sandbox_function().

I ka huli ʻana, inā pono e kāhea i nā hana o waho mai ka hale waihona puke, pono e wehewehe ʻia kēia mau hana me ka hoʻohana ʻana i ke ʻano register_callback (ma ka maʻamau, hāʻawi ʻo RLBox i ke komo i nā hana. hale waihona puke maʻamau). No ka hōʻoia ʻana i ka palekana hoʻomanaʻo, ʻaʻole lawa ka hoʻokaʻawale hoʻokō code a pono e nānā i nā kahawai ʻikepili i hoʻihoʻi ʻia.

ʻO nā waiwai i hana ʻia i kahi kaʻawale kaʻawale ua hōʻailona ʻia he hilinaʻi ʻole a kaupalena ʻia ka hoʻohana ʻana hōʻailona haumia a no ka "hoʻomaʻemaʻe" pono lākou hōʻoiaʻiʻo a me ke kope ʻana i ka hoʻomanaʻo noi.
Me ka hoʻomaʻemaʻe ʻole, ʻo ka hoʻāʻo ʻana e hoʻohana i ka ʻikepili i hoʻopaʻa ʻia i loko o kahi pōʻaiapili e koi ana i ka ʻikepili maʻamau (a me ka ʻaoʻao ʻē aʻe) ka hopena i nā hewa i hana ʻia i ka manawa hōʻuluʻulu. Hoʻoholo ʻia nā manaʻo hana liʻiliʻi, nā waiwai hoʻihoʻi, a me nā hale ma ke kope ʻana ma waena o ka hoʻomanaʻo kaʻina hana a me ka hoʻomanaʻo sandbox. No nā pūʻulu ʻikepili nui, hoʻokaʻawale ʻia ka hoʻomanaʻo ma kahi kaʻawale a hoʻihoʻi ʻia kahi kuhikuhi kuhikuhi sandbox pololei i ke kaʻina hana nui.

Source: opennet.ru

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