Fjirde edysje fan patches foar de Linux-kernel mei stipe foar de Rust-taal

Miguel Ojeda, skriuwer fan it Rust-for-Linux-projekt, foarstelde in fjirde ferzje fan komponinten foar it ûntwikkeljen fan apparaatbestjoerders yn 'e Rust-taal foar konsideraasje troch Linux kernel-ûntwikkelders. Rust-stipe wurdt as eksperiminteel beskôge, mar is al ôfpraat foar opname yn 'e linux-next branch en is folwoeksen genôch om te begjinnen mei it meitsjen fan abstraksjelagen oer kernel-subsystemen, lykas it skriuwen fan bestjoerders en modules. De ûntwikkeling wurdt finansierd troch Google en de ISRG (Internet Security Research Group), dy't de oprjochter is fan it projekt Let's Encrypt en befoarderet HTTPS en de ûntwikkeling fan technologyen om ynternetfeiligens te ferbetterjen.

Tink derom dat de foarstelde wizigingen it mooglik meitsje om Rust as twadde taal te brûken foar it ûntwikkeljen fan bestjoerders en kernelmodules. Rust-stipe wurdt presintearre as in opsje dy't net standert ynskeakele is en net resultearret yn Rust wurdt opnommen as in fereaske build-ôfhinklikens foar de kernel. Troch Rust te brûken foar sjauffeurûntwikkeling kinne jo feiliger en bettere sjauffeurs meitsje mei minimale ynspanning, frij fan problemen lykas ûnthâld tagong nei it befrijen, nul oanwizer dereferences, en buffer oerrin.

Unthâld-feilige ôfhanneling wurdt foarsjoen yn Rust op it gearstallen tiid troch referinsje kontrôle, byhâlden fan foarwerp eigendom en foarwerp libben (omfang), likegoed as troch evaluaasje fan 'e korrektheid fan ûnthâld tagong ûnder koade útfiering. Rust leveret ek beskerming tsjin oerstreamingen fan heule getal, fereasket ferplichte inisjalisaasje fan fariabele wearden foar gebrûk, behannelet flaters better yn 'e standertbibleteek, tapast standert it konsept fan ûnferoarlike referinsjes en fariabelen, biedt sterke statyske typen om logyske flaters te minimalisearjen.

De nije ferzje fan 'e patches bliuwt de opmerkings dy't makke binne tidens de diskusje fan' e earste, twadde en tredde edysjes fan 'e patches eliminearje. Yn de nije ferzje:

  • De oergong nei it brûken fan de stabile release fan Rust 1.58.0 as de referinsjekompiler is makke. Under de wizigingen dy't nedich binne foar it projekt, dy't noch net opnommen binne yn 'e haad Rust-ark, de flagge "-Zsymbol-mangling-version=v0" (ferwachte yn Rust 1.59.0) en de "miskien_uninit_extra" modus (ferwachte yn Rust 1.60.0) .XNUMX) wurde notearre.
  • Tafoege automatyske kontrôles foar de beskikberens fan geskikte Rust ark en útwreide de mooglikheid om te testen Rust stipe yn it systeem.
  • Nije abstraksjes binne foarsteld foar tagong ta apparaatidentifikaasjetabellen ("IdArray" en "IdTable") fan Rust-koade.
  • Lagen tafoege foar tagong ta timer-relatearre funksjes (klokkader).
  • Platfoarmbestjoerders wurde no definieare troch trait-ymplemintaasjes.
  • In nije makro is tafoege om de registraasje fan platfoarmsjauffeurs te ferienfâldigjen, en in nije generyske stjoerprogramma-sjabloan is foarsteld.
  • Makro's tafoege foar "dev_*"-struktueren.
  • Added "{read,write}*_relaxed" metoaden foar it IoMem-type .
  • Ferwiderje de FileOpener-eigenskip om bestânoperaasjes te ferienfâldigjen.
  • De parameter "ThisModule" is tafoege oan de arguminten dy't trochjûn binne by it registrearjen fan in bestjoerder.
  • In standert sjabloan foar it meitsjen fan kernelmodules yn 'e Rust-taal wurdt foarsteld.

Boarne: opennet.ru

Add a comment