Ang kalawang ay hindi naibukod mula sa mga batikos ni Linus Torvalds

Ilang linggo na ang nakaraan ang balita ng tungkol sa ilang pagpapatupad na ginawa sa ang linux-susunod na sangay, na nagsasama ng isang paunang hanay ng mga bahagi upang bumuo ng mga driver ng aparato sa wikang Kalawang.

Ang dokumentasyong ito ay hiwalay na nai-publish sa paggamit ng Rust sa Linux kernel at isang halimbawa ng isang kernel module na may isang driver ng aparato ng character sa wikang Rust. Ang code ay idinagdag ni Stephen Rothwell, tagapangalaga ng sangay.

Pagkatapos nito ay napunta sa Linus Torvalds ang pagsusuri sa pagpapatupad patch ng mga posibilidad upang maitakda ang mga driver ng Rust na wika sa kernel ng Linux at binigkas ang ilang pagpuna.

Ang pinakamalaking reklamo ay sanhi ng makatakas na potensyal Ang "Run-time failure panicen" sa mga maling sitwasyon, halimbawa, sa isang sitwasyon na wala sa memorya, kapag maaaring mabigo ang mga pagpapatakbo ng pabagu-bago ng memorya, kabilang ang mga pagpapatakbo ng kernel.

Torvalds nakasaad na ang gayong pagtuon sa kernel ay sa pangkalahatan ay hindi katanggap-tanggap, At kung hindi mo maintindihan ang puntong ito, maaari mong ganap na tanggihan ang anumang code na sumusubok na gamitin ang gayong diskarte. Sa kabilang banda, ang tagabuo ng patch ay sumang-ayon sa problema at isinasaalang-alang na malulutas ito.

Ang isa pang problema ay ang mga pagtatangka na gumamit ng lumulutang point o 128 bit na uri, na hindi wasto para sa mga kapaligiran tulad ng Linux kernel.

Maaaring hindi mo maintindihan ang mga ramifying kung kailan ito maaaring mangyari, kaya marahil
ay mas mababa sa isang problema kaysa sa tingin ko ito, ngunit sa panimula
Sa palagay ko kung ang anumang pagmamapa ng Rust ay maaaring maging sanhi ng gulat, ito ay simple
_ panimula_ hindi katanggap-tanggap.

Mga pagkabigo sa pagmamapa sa isang non-core na kontrol o code, at iyon ay, para sa
kahulugan, lahat ng mga bagong code sa kalawang, ay hindi kailanman HINDI maging sanhi
gulat na wasto. Gayundin ang para sa «oh, sa ilang mga kaso hindi ko sinubukan ang paggamit ng
128-bit integers o lumulutang point '.

Kaya't kung ang Rust compiler ay nagdudulot ng mga nakatagong takdang-aralin na hindi maaaring
tiktikan at bumalik bilang mga error, pagkatapos ay seryoso akong naniniwala na ang lahat ng ito
diskarte ay dapat na ganap na NAK'ed, at ang Rust imprastraktura,
alinman sa antas ng tagatala o sa mga kernel wrappers, kailangan mo ng higit pa
trabaho.

Ito ay naging isang mas seryosong problema., dahil sa sandaling ito Ang sentral na silid-aklatan ng Rust ay hindi maibabahagi at kumakatawan sa isang malaking mantsa; walang paraan upang humiling lamang ng ilan sa mga tampok, sa gayon pag-iwas sa paggamit ng isa o iba pang may problemang pagpapaandar.

Ang solusyon sa problema ay maaaring mangailangan ng mga pagbabago sa tagatala ng kalawang at silid-aklatan, kahit na ang koponan ay wala pang diskarte sa kung paano ipatupad ang modularity para sa mga aklatan ng wika.

Bukod dito, Itinuro ni Torvalds na ang ibinigay na halimbawa ng controller ay walang silbi at pinayuhan na maglakip bilang isang halimbawa ng isang driver na malulutas ang isa sa mga totoong problema.

Bago ito Inanunsyo ng Google ang pakikilahok nito sa isang inisyatiba upang itaguyod ang suporta sa Rust sa kernel ng Linux y nagbigay ng mga teknikal na aspeto ng pagiging posible ng pagpapatupad ng Rust upang labanan ang mga problema na nagmumula sa mga pagkakamali sa pagtatrabaho sa memorya.

Sa palagay ng Google handa na ang Rust na sumali sa C bilang isang wikang pang-unlad Mga bahagi ng kernel ng Linux. Nagbibigay din ang artikulo ng mga halimbawa ng paggamit ng wikang Rust upang paunlarin ang mga kernel driver, sa konteksto ng paggamit nito sa Android platform (Kinikilala ang Rust bilang isang opisyal na suportadong wika para sa pagpapaunlad ng Android).

Dapat itong nabanggit na Naghanda ang Google ng paunang prototype ng isang controller na nakasulat sa Rust para sa inter-proseso na mekanismo ng komunikasyon ng Binder, na magpapahintulot sa isang detalyadong paghahambing at paghahambing sa seguridad ng mga pagpapatupad ng Binder sa C at Rust.

Sa kasalukuyan nitong form, ang trabaho ay hindi pa nakukumpleto, ngunit para sa halos lahat ng pangunahing mga abstraction ng pagpapaandar ng kernel na kinakailangan upang gumana ang Binder, ang mga layer ay inihanda na gamitin ang mga abstraction na ito sa Rust code.

Panghuli, kung nais mong malaman ang tungkol dito, maaari mong suriin ang 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.

  1.   Miguel Rodriguez dijo

    Ang lahat ng kanilang mga pintas ay may bisa, na ibinigay na ang Rust ay isang bagong wika na gumagana na may ibang paradaym sa C, naiintindihan ang pag-aalala tungkol sa anumang detalye sa mga aklatan o sa mismong tagatala kung saan, kahit na ang code ay wasto, sanhi nito ang kernel upang basagin kung paano ito ipinatupad at itinayo. Iyon ang dahilan kung bakit ang mga mungkahi tulad ng kakayahang baguhin ang silid-aklatan upang tumawag at panatilihing aktibo lamang ang mga pagpapaandar na kinakailangan para sa programa (o sa kasong ito para sa anumang tagakontrol) ay gumagana nang tama. Hindi rin makatuwiran ang hinihiling mo, na magdadala sa iyo ng isang tunay na prototype controller na gumagana nang maayos sa isang kasalukuyang problema (o hindi bababa sa ginagawa ang parehong trabaho bilang isang mayroon nang kernel at gumagana nang hindi nagpapanic).

  2.   Sete dijo

    Paminsan-minsan ay binabasa kong muli ang mga artikulo ni Linux Adictos Ngunit kailangan ko ng napakakaunting oras upang mawalan ng pag-asa kapag nakita ko na sa kabila ng pagkakaroon ng napakagandang nilalaman, ang huling resulta ay nawasak sa kakila-kilabot na spelling.
    Napakahirap kaya ng pagbaybay at grammar?
    Isang kahihiyan!
    Magpasaya ka!