Isiphakamiso sokuxoxisana ngodaba lokwengeza amathuluzi okuthuthukisa i-Rust ku-Linux kernel

U-Nick Desagnier (Nick Desaulniers), osebenza kwa-Google ukuze ahlinzeke ukwesekwa ukwakha i-Linux kernel usebenzisa i-Clang compiler futhi esiza lungisa izimbungulu ku-Rust compiler, kuphakanyisiwe bambe engqungqutheleni I-Linux Plumbers Conference 2020 iseshini yokuxoxa ngokwenza kube nokwenzeka ukuthuthukisa izingxenye ze-kernel ku-Rust. U-Nick uhlela ingqungquthela encane enikezelwe ku-LLVM, futhi ukholelwa ukuthi kungaba kuhle ukuxoxa ngezici zobuchwepheshe zokuhlanganiswa okungenzeka kokusekelwa kwe-Rust ku-kernel (usevele ulungiselele i-prototype esebenzayo ye-KBuild) futhi uyaqonda ukuthi ukusekelwa okunjalo kufanele yini. kwengezwe nhlobo futhi imiphi imikhawulo ekusetshenzisweni kwe-Rust okufanele yamukelwe.

Masikhumbule ukuthi engxoxweni yakamuva engqungqutheleni ye-Open Source Summit kanye nengqungquthela ye-Embedded Linux, uLinus Torvalds. akazange akukhiphe ngaphandle ukuvela kokubophezela kokuthuthukiswa kwamasistimu angaphansi kwe-kernel (isibonelo, abashayeli) ngezilimi ezifana ne-Rust. Ikhono lokuthuthukisa abashayeli ku-Rust lingasivumela ukuthi sakhe abashayeli abaphephile nabangcono ngokuzikhandla okuncane, abangenazo izinkinga ezifana nokufinyelela inkumbulo ngemva kokukhulula, izinkomba ezingenalutho, kanye nokweqa kwebhafa. Sekuvele kunamaphrojekthi ambalwa ezinkampani zangaphandle azosebenzisa lesi sici:

  • Onjiniyela abavela enkampanini ethi "Fish in a Barrel" ilungisiwe ikhithi yamathuluzi yokubhala amamojula alayishekayo we-Linux kernel ngolimi lwe-Rust, kusetshenziswa isethi yezendlalelo ezingabonakali phezu kwezindawo zokusebenzelana nezinhlaka ze-kernel ukwandisa ukuphepha. Izendlalelo zikhiqizwa ngokuzenzakalelayo ngokusekelwe kumafayela ekhanda le-kernel akhona kusetshenziswa insiza i-bindgen. I-Clang isetshenziselwa ukwakha izendlalelo. Ngokungeziwe kuma-interlayers, amamojula ahlanganisiwe asebenzisa iphakheji ye-staticlib.
  • Abacwaningi abavela eNyuvesi yaseChina yaseHong Kong thuthukisa iphrojekthi yokuthuthukisa abashayeli bezinhlelo ezishumekiwe kanye namadivayisi we-inthanethi Yezinto ku-Rust, ephinda isebenzisa i-bindgen ukuze ikhiqize izendlalelo ezisuselwe kumafayela enhlokweni ye-kernel. Uhlaka lukuvumela ukuthi uthuthukise ukuphepha komshayeli ngaphandle kokwenza izinguquko ku-kernel - esikhundleni sokudala amazinga engeziwe wokuzihlukanisa kubashayeli ku-kernel, kuhlongozwa ukuvimba izinkinga esigabeni sokuhlanganiswa, usebenzisa ulimi oluvikelekile lwe-Rust. Kucatshangwa ukuthi indlela enjalo ingase idingeke abakhiqizi bemishini abathuthukisa abashayeli bobunikazi ngokushesha ngaphandle kokwenza ucwaningo olufanele.
  • Abathuthukisi bohlaka C2Rust yokusakaza ikhodi C ku-Rust, yenza kusebenze izivivinyo zokuguqula amamojula e-kernel ngokuhlela okuncane okwenziwa ngesandla. Enye yezinkinga eziphawuliwe ukusetshenziswa ezingxenyeni eziningi ze-kernel yekhodi esebenzisa izandiso ze-GCC ezingakasekelwa ku-C2Rust. Ukuze kuxazululwe le nkinga, i-C2Rust ihlela ukwengeza ukusekelwa kwezibaluli ze-GCC ezisemgqeni, ukubanda, iziteketiso, ezisetshenzisiwe nesigaba, kanye nokwandisa amandla omhlanganisi ongaphakathi futhi ixazulule izinkinga ngezakhiwo eziqondaniswe futhi zipakishwe (ngokwesibonelo, xregs_state) . Izinkinga ezinkulu ezidinga umsebenzi wezandla zihlanganisa ukungakwazi ukuhumusha ama-C macros angasho lutho abe yi-Rust macros kanye nesidingo sokuchaza kabusha izinhlobo, njengoba i-C2Rust ihumusha izinhlobo ezingu-C zibe izincazelo kuphakheji ye-libc, kodwa le phakheji ayikwazi ukusetshenziswa kumamojula we-kernel.

Source: opennet.ru

Engeza amazwana