Bag-ong bersyon sa mga patch alang sa Linux kernel nga adunay suporta alang sa Rust nga pinulongan

Si Miguel Ojeda, tagsulat sa Rust-for-Linux nga proyekto, nagsugyot sa pagpagawas sa v5 nga mga sangkap alang sa pagpalambo sa mga drayber sa device sa Rust nga pinulongan aron konsiderahon sa mga developer sa Linux kernel. Kini ang ikaunom nga edisyon sa mga patch, nga gikonsiderar ang una nga bersyon, nga gipatik nga wala’y numero sa bersyon. Ang suporta sa Rust giisip nga eksperimento, apan gilakip na sa sunod nga sanga sa linux ug igo nga naugmad aron magsugod sa pagtrabaho sa paghimo sa mga abstraction layer sa mga subsystem sa kernel, ingon man ang pagsulat sa mga drayber ug module. Ang kalamboan gipondohan sa Google ug sa ISRG (Internet Security Research Group), nga mao ang nagtukod sa Let's Encrypt nga proyekto ug nagpasiugda sa HTTPS ug sa pagpalambo sa mga teknolohiya aron mapausbaw ang seguridad sa Internet.

Hinumdomi nga ang gisugyot nga mga pagbag-o nagpaposible sa paggamit sa Rust isip ikaduha nga pinulongan alang sa pagpalambo sa mga drayber ug kernel modules. Ang suporta sa Rust gipresentar isip usa ka opsyon nga dili mahimo pinaagi sa default ug dili moresulta sa Rust nga gilakip isip usa ka gikinahanglan nga pagsalig sa pagtukod alang sa kernel. Ang paggamit sa Rust alang sa pagpalambo sa drayber magtugot kanimo sa paghimo og mas luwas ug mas maayo nga mga drayber nga adunay gamay nga paningkamot, gawasnon sa mga problema sama sa pag-access sa memorya human sa pagpalaya, null pointer dereferences, ug buffer overruns.

Ang pagdumala nga luwas sa memorya gihatag sa Rust sa oras sa pag-compile pinaagi sa pagsusi sa pakisayran, pagsubay sa pagpanag-iya sa butang ug kinabuhi sa butang (sangkap), ingon man pinaagi sa pagtimbang-timbang sa pagkahusto sa pag-access sa memorya sa panahon sa pagpatuman sa code. Naghatag usab ang Rust og proteksyon batok sa pag-awas sa integer, nanginahanglan mandatory nga pagsugod sa mga variable nga kantidad sa wala pa gamiton, pagdumala sa mga sayup nga mas maayo sa standard nga librarya, gipadapat ang konsepto sa dili mausab nga mga pakisayran ug mga variable nga default, nagtanyag kusog nga static nga pag-type aron maminusan ang mga lohikal nga sayup.

Ang bag-ong bersyon sa mga patch nagpadayon sa pagwagtang sa mga komento nga gihimo sa panahon sa paghisgot sa una, ikaduha, ikatulo, ikaupat ug ikalima nga edisyon sa mga patch. Sa bag-ong bersyon:

  • Ang toolkit gi-update aron buhian ang Rust 1.59.0. Ang usa ka variant sa alloc library gi-synchronize usab sa bag-ong bersyon sa Rust, nga nagwagtang sa posible nga henerasyon sa usa ka "panic" nga estado kung adunay mga sayup nga mahitabo, sama sa wala sa memorya. Ang abilidad sa paggamit sa assembler inserts ("feature(global_asm)") na-stabilize.
  • Gidugang nga suporta alang sa paghimo sa mga programa sa host sa Rust nga gigamit sa panahon sa pag-compile sa kernel.
  • Imbis nga maghatud sa mga nauna nga nahimo nga target nga mga file sa espesipikasyon sa platform, kini dinamikong gimugna base sa configuration sa kernel.
  • Gidugang ang HAVE_RUST kernel parameter aron mahimo ang mga arkitektura nga nagsuporta sa Rust.
  • Ang mga abstraction gisugyot nga gamiton sa Rust code alang sa usa ka hardware pseudo-random number generator.
  • Gitugotan ang paggamit sa mga error code nga wala ang "Error::" prefix (pananglitan, "return Err(EINVAL)") aron mabanabana ang pagdumala sa mga error code sa C.
  • Gidugang ang tipo nga "CString" alang sa naandan nga C-strings. Ang mga tipo sa Formatter ug Buffer gihiusa.
  • Gidugang ang mga tipo sa Bool ug LockInfo.
  • Ang pagpatuman sa mga spin lock gipasayon.

Source: opennet.ru

Idugang sa usa ka comment