Ang pangalawang bersyon ng mga patch para sa suporta ng driver ng Rust sa Linux ay naipadala na

Noong Marso ng taong ito sa linux-susunod na sangay na kung saan ay nagtrabaho para sa Linux kernel 5.13, Ang isang paunang hanay ng mga bahagi ay isinama upang paunlarin ang mga driver ng aparato sa ang WIKA Kalawang at ngayon ang kahilingan ay ginawa upang isama ang isang pangalawang edisyon ng mga patch upang magdagdag ng suporta sa Rust sa kernel ng Linux.

Ang taong nagpadala ng kahilingan sa mga developer ng Linux ay si Miguel Ojeda, may akda ng proyekto na Rust-for-Linux at napag-usapan din namin ilang araw na ang nakalilipas, dahil tinanggap siya upang alagaan ang proyekto na "Prossimo" na karaniwang nakatuon sa pag-uugnay ng mga pagsisikap upang ilipat ang kritikal na imprastraktura ng software sa isang ligtas na code upang ma-secure ang memorya ng kernel ng Linux sa Rust (kung nais mong malaman ang tungkol sa proyekto, maaari kang kumunsulta pag-post sa link sa ibaba.)

Mga kalawang driver sa Linux
Kaugnay na artikulo:
Prossimo, isang proyekto ng ISRG upang ma-secure ang memorya ng kernel ng Linux gamit ang Rust

Ang kahilingan na ipinadala ni Miguel Ojeda ay isang pangalawang na-update na bersyon ng mga sangkap para sa pagpapaunlad ng mga driver ng aparato sa wikang Rust at kung saan ang mga puna na ginawa sa panahon ng talakayan ng unang bersyon ng mga patch ay tinanggal at kung saan sumali na si Linus Torvalds sa talakayan at iminungkahi na baguhin ang lohika upang maproseso ang ilang kaunting pagpapatakbo.

Sa loob ng mga benepisyo ang nabanggit ay iyan ligtas na pamamahala ng memorya ay garantisadong sa kalawang sa pag-ipon ng oras sa pamamagitan ng pag-check ng mga sanggunian, pagsubaybay sa pagmamay-ari ng object at habang buhay ng object, pati na rin ang pagsusuri ng kawastuhan ng pag-access ng memorya sa oras ng pagtakbo.

Nagbibigay din ang kalawang proteksyon ng overflow ng integer, nangangailangan ng sapilitan na pagsisimula ng mga variable na halaga bago gamitin, mas mahusay na humahawak ng mga error sa karaniwang silid-aklatan, pinagtibay ang konsepto ng mga sanggunian at hindi nababago na mga variable bilang default, at nag-aalok ng malakas na static na pagsulat upang i-minimize ang mga lohikal na error.

Sa mga pagbabago na namumukod-tangi ng bagong bersyon ng mga patch na ito ay nabanggit:

  • Pinipigilan ng code ng paglalaan ng memorya ang posibilidad na bumuo ng isang gulat kapag nangyari ang mga error tulad ng wala sa memorya.
  • Ay kasama isang variant ng Rust alloc library, kung saan ang code ay muling binago upang mahawakan ang mga kandado, ngunit ang layunin sa pagtatapos ay dalhin ang lahat ng kinakailangang mga tampok para sa kernel sa pangunahing edisyon ng paglalaan (ang mga pagbabago ay naihanda na at dinala sa pamantayang Rust library).
  • Sa halip na gabi-gabing pagtatayo, magagamit na ang beta at matatag na mga bersyon tagatala ng kalawang upang magtala ng isang kernel na pinagana ng Rust. Sa kasalukuyan ang rustc 1.54-beta1 ay ginagamit bilang isang sangguniang tagatala, ngunit pagkatapos ng paglabas ng 1.54 sa pagtatapos ng buwan, susuportahan ito bilang isang sanggunian na tagatala.
  • Nagdagdag ng suporta para sa pagsusulat ng mga pagsubok gamit ang karaniwang katangian ng Rust na "# [test]" at ang kakayahang gumamit ng mga doctest upang magamit ang sample code mula sa dokumentasyon bilang mga pagsubok.
  • Ang suporta para sa mga arkitektura ng ARM32 at RISCV ay idinagdag bilang karagdagan sa dating suportadong x86_64 at ARM64.
    Pinabuting GCC pagpapatupad Rust (ang GCC frontend para sa Rust) at rustc_codegen_gcc (ang rustc backend para sa GCC), na ngayon ay pumasa sa lahat ng mga benchmark.
  • A bagong antas ng abstraction para sa mga programang Rust na gumamit ng mga mekanismo ng kernel na nakasulat sa C, tulad ng mga puno, sanggunian sa pagbibilang ng mga bagay, paglikha ng mga tagapaglaraw ng file, mga gawain, file, at mga vector ng I / O.
  • Ang mga bahagi ng pag-unlad ng driver ay napabuti ang suporta para sa module na "file_operations", ang "module!" Macro, macro logging, at mga driver ng una (pagsisiyasat at tanggalin).
  • Ang Binder ay may suporta para sa pagpasa ng mga deskripor ng file at mga link sa LSM.
  • Ang isang mas magagamit na halimbawa ng isang Rust driver, bcm2835-rng, ay iminungkahi para sa isang hardware random number generator para sa mga board ng Raspberry Pi.

Panghuli, kung interesado kang malaman ang tungkol dito, maaari kang kumunsulta sa mga detalye Sa sumusunod na link.


Iwanan ang iyong puna

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

*

*

  1. Responsable para sa data: AB Internet Networks 2008 SL
  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.