Versioni i tretë i arnimeve për mbështetjen e shoferit Rust në Linux tashmë është lëshuar

Gjashtë muaj pas publikimit të versionit të dytë, Miguel Ojeda, autor i projektit Rust-for-Linux, bëri të ditur propozimin e opsionit të tretë për zhvillimin e drejtuesve të pajisjes në gjuhën Rust në kernel Linux.

Mbështetja e Rust konsiderohet eksperimentale, por përfshirja e saj në degën e linux-next tashmë është rënë dakord. Zhvillimi financohet nga Google dhe organizata ISRG (Internet Security Research Group), e cila është themeluesja e projektit Let's Encrypt dhe kontribuon në promovimin e HTTPS dhe zhvillimin e teknologjive për të përmirësuar sigurinë në internet.

Duhet mbajtur mend se ndryshimet e propozuara lejojnë që Rust të përdoret si gjuhë e dytë për të zhvilluar drejtuesit dhe modulet e kernelit.

Drejtuesit e ndryshkut në Linux
Artikulli i lidhur:
Versioni i dytë i arnimeve për mbështetjen e shoferit Rust në Linux është dërguar tashmë

Mbështetja e Rust reklamohet si një opsion që nuk është aktiv si parazgjedhje dhe nuk rezulton që Rust të përfshihet në varësitë e nevojshme bazë të ndërtimit. Përdorimi i Rust për zhvillimin e drejtuesve do t'ju lejojë të krijoni drejtues më të mirë dhe më të sigurt me përpjekje minimale, pa vështirësinë e aksesit në një zonë të memories pasi të lirohet, duke mos referuar treguesit null dhe duke tejkaluar kufijtë e tamponit.

Versioni i ri i arnimeve vazhdon të eliminojë komentet e bëra gjatë diskutimit të versionit të parë dhe të dytë të arnimeve dhe ndryshimet më të dukshme që mund të gjejmë:

Kaloi në versionin e qëndrueshëm Rust 1.57 është siguruar si një përpilues referimi dhe lidhës për botimin e stabilizuar të gjuhës Rust 2021. Kalimi në specifikimet Rust 2021 plejohet të fillojë të punojë për të shmangur përdorimin e karakteristikave të tilla të paqëndrueshme në arna si const_fn_transmute, const_panic, const_unreachable_unchecked dhe core_panic dhe try_reserve.

Gjithashtu bie në sy se zhvillimi i versionit alloc ka vazhduar nga biblioteka Rust, në versionin e ri, opsionet "no_rc" dhe "no_sync" zbatohen për të çaktivizuar funksionalitetin i cili nuk përdoret në kodin Rust për kernelin, duke e bërë bibliotekën më modulare. Ne vazhdojmë të punojmë me zhvilluesit kryesorë të alloc për të sjellë ndryshimet e nevojshme të kernelit në bibliotekën kryesore. Opsioni "no_fp_fmt_parse", i cili kërkohet që biblioteka të funksionojë në nivelin e kernelit, është zhvendosur në bibliotekën bazë të Rust (kernel).

Kodi u pastrua për të hequr paralajmërimet e mundshme të përpiluesit kur përpiloni kernelin në modalitetin CONFIG_WERROR. Kur krijohet kodi në Rust, përfshihen modalitete shtesë të përpiluesit diagnostikues dhe paralajmërime të linterit Clippy.

Ata propozuan abstraksione për të përdorur seqlocks (kyçet e sekuencës), thirrjet e kthimit të thirrjeve për menaxhimin e energjisë, memorien I/O (readX / writeX), mbajtësit e ndërprerjeve dhe lidhjeve, GPIO, aksesi i pajisjes, drejtuesit dhe kredencialet në kodin e ndryshkut.

Mjetet e zhvillimit të shoferit janë zgjeruar me përdorimin e mutexe-ve të zhvendosshëm, përsëritësve të biteve, lidhjeve të thjeshtuara mbi treguesit, diagnostikimit të përmirësuar të gabimeve dhe infrastrukturës së pavarur të autobusit të të dhënave.

Puna me lidhje është përmirësuar duke përdorur llojin Ref e thjeshtuar, bazuar në backend-in refcount_t, i cili përdor API-në qendrore me të njëjtin emër për të numëruar referencat. Mbështetja për llojet Arc dhe Rc të ofruara në bibliotekën standarde të hartës është hequr dhe nuk disponohet në kodin e ekzekutuar në nivelin e kernelit (për vetë bibliotekën, janë përgatitur opsione për të çaktivizuar këto lloje).

Një version i drejtuesit PL061 GPIO, i rishkruar në Rust, është shtuar në arna. Një tipar i drejtuesit është se zbatimi i tij afër rresht pas rreshti përsërit drejtuesin ekzistues C GPIO. Për zhvilluesit që duan të njihen me kontrolluesit e ndërtesave në Rust, është përgatitur një krahasim rresht pas rreshti, i cili ofron një pasqyrë se cilat ndërtime në Rust është bërë kodi C.

Baza kryesore e kodeve të Rust miraton rustc_codegen_gcc, një backend rustc për GCC që zbaton përpilimin AOT duke përdorur bibliotekën libgccjit. Me zhvillimin e duhur të backend-it, do t'ju lejojë të mbledhni kodin Rust të përfshirë në kernel duke përdorur GCC.
Përveç ARM, Google dhe Microsoft, Red Hat ka shprehur interes për përdorimin e Rust në kernelin Linux.

Së fundi, nëse jeni të interesuar të dini më shumë rreth tij, mund të konsultoheni me detajet Në lidhjen vijuese.


Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: AB Internet Networks 2008 SL
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.