ʻO Miguel Ojeda, ka mea kākau o ka papahana Rust-for-Linux, ua manaʻo i ka hā o nā ʻāpana no ka hoʻomohala ʻana i nā mea hoʻokele ma ka ʻōlelo Rust no ka noʻonoʻo ʻana e nā mea hoʻomohala kernel Linux. Ua manaʻo ʻia ke kākoʻo Rust he hoʻokolohua, akā ua ʻae ʻia no ka hoʻokomo ʻana i ka lālā linux-next a ua lawa ka makua e hoʻomaka i ka hana ma ka hana ʻana i nā papa abstraction ma luna o nā subsystem kernel, a me ke kākau ʻana i nā mea hoʻokele a me nā modula. Hoʻokumu kālā ʻia ka hoʻomohala ʻana e Google a me ka ISRG (Internet Security Research Group), ʻo ia ka mea nāna i hoʻokumu i ka papahana Let's Encrypt a hoʻolaha i ka HTTPS a me ka hoʻomohala ʻana i nā ʻenehana e hoʻomaikaʻi i ka palekana pūnaewele.
E hoʻomanaʻo i nā hoʻololi i manaʻo ʻia e hiki ai ke hoʻohana iā Rust ma ke ʻano he ʻōlelo lua no ka hoʻomohala ʻana i nā mea hoʻokele a me nā modula kernel. Hōʻike ʻia ke kākoʻo Rust ma ke ʻano he koho ʻaʻole hiki ke hoʻohana ʻia e ka paʻamau a ʻaʻole i hopena i ka hoʻokomo ʻia ʻana o Rust ma ke ʻano he hilinaʻi kūkulu pono no ka kernel. ʻO ka hoʻohana ʻana iā Rust no ka hoʻomohala ʻana i nā mea hoʻokele e ʻae iā ʻoe e hana i nā mea hoʻokele palekana a ʻoi aku ka maikaʻi me ka liʻiliʻi o ka hoʻoikaika ʻana, me ka ʻole o nā pilikia e like me ke komo ʻana i ka hoʻomanaʻo ma hope o ka hoʻokuʻu ʻana, nā kuhikuhi kuhikuhi null, a me ka hoʻonui ʻana.
Hāʻawi ʻia ka mālama mālama hoʻomanaʻo ma Rust i ka manawa hōʻuluʻulu ma o ka nānā ʻana i nā kuhikuhi, ka mālama ʻana i ka mea nona ka mea a me ke ola o ka mea (scope), a ma o ka loiloi ʻana i ka pololei o ke komo ʻana i ka hoʻomanaʻo i ka wā o ka hoʻokō code. Hāʻawi pū ʻo Rust i ka pale ʻana i ka integer overflows, koi pono i ka hoʻomaka mua ʻana o nā waiwai hoʻololi ma mua o ka hoʻohana ʻana, ʻoi aku ka maikaʻi o ka hoʻohana ʻana i nā hewa i loko o ka waihona maʻamau, pili i ka manaʻo o nā kuhikuhi immutable a me nā loli ma ke ʻano maʻamau, hāʻawi i ka paʻi static ikaika e hōʻemi i nā hewa loiloi.
Ke hoʻomau nei ka mana hou o nā patches i ka hoʻopau ʻana i nā manaʻo i hana ʻia i ka wā o ke kūkākūkā o ka paʻi mua, ka lua a me ke kolu o nā pā. Ma ka mana hou:
- ʻO ka hoʻololi ʻana i ka hoʻohana ʻana i ka hoʻokuʻu paʻa o Rust 1.58.0 e like me ka mea i hoʻopili ʻia. Ma waena o nā hoʻololi e pono ai no ka papahana, ʻaʻole i hoʻokomo ʻia i loko o ka pahu hana Rust nui, ka hae "-Zsymbol-mangling-version=v0" (i manaʻo ʻia ma Rust 1.59.0) a me ke ʻano "maybe_uninit_extra" (manaʻo ʻia ma Rust 1.60.0. .XNUMX) ʻike ʻia.
- Hoʻohui ʻia nā loiloi ʻakomi no ka loaʻa ʻana o nā mea hana Rust kūpono a hoʻonui i ka hiki ke hoʻāʻo i ke kākoʻo Rust i ka ʻōnaehana.
- Ua manaʻo ʻia nā abstractions hou no ke kiʻi ʻana i nā papa ʻike mea hana ("IdArray" a me "IdTable") mai Rust code.
- Nā papa i hoʻohui ʻia no ke kiʻi ʻana i nā hana pili i ka manawa (framework clock).
- Ua wehewehe ʻia nā mea hoʻokele platform ma o ka hoʻokō ʻana.
- Ua hoʻohui ʻia kahi macro hou e maʻalahi i ka hoʻopaʻa inoa ʻana o nā mea hoʻokele platform, a ua manaʻo ʻia kahi hoʻohālike hoʻokele generic hou.
- Hoʻohui ʻia nā macros no nā hale "dev_*".
- Hoʻohui ʻia nā ʻano hana "{heluhelu, kākau}*_relaxed" no ke ʻano IoMem .
- Wehe ʻia ka waiwai FileOpener e maʻalahi i nā hana faila.
- Ua hoʻohui ʻia ka ʻāpana "ThisModule" i nā hoʻopaʻapaʻa i hala i ke kau inoa ʻana i kahi mea hoʻokele.
- Hoʻopuka ʻia kahi laʻana maʻamau no ka hana ʻana i nā modula kernel ma ka ʻōlelo Rust.
Source: opennet.ru