Mpempe patches nke ise maka Linux kernel nwere nkwado maka asụsụ Rust

Miguel Ojeda, onye odee nke Rust-for-Linux project, atụpụtala ụdị ngwa ngwa nke ise maka mmepe ndị ọkwọ ụgbọ ala n'asụsụ Rust maka nleba anya nke ndị nrụpụta Linux kernel. A na-ahụta nkwado nchara dị ka nnwale, mana etinyelarị ya na ngalaba Linux na-esote wee mepụta nke ọma ị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ụọ, nke atọ na nke anọ nke patches. Na ụdị ọhụrụ:

  • Agbakwunyela nnwale akụrụngwa maka nkwado Rust na usoro ntinye aka na-aga n'ihu dabere na 0DAY/LKP bot nke Intel na-akwado na mbipụta nke akụkọ nnwale amalitela. Anyị na-akwado itinye nkwado Rust n'ime sistemụ nnwale akpaaka KernelCI. Nlele dabere na GitHub CI ka ebufela ya na iji arịa.
  • A na-ahapụ modul kernel rust site na mkpa ịkọwapụta àgwà crate "#! [no_std]" na "#![mma (...)]".
  • Nkwado agbakwunyere maka ebumnuche ọgbakọ otu (.o, .s, .ll na .i).
  • Ntuziaka koodu na-akọwapụta iwu maka ikewa nkọwa ("//") na koodu ntinye akwụkwọ ("///").
  • Emegharịrị ederede is_rust_module.sh.
  • Nkwado agbakwunyere maka primitives mmekọrịta static (nkekọrịta ụwa niile) dabere na mmejuputa "CONFIG_CONSTRUCTORS".
  • A na-eme ka njikwa mkpọchi dị mfe: Ejikọtara Guard na GuardMut yana otu ụdị parameterized.
  • Ọ ga-ekwe omume ịkọwapụta paramita ndị ọzọ mgbe ị na-edebanye aha ngwaọrụ.
  • Agbakwunyere abstraction "RwSemaphore", nke na-arụ ọrụ dị ka ihe mkpuchi n'elu nhazi rw_semaphore C.
  • Iji jiri mmap, agbakwunyere modul mm ọhụrụ yana abstraction VMA (ihe mkpuchi n'elu vm_area_struct structure).
  • Agbanyela onye ọkwọ ụgbọ ala GPIO PL061 ka ọ were nnukwu “dev_*!”
  • E mere mkpochapụ n'ozuzu koodu.

isi: opennet.ru

Tinye a comment