Kasama sa Rust para sa Linux ang ilang mga pagpapahusay upang suportahan

Sa mga huling buwan Nagtatalo ang mga developer ng Linux ang posibilidad ng payagan ang paggamit ng Rust na wika upang magsulat ng mga bagong driver ng device para sa kernel.

Noong nakaraang taon, ang mga developer ng Linux kernel mukhang nagkasundo na sila sa usapin, Binanggit ng mga tagasuporta ng kalawang ang trabahong nagpapakita na humigit-kumulang dalawang-katlo ng mga kahinaan sa kernel na nakatalaga sa mga CVE sa Android at Ubuntu ay nauugnay sa mga isyu sa seguridad ng memorya.

Kasunod ng pahayag na ito, sinabi ni Linus Torvalds, software engineer, lead creator, at developer ng Linux kernel, sa isang panayam na ang mga talakayan sa paksa ay magiging mas mahalaga kaysa sa isang mahabang post sa Google sa wika.

Nang tanungin tungkol sa mungkahi na gamitin ang Rust, ipinahiwatig niya na, "Ang solusyon dito ay simple: gumamit lamang ng C ++ sa halip na Rust."

Pagkatapos noong Marso, inilunsad ang unang suportae na nagpapahintulot sa mga driver ng Rust na mailagay sa Linux-Next tree para sa karagdagang pagsubok bago ang kanilang pagsasama sa pangunahing kernel.

Sa likod nito ay isang "kahilingan para sa komento" na muling inilabas sa kernel mailing list tungkol sa pananaw ng Rust code para sa Linux kernel.

Miguel OjedaAng Linux kernel developer ay nagsimula ng Request for Comments (RFC) na panukala sa Linux kernel mailing list.

Binalangkas ng post sa mailing list ang mga paniniwala ng mga developer na kasangkot sa pagdaragdag ng Rust code sa kernel, mga benepisyo tulad ng pinahusay na seguridad ng memorya, at higit pa.

“Napansin ng ilan sa inyo nitong mga nakaraang linggo at buwan na ang isang seryosong pagtatangka ay ginagawa upang dalhin ang pangalawang wika sa kernel. Sa wakas kami ay naroon, na may isang RFC na nagdaragdag ng suporta sa Rust sa Linux kernel, "sabi ni Miguel Ojeja. "Alam namin na may napakalaking gastos at panganib na kasangkot sa pagpapakilala ng isang bagong wika sa kernel," idinagdag niya.

Ang Rust para sa Linux Project Team inilipat mula sa Rust beta compiler patungo sa paggamit ng mga stable na release, lumilipat sa tuwing may ilalabas na bagong bersyon.

"Gusto naming pasalamatan si Rust sa pakikipagtulungan sa amin sa mga opsyong ito upang magamit ng kernel ang mga ito," sabi ni Miguel.

Kapag ina-update ang compiler, ang team ay nakapag-alis ng ilang hindi matatag na feature mula sa listahan: const_fn_transmute, const_panic, const_unreachable_unchecked, core_panic, at try_reserve.

Bilang karagdagan sa ito, ito ay naka-highlight na ilang mga pagpipilian sa modularization ay naidagdag higit pa upang ilaan upang huwag paganahin ang ilang mga hindi kinakailangang function: no_rc at no_sync.

Upstream, upang ang kaso ng paggamit ng kernel ay mahusay na suportado, o mas tiyak ang "halo" ng mga opsyon na kailangan ng kernel, ang Upstream core ay nagdagdag din ng no_fp_fmt_parse.

Sa kabilang banda, pinagana ng Rust ang isang serye ng mga karagdagang diagnostic para sa Rust at Clippy compiler. Ang isang pagkakaiba mula sa C ay ang Rust diagnostics ay medyo mas madaling i-disable sa code, na mas mahigpit sa pangkalahatang kaso.

Rin ang mga abstraction at mga update sa driver ay ipinatupad. Nagdagdag ang team ng mga abstraction para sa mga stream lock, power management callback, io memory (readX / writeX), irq chips at high-level na stream manager, gpio chips (kabilang ang irq chips), peripheral, amba peripheral, at driver.

Ang suporta ng ang controller ay pinahusay na may independiyenteng imprastraktura ng bus, Mga bagay na maaaring bawiin, mga mutex na mababawi, mahusay na mga iterator ng bit, mas mahusay na diagnostic ng panic, at mga pinasimpleng wrapper ng pointer. Bukod pa rito, pinahusay at pinasimple nito ang mga bagay sa Ref (katugma sa refcount_t) at pinalitan ang lahat ng instance ng Rust.

At isang bagong driver para sa mga gpio PL061 device ang ipinatupad at naipadala bilang RFC patch.

Panghuli dapat pansinin na Ang suporta sa kalawang ay itinuturing pa ring eksperimental. Gayunpaman, ang suporta ay sapat na mabuti na ang mga kernel developer ay nagsisimula nang magtrabaho sa Rust abstraction para sa pagsulat ng mga subsystem at controller at iba pang mga module. Kakarating lang ng kasalukuyang serye sa Linux-next, kaya ang unang run ay magaganap ngayong linggo.

Fuente: https://lkml.org/lkml


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.