Moralo oa ho ngola bakhanni ba sireletsehileng bakeng sa Linux kernel ho Rust

Josh Triplett, ea sebetsang Intel mme a le komiting e okametseng nts'etsopele ea Crates.io, a bua Sebokeng sa Open Source Technology. tsebisoa sehlopha se sebetsang se reretsoeng ho tlisa puo ea Rust ho lekana le puo ea C tšimong ea mananeo a tsamaiso.

Sehlopheng se sebetsang se ntseng se tsoela pele ho theoa, baetsi ba Rust, hammoho le baenjiniere ba Intel, ba tla hlophisa lintlha tse hlalosang ts'ebetso e lokelang ho kengoa ts'ebetsong ho Rust bakeng sa mananeo a litsamaiso. Mananeo a sistimi hangata a hloka ho qhekella ha maemo a tlase, joalo ka ho etsa litaelo tsa processor e khethehileng le ho fumana lintlha tse qaqileng mabapi le boemo ba processor. Har'a likarolo tse ts'oanang tse seng li ntse li ntlafatsoa bakeng sa Rust, tšehetso bakeng sa meaho e sa boleloang ka mabitso, mekhatlo ea basebetsi, kemiso ea puo ea kopano ("asm!" macro) le sebopeho sa nomoro ea lintlha tse phaphametseng tsa BFLOAT16 li hlokometsoe.

Josh o lumela hore bokamoso ba lenaneo la tsamaiso ke la Rust, 'me puo ea C litabeng tsa morao-rao e batla sebaka seo lilemong tse fetileng se neng se tšoaretsoe ke Kopano. Mafome
ha e lokolle feela batho ba ntlafatsang mathata a hlahang puong ea C e hlahang ka lebaka la mosebetsi oa boemo bo tlase ka mohopolo, empa hape e fana ka monyetla oa ho e sebelisa ho nts'etsopele ea li-paradigms tsa morao-rao tsa mananeo.

Nakong ea lipuisano liketso
Josh o ile a tla le mohopolo oa ho eketsa bokhoni ba ho nts'etsapele bakhanni ho Linux kernel ka puo ea Rust, e neng e tla etsa hore ho khonehe ho theha bakhanni ba bolokehileng le ba betere ka boikitlaetso bo fokolang, ntle le mathata a joalo ka phihlello ea mohopolo kamora ho lokolloa, lefeela. litšupiso tsa pointer le li-buffer overruns.

Greg Kroah-Hartman, ea ikarabellang bakeng sa ho boloka lekala le tsitsitseng la Linux kernel, o bontšitse boikemisetso ba hae ba ho eketsa moralo oa ho ntlafatsa bakhanni ka puo ea Rust ho kernel haeba e na le melemo ea sebele ho feta C, mohlala, e tla fana ka tšireletso e sireletsehileng. litlamo holim'a Kernel API. Ntle le moo, Greg o nka moralo ona e le khetho feela, e sa sebetseng ka mokhoa o ikhethileng, e le hore a se ke a kenyelletsa Rust joalo ka ho itšetleha ka kernel.

Ho ile ha fumaneha hore lihlopha tse 'maloa li se li ntse li sebetsa ntlheng ena. Ka mohlala, baetsi ba k'hamphani "Fish in a Barrel" lokisitsoe sesebelisoa sa ho ngola li-module tse ka jarolloang bakeng sa kernel ea Linux ka puo ea Rust, ho sebelisa sete sa likarolo tse sa bonahaleng holim'a li-interfaces le meaho ea kernel ho eketsa ts'ireletso. Li-Layers li hlahisoa ka bo eona ho ipapisitse le lifaele tsa hlooho ea kernel tse teng ho sebelisoa ts'ebeliso bindgen. Clang e sebelisetsoa ho haha ​​​​marako. Ntle le li-interlayers, li-modules tse kopaneng li sebelisa sephutheloana sa staticlib.

E tšoanang e tsoela pele Morero o mong o tsepamisitse maikutlo ho nts'etsopele ea bakhanni ba lits'ebetso tse kentsoeng le lisebelisoa tsa IoT, tse sebelisang bindgen ho hlahisa likarolo tse thehiloeng ho lifaele tsa lihlooho tsa kernel. Moralo ona o u lumella ho ntlafatsa ts'ireletso ea mokhanni ntle le ho etsa liphetoho ho kernel - ho e-na le ho theha maemo a eketsehileng a ho itšehla thajana bakeng sa bakhanni ba kernel, ho etsoa tlhahiso ea ho thibela mathata sethaleng sa ho bokella, ho sebelisa puo ea Rust e sireletsehileng haholoanyane. Ho nahanoa hore mokhoa o joalo o ka 'na oa hlokoa ke baetsi ba lisebelisoa ba hlahisang bakhanni ba nang le thepa ka potlako ntle le ho etsa tlhahlobo e nepahetseng.

Ha se mesebetsi eohle e reriloeng e seng e kentsoe ts'ebetsong, empa moralo o se o ntse o loketse mosebetsi 'me o ne o sebelisetsoa ho ngola mokhanni ea sebetsang bakeng sa LAN9512 USB Ethernet controller e fanoeng letlapeng la Raspberry Pi 3. Mokhanni ea teng oa smsc95xx, o ngotsoe ke C puo. Hoa hlokomeloa hore boholo ba module le holimo ho tloha likarolong tsa nako ea ho sebetsa ha ho etsoa mokhanni ho Rust ha li na thuso, e leng se lumellang hore moralo o sebelisoe bakeng sa lisebelisoa tse nang le lisebelisoa tse fokolang.

Source: opennet.ru

Eketsa ka tlhaloso