Mofuta o mocha oa li-patches bakeng sa kernel ea Linux ka tšehetso bakeng sa puo ea Rust

Miguel Ojeda, sengoli sa morero oa Rust-for-Linux, o khothalelitse tokollo ea likarolo tsa v5 bakeng sa ho nts'etsapele bakhanni ba lisebelisoa ka puo ea Rust bakeng sa ho shejoa ke baetsi ba Linux kernel. Ena ke khatiso ea botšelela ea li-patches, ho nahanoa ka phetolelo ea pele, e hatisitsoeng ntle le nomoro ea phetolelo. Ts'ehetso ea mafome e nkoa e le liteko, empa e se e kenyelelitsoe lekaleng le latelang la linux 'me e ntlafalitse ka ho lekaneng ho qala mosebetsi oa ho theha likarolo tse fokolang holim'a li-subsystems tsa kernel, hammoho le ho ngola bakhanni le li-module. Ntlafatso ena e tšehelitsoe ka lichelete ke Google le ISRG (Internet Security Research Group), e leng mothehi oa morero oa Let's Encrypt le ho khothaletsa HTTPS le nts'etsopele ea mahlale a ho ntlafatsa ts'ireletso ea Marang-rang.

Hopola hore liphetoho tse reriloeng li etsa hore ho khonehe ho sebelisa Rust e le puo ea bobeli bakeng sa ho ntlafatsa bakhanni le li-module tsa kernel. Tšehetso ea mafome e hlahisoa e le khetho e sa sebetseng ka ho sa feleng 'me e sa etse hore Rust e kenyelelitsoe e le ho itšetleha ho hlokahalang bakeng sa kernel. Ho sebelisa Rust bakeng sa nts'etsopele ea mokhanni ho tla u lumella ho theha bakhanni ba sireletsehileng le ba betere ka boikitlaetso bo fokolang, ntle le mathata a joalo ka phihlello ea mohopolo ka mor'a ho lokolla, li-null pointer dereferences, le buffer overruns.

Ho sebetsa ka mokhoa o sireletsehileng oa memori ho fanoa ka Rust ka nako ea ho bokella ka ho hlahloba litšupiso, ho boloka tlaleho ea botho ba ntho le nako ea bophelo ba ntho (scope), hammoho le ka tlhahlobo ea ho nepahala ha phihlello ea mohopolo nakong ea ts'ebetso ea khoutu. Rust e boetse e fana ka ts'ireletso khahlano le phallo e felletseng, e hloka ho qalisoa ha boleng bo fapaneng pele e sebelisoa, e sebetsana le liphoso hantle laeboraring e tloaelehileng, e sebelisa mohopolo oa litšupiso tse ke keng tsa fetoha le tse fapaneng ka mokhoa o ikhethileng, e fana ka ho thaepa ho tiileng ho fokotsa liphoso tse utloahalang.

Phetolelo e ncha ea li-patches e ntse e tsoela pele ho felisa litlhaloso tse entsoeng nakong ea lipuisano tsa likhatiso tsa pele, tsa bobeli, tsa boraro, tsa bone le tsa bohlano. Khatisong e ncha:

  • Setsi sa lisebelisoa se ntlafalitsoe ho lokolla Rust 1.59.0. Phapang ea laebrari ea alloc e boetse e hokahantsoe le mofuta o mocha oa Rust, e felisang ho ka hlaha boemo ba "ho tšoha" ha liphoso li etsahala, joalo ka ho tsoa mohopolong. Bokhoni ba ho sebelisa li-assembler inserts (“feature(global_asm)”) bo tsitsitse.
  • Ts'ehetso e ekelitsoeng bakeng sa ho theha mananeo a amohelang Rust a sebelisoang nakong ea ho bokella kernel.
  • Sebakeng sa ho fana ka lifaele tse boletsoeng esale pele tsa sethala, li hlahisoa ka matla ho ipapisitse le tlhophiso ea kernel.
  • E kenyellelitsoe HAVE_RUST kernel parameter ho nolofalletsa meralo e tšehetsang Rust.
  • Lits'oants'o li khothalelitsoe ho sebelisoa ho Rust code bakeng sa jenereithara ea linomoro tsa pseudo-random ea hardware.
  • E lumelletse ts'ebeliso ea likhoutu tsa phoso ntle le "Error::" prefix (mohlala, "return Err(EINVAL)") ho hakanya ho sebetsoa ha likhoutu tsa liphoso ho C.
  • E kentse mofuta oa "CSring" bakeng sa likhoele tse tloaelehileng tsa C. Mefuta ea Formatter le Buffer e kopantsoe.
  • Mefuta e ekelitsoeng ea Bool le LockInfo.
  • Ts'ebetso ea li-spin locks e nolofalitsoe.

Source: opennet.ru

Eketsa ka tlhaloso