Kvara eldono de flikoj por la Linukso-kerno kun subteno por la Rust-lingvo

Miguel Ojeda, verkinto de la Rust-for-Linux-projekto, proponis kvaran version de komponentoj por evoluigado de aparato-ŝoforoj en la Rust-lingvo por konsidero de Linuksaj kernaj programistoj. Rust-subteno estas konsiderata eksperimenta, sed jam estis interkonsentita por inkludo en la linukso-sekva branĉo kaj estas sufiĉe matura por komenci labori pri kreado de abstraktaj tavoloj super kernaj subsistemoj, same kiel verkado de ŝoforoj kaj moduloj. La disvolviĝo estas financita de Google kaj la ISRG (Interreta Sekureco-Esplorgrupo), kiu estas la fondinto de la projekto Let's Encrypt kaj antaŭenigas HTTPS kaj la evoluon de teknologioj por plibonigi la interretan sekurecon.

Memoru, ke la proponitaj ŝanĝoj ebligas uzi Ruston kiel duan lingvon por disvolvi ŝoforojn kaj kernajn modulojn. Rust-subteno estas prezentita kiel opcio, kiu ne estas ebligita defaŭlte kaj ne rezultigas, ke Rust estas inkluzivita kiel postulata konstrua dependeco por la kerno. Uzado de Rust por ŝofor-disvolviĝo permesos al vi krei pli sekurajn kaj pli bonajn ŝoforojn kun minimuma peno, liberaj de problemoj kiel memoraliro post liberigo, nulaj montriloj dereferencoj kaj bufro-tropasoj.

Memorsekureco estas disponigita en Rust ĉe kompiltempo per referenckontrolado, konservante trakon de objektoposedo kaj objektvivdaŭro (amplekso), same kiel tra taksado de la ĝusteco de memoraliro dum kodekzekuto. Rusto ankaŭ provizas protekton kontraŭ entjeraj superfluoj, postulas devigan inicialigon de variaj valoroj antaŭ uzo, pli bone pritraktas erarojn en la norma biblioteko, aplikas la koncepton de neŝanĝeblaj referencoj kaj variabloj defaŭlte, ofertas fortan senmovan tajpadon por minimumigi logikajn erarojn.

La nova versio de la flikoj daŭre forigas la komentojn faritajn dum la diskuto de la unua, dua kaj tria eldonoj de la flikoj. En la nova versio:

  • La transiro al uzado de la stabila eldono de Rust 1.58.0 kiel la referenca kompililo estis farita. Inter la ŝanĝoj necesaj por la projekto, kiuj ankoraŭ ne estas inkluditaj en la ĉefa ilaro de Rust, la flago “-Zsymbol-mangling-version=v0” (atendita en Rust 1.59.0) kaj la reĝimo “maybe_uninit_extra” (atendita en Rust 1.60.0). .XNUMX) estas notitaj. .
  • Aldonitaj aŭtomataj kontroloj pri la havebleco de taŭgaj Rust-iloj kaj vastigis la kapablon testi Rust-subtenon en la sistemo.
  • Novaj abstraktaĵoj estis proponitaj por alirado de aparato-identigtabloj ("IdArray" kaj "IdTable") de Rust-kodo.
  • Aldonitaj tavoloj por aliri tempigilo-rilatajn funkciojn (horloĝkadro).
  • Platformŝoforoj nun estas difinitaj per trajto-efektivigoj.
  • Nova makroo estis aldonita por simpligi la registradon de platformaj ŝoforoj, kaj nova senmarka ŝoforŝablono estis proponita.
  • Aldonitaj makrooj por "dev_*" strukturoj.
  • Aldonitaj "{read,write}*_relaxed" metodoj por la IoMem-tipo .
  • Forigis la posedaĵon FileOpener por simpligi dosieroperaciojn.
  • La parametro "ThisModule" estis aldonita al la argumentoj pasigitaj dum registrado de ŝoforo.
  • Norma ŝablono por krei kernmodulojn en la Rust-lingvo estas proponita.

fonto: opennet.ru

Aldoni komenton