Nova versio de flikoj por la Linukso-kerno kun subteno por la Rust-lingvo

Miguel Ojeda, la verkinto de la Rust-for-Linux-projekto, proponis la liberigon de v5-komponentoj por evoluigado de aparataj peliloj en la Rust-lingvo por konsidero de Linuksaj kernaj programistoj. Ĉi tiu estas la sesa eldono de la flikoj, konsiderante la unuan version, eldonita sen versio numero. Rust-subteno estas konsiderita eksperimenta, sed jam estas inkluzivita en la linukso-sekva branĉo kaj estas sufiĉe evoluigita por komenci laboron pri kreado de abstraktaj tavoloj super kernaj subsistemoj, same kiel skribado 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, tria, kvara kaj kvina eldonoj de la flikoj. En la nova versio:

  • La ilaro estis ĝisdatigita por liberigi Rust 1.59.0. Variaĵo de la alloc-biblioteko ankaŭ estas sinkronigita kun la nova versio de Rust, forigante la eblan generacion de "paniko-" ŝtato kiam eraroj okazas, kiel ekzemple el memoro. La kapablo uzi enigaĵojn de asemblero ("trajto(global_asm)") estis stabiligita.
  • Aldonita subteno por krei gastigajn programojn en Rust, kiuj estas uzataj dum kerno-kompilo.
  • Anstataŭ liveri antaŭgeneritajn celplatformajn specifdosierojn, ili estas dinamike generitaj surbaze de kerna agordo.
  • Aldonita HAVE_RUST-kerna parametro por ebligi por arkitekturoj kiuj subtenas Rust.
  • Abstraktaĵoj estas proponitaj por uzo en Rust-kodo por hardvaro pseŭd-hazarda nombrogeneratoro.
  • Permesis la uzon de erarkodoj sen la "Eraro::" prefikso (ekzemple, "return Err(EINVAL)") por proksimigi la uzadon de erarkodoj en C.
  • Aldonita "CString" tipo por kutimaj C-ŝnuroj. La Formater kaj Buffer-tipoj estis kombinitaj.
  • Aldonitaj tipoj Bool kaj LockInfo.
  • La efektivigo de spinaj seruroj estis simpligita.

fonto: opennet.ru

Aldoni komenton