ʻEhā o ka paʻi no ka Linux kernel me ke kākoʻo no ka ʻōlelo Rust

ʻ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

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