Khatiso ea bone ea li-patches bakeng sa kernel ea Linux ka tšehetso bakeng sa puo ea Rust

Miguel Ojeda, sengoli sa projeke ea Rust-for-Linux, o hlahisitse mofuta oa bone oa likarolo bakeng sa ho nts'etsapele bakhanni ba lisebelisoa ka puo ea Rust bakeng sa ho hlahlojoa ke baetsi ba Linux kernel. Tšehetso ea mafome e nkoa e le liteko, empa e se e lumellane ka hore e kenyelelitsoe lekaleng le latelang la linux 'me e hōlile ka ho lekaneng hore e ka qala mosebetsi oa ho theha likarolo tse fokolang holim'a kernel subsystems, 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 le tsa boraro tsa likhatiso. Khatisong e ncha:

  • Phetoho ea ho sebelisa tokollo e tsitsitseng ea Rust 1.58.0 e le moqapi oa litšupiso e entsoe. Har'a liphetoho tse hlokahalang bakeng sa morero, tse e-s'o kenyellelitsoe ho "Rust toolkit" e kholo, "-Zsymbol-mangling-version = v0" folakha (e lebeletsoeng ka Rust 1.59.0) le "mohlomong_uninit_extra" mode (e lebeletsoeng ho Rust 1.60.0). .XNUMX) li hlokometsoe. .
  • E kentse licheke tsa othomathike bakeng sa ho fumaneha ha lisebelisoa tse loketseng tsa Rust le ho eketsa bokhoni ba ho leka tšehetso ea Rust tsamaisong.
  • Lintlha tse ncha li hlahisitsoe bakeng sa ho fihlella litafole tse khethollang sesebelisoa ("IdArray" le "IdTable") ho tsoa ho khoutu ea Rust.
  • Mehaho e ekelitsoeng bakeng sa ho fihlella mesebetsi e amanang le nako (sebopeho sa oache).
  • Bakhanni ba sethala joale ba hlalosoa ka ts'ebetsong ea mekhoa.
  • Ho kenyellelitsoe Macro e ncha ho nolofatsa ngoliso ea bakhanni ba sethala, 'me ho hlahisitsoe thempleite e ncha ea li-generic driver.
  • E kenyellelitsoe macros bakeng sa "dev_*" meaho.
  • E kentse "{read,write}*_relaxed" mekhoa ea mofuta oa IoMem .
  • E tlositse thepa ea FileOpener ho nolofatsa ts'ebetso ea faele.
  • "ThisModule" parameter e kenyelelitsoe likhang tse fetisitsoeng ha ho ngolisoa mokhanni.
  • Setšoantšo se tloaelehileng sa ho theha li-module tsa kernel ka puo ea Rust se hlahisitsoe.

Source: opennet.ru

Eketsa ka tlhaloso