Hoʻokomo ʻia ʻo Rust i waena o nā ʻōlelo nui no ka hoʻomohala ʻana i ka platform Android

Ua hoʻolaha ʻo Google i ka hoʻokomo ʻana o ka ʻōlelo papahana Rust i waena o nā ʻōlelo i ʻae ʻia no ka hoʻomohala ʻana i ka platform Android. Ua hoʻokomo ʻia ka mea hōʻuluʻulu ʻōlelo Rust i ka kumu kumu kumu Android i ka makahiki 2019, akā ua hoʻomau ʻia ke kākoʻo no kēia ʻōlelo. ʻO kekahi o nā ʻāpana Rust mua i hoʻolālā ʻia no ka Android me nā hoʻokō hou o ka mīkini kamaʻilio Binder interprocess a me ka pūʻulu Bluetooth.

Ua lawe ʻia ka hoʻolauna ʻana o Rust ma ke ʻano he papahana e hoʻoikaika ai i ka palekana, hoʻolaha i nā ʻenehana hoʻolālā palekana a hoʻonui i ka pono o ka ʻike ʻana i nā pilikia i ka wā e hana ai me ka hoʻomanaʻo ma Android. Hoʻomaopopo ʻia ma kahi o 70% o nā nāwaliwali pōʻino i ʻike ʻia ma ka Android ke kumu o nā hewa i ka wā e hana ana me ka hoʻomanaʻo. ʻO ka hoʻohana ʻana iā Rust, e kālele ana i ka palekana hoʻomanaʻo a me ka hoʻokele hoʻomanaʻo maʻalahi, e hōʻemi i ka pilikia o nā nāwaliwali i hoʻokumu ʻia e nā hewa hoʻomanaʻo e like me ke komo ʻole ma hope o ka loaʻa ʻole a me ka nui o ka buffer overruns.

Hoʻoikaika ʻo Rust i ka palekana hoʻomanaʻo i ka manawa hōʻuluʻulu ma o ka nānā ʻana i ka ʻike, ka mea nona ka mea a me ka nānā ʻana i ke ola holoʻokoʻa (scopes), a ma ka loiloi ʻana i ka pololei o nā mea hoʻomanaʻo i ka wā holo. Hāʻawi pū ʻo Rust i ka pale ʻana i ka integer overflows, koi ʻia e hoʻomaka mua ʻia nā waiwai hoʻololi ma mua o ka hoʻohana ʻana, ʻoi aku ka maikaʻi o ka lawelawe hewa ʻana i ka waihona maʻamau, hoʻohana i ka manaʻo o nā kuhikuhi immutable a me nā ʻano like ʻole, a hāʻawi i ka paʻi static ikaika e hōʻemi i nā hewa loiloi.

I ka Android, hāʻawi ʻia ka palekana hoʻomanaʻo i nā ʻōlelo i kākoʻo ʻia ʻo Kotlin a me Java, akā ʻaʻole kūpono lākou no ka hoʻomohala ʻana i nā ʻōnaehana ma muli o ke kiʻekiʻe kiʻekiʻe. Hiki i ka Rust ke hoʻokō i ka hana kokoke i nā ʻōlelo C a me C++, kahi e hiki ai ke hoʻohana ʻia no ka hoʻomohala ʻana i nā ʻāpana haʻahaʻa o ka paepae a me nā ʻāpana no ka launa pū ʻana me ka lako.

No ka hōʻoia ʻana i ka palekana o ka code C a me C++, hoʻohana ʻo Android i ka hoʻokaʻawale ʻana i ka sandbox, ka loiloi static, a me ka hoʻāʻo fuzzing. Ua kaupalena ʻia nā mana o ka hoʻokaʻawale ʻana i ka sandbox a ua hōʻea i ka palena o ko lākou hiki (ʻaʻole hiki ke hoʻokaʻawale hou aku i nā kaʻina hana mai ka manaʻo o ka hoʻohana waiwai). ʻO nā palena o ka hoʻohana ʻana i ka sandbox ka nui o nā kumukūʻai ma luna a me ka hoʻonui ʻana i ka hoʻomanaʻo hoʻomanaʻo ma muli o ka pono e hoʻoulu i nā kaʻina hana hou, a me nā lohi hou e pili ana i ka hoʻohana ʻana i ka IPC.

I ka manawa like, ʻaʻole hoʻopau ka sandbox i nā nāwaliwali o ke code, akā e hōʻemi wale i nā pilikia a hoʻopiʻi i ka hoʻouka ʻana, no ka mea, pono ka hoʻohana ʻana i ka ʻike ʻana ʻaʻole hoʻokahi, akā he mau mea nāwaliwali. Ua kaupalena ʻia nā ʻano hana e pili ana i ka hoʻāʻo code i mea e ʻike ai i nā hewa, pono e hana i nā kūlana no ka pilikia e hōʻike iā ia iho. ʻAʻole hiki ke uhi i nā koho āpau, no laila nui nā hewa i ʻike ʻole ʻia.

No nā kaʻina hana ʻōnaehana ma Android, pili ʻo Google i ka "rule of two", e like me ke ʻano o nā code i hoʻohui ʻia ʻaʻole pono e ʻoi aku ma mua o ʻelua o ʻekolu mau kūlana: hana me ka ʻikepili hoʻokomo ʻole ʻia, me ka hoʻohana ʻana i kahi ʻōlelo hoʻonohonoho palekana (C/C++), a e holo ana me ka hoʻokaʻawale ʻole ʻana i ka pahu one (loaʻa nā pono kiʻekiʻe). Hōʻike kēia lula e hoʻemi ʻia ke code no ka hoʻoponopono ʻana i ka ʻikepili waho i nā pono liʻiliʻi (kaʻawale) a i ʻole kākau ʻia ma kahi ʻōlelo hoʻonohonoho palekana.

ʻAʻole manaʻo ʻo Google e kākau hou i ka code C/C++ i kēia manawa ma Rust, akā hoʻolālā e hoʻohana i kēia ʻōlelo e hoʻomohala i nā code hou. Maikaʻi ka hoʻohana ʻana i ka Rust no ke code hou no ka mea, ma ka helu helu, ʻike ʻia ka hapa nui o nā pōpoki ma ke code hou a i hoʻololi ʻia paha. ʻO ka mea kūikawā, ma kahi o 50% o nā hewa hoʻomanaʻo i ʻike ʻia ma Android e ʻike ʻia ma ke code i kākau ʻia ma lalo o hoʻokahi makahiki i hala.

Hoʻokomo ʻia ʻo Rust i waena o nā ʻōlelo nui no ka hoʻomohala ʻana i ka platform Android


Source: opennet.ru

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