Mpempe akwụkwọ nke anọ maka kernel Linux yana nkwado maka asụsụ Rust

Miguel Ojeda, onye dere oru Rust-for-Linux, tụpụtara ụdị nke anọ nke akụrụngwa maka mmepe ndị ọkwọ ụgbọ ala n'asụsụ Rust maka nleba anya nke ndị mmepe Linux kernel. A na-ahụta nkwado nchara dị ka nnwale, mana ekwenyelarị maka itinye ya na ngalaba Linux na-esote wee tozuo oke ịmalite ọrụ na imepụta ọkwa abstraction n'elu sistemụ kernel, yana ndị ọkwọ ụgbọ ala na modul. Google na ISRG (Internet Security Research Group) kwadoro mmepe a, nke bụ onye guzobere ọrụ Ka anyị Encrypt ma kwalite HTTPS na mmepe teknụzụ iji melite nchekwa ịntanetị.

Cheta na mgbanwe ndị a tụrụ aro na-eme ka o kwe omume iji Rust dị ka asụsụ nke abụọ maka mmepe ọkwọ ụgbọala na modul kernel. A na-egosi nkwado nchara dị ka nhọrọ nke anaghị enyere ya aka na ndabara na anaghị eme ka nchara nchara dị ka ihe ndabere achọrọ maka kernel. Iji nchara maka mmepe ọkwọ ụgbọ ala ga-enye gị ohere ịmepụta ndị ọkwọ ụgbọ ala dị nchebe ma dị mma na obere mbọ, na-enwere onwe ya pụọ ​​​​na nsogbu dị ka ịnweta ebe nchekwa mgbe ahapụchara ya, enweghị ntụpọ pointer, na ihe nchekwa nchekwa.

A na-enye nchekwa nchekwa na nchara n'oge a na-achịkọta site na ntụle ntụaka, na-edobe ihe nwe ihe na oge ndụ ihe (oke), yana site na nyocha nke izi ezi nke ịnweta ebe nchekwa n'oge mmebe koodu. Nchara na-enyekwa nchebe pụọ na integer njupụta, na-achọ mmalite mmalite nke ụkpụrụ agbanwe agbanwe tupu eji ya, na-edozi njehie nke ọma n'ọbá akwụkwọ ọkọlọtọ, na-etinye echiche nke ntụgharị na mgbanwe na-adịghị agbanwe agbanwe na ndabara, na-enye akara static siri ike iji belata njehie ezi uche dị na ya.

Ụdị ọhụrụ nke patches na-aga n'ihu na-ewepụ ihe ndị e kwuru n'oge mkparịta ụka nke mbipụta mbụ, nke abụọ na nke atọ nke patches. Na ụdị ọhụrụ:

  • Ntughari na iji ntọhapụ kwụsiri ike nke Rust 1.58.0 ka emere onye nchịkọta ntụaka. N'ime mgbanwe ndị dị mkpa maka ọrụ ahụ, nke na-abanyebeghị na ngwa ngwa Rust bụ isi, ọkọlọtọ "-Zsymbol-mangling-version=v0" (a na-atụ anya ya na Rust 1.59.0) na ọnọdụ "maybe_uninit_extra" (atụ anya na Rust 1.60.0). .XNUMX) kwuru.
  • Agbakwunyere nlele akpaka maka nnweta ngwaọrụ rust dabara adaba yana gbasaa ikike ịnwale nkwado nchara na sistemụ.
  • Atụpụtala nkọwapụta ọhụrụ maka ịnweta tebụl njirimara ngwaọrụ ("IdArray" na "IdTable") site na koodu nchara.
  • Agba agbakwunyere maka ịnweta ọrụ metụtara ngụ oge (usoro elekere).
  • A na-akọwapụta ndị ọkwọ ụgbọ ala Platform ugbu a site na mmejuputa omume.
  • Agbakwunyela nnukwu macro ọhụrụ iji mee ka ndebanye aha nke ndị ọkwọ ụgbọ ala dị mfe, ma atụpụtala template ọkwọ ụgbọ ala ọhụrụ.
  • Macro agbakwunyere maka ụlọ "dev_*".
  • Agbakwunyere "{gụọ, dee}*_izu ike" maka ụdị IoMem .
  • Wepụrụ ihe onwunwe FileOpener iji mee ka ọrụ faịlụ dị mfe.
  • Agbakwunyela oke “Module a” na arụmụka gafere mgbe ị na-edebanye aha ọkwọ ụgbọ ala.
  • Atụpụtara ụkpụrụ ọkọlọtọ maka imepụta modul kernel n'asụsụ Rust.

isi: opennet.ru

Tinye a comment