Fanontana fahatelo amin'ny patch ho an'ny kernel Linux miaraka amin'ny fanohanana ny fiteny Rust

Miguel Ojeda, mpanoratra ny tetikasa Rust-for-Linux, dia nanolotra safidy singa fahatelo ho an'ny famolavolana mpamily fitaovana amin'ny fiteny Rust ho an'ny mpamorona kernel Linux hodinihina. Ny fanohanana harafesina dia heverina ho andrana, saingy efa nifanarahana ny hampidirana azy ao amin'ny sampana linux manaraka. Ny fampandrosoana dia vatsian'ny Google sy ny ISRG (Internet Security Research Group), izay mpanorina ny tetikasa Let's Encrypt ary mampiroborobo ny HTTPS sy ny fampivoarana ny teknolojia hanatsarana ny fiarovana amin'ny Internet.

Tsarovy fa ireo fanovana naroso dia ahafahana mampiasa ny Rust ho fiteny faharoa amin'ny famolavolana mpamily sy maody kernel. Ny fanohanan'ny Rust dia aseho ho toy ny safidy tsy avela amin'ny alΓ lan'ny default ary tsy miteraka ny Rust ho tafiditra ho fiankinan-doha ilaina amin'ny kernel. Ny fampiasana Rust ho an'ny fampandrosoana ny mpamily dia ahafahanao mamorona mpamily azo antoka kokoa sy tsara kokoa miaraka amin'ny ezaka kely indrindra, tsy misy olana toy ny fidirana amin'ny fahatsiarovana aorian'ny fanafahana, ny tsy fahampian'ny pointer tsy misy dikany ary ny fihoaran'ny buffer.

Ny harafesina dia manery ny fiarovana ny fitadidiana amin'ny fotoana fanangonana amin'ny alΓ lan'ny fanamarinana reference, ny fananana zavatra ary ny fanaraha-maso mandritra ny androm-piainana (scopes), ary amin'ny fanombanana ny fahamarinan'ny fidirana amin'ny fitadidiana amin'ny fotoana fandehanana. Ny Rust koa dia manome fiarovana amin'ny fihoaran'ny integer, mitaky ny fanombohana ny soatoavina miovaova alohan'ny hampiasana azy, manana fikarakarana fahadisoana tsara kokoa ao amin'ny tranomboky mahazatra, mampiasa ny foto-kevitry ny fanondroana sy ny fari-pitsipika tsy azo ovaina amin'ny alΓ lan'ny default, ary manolotra sora-baventy matanjaka mba hampihenana ny lesoka lojika.

Ny dikan-teny vaovao amin'ny patch dia manohy manafoana ny fanehoan-kevitra natao nandritra ny fifanakalozan-kevitra momba ny dikan-teny voalohany sy faharoa amin'ny patch. Ny fiovana misongadina indrindra:

  • Nisy ny fanovana natao tamin'ny fampiasana ny famoahana stable an'ny Rust 1.57 ho mpanangona reference ary nomena rohy mankany amin'ny fanontana tsy miovaova amin'ny fiteny Rust 2021. Talohan'izay, ny patch dia nafatotra tamin'ny sampana beta an'ny Rust ary nampiasa endri-teny sasany izay nosokajiana ho tsy marin-toerana. Ny fifindrana mankany amin'ny fanondroana Rust 2021 dia namela anay hanomboka asa mba hialana amin'ny fampiasana ireo endri-javatra tsy miovaova toy ny const_fn_transmute, const_panic, const_unavailable_unchecked ary core_panic ary try_reserve.
  • Nitohy ny fampivoarana ny dikan-teny alloc an'ny tranomboky Rust izay tafiditra ao amin'ny patches, novaina mba hanaisotra ny fiasan'ny fizarana fahatsiarovana ny mety hisian'ny fanjakana "panic" rehefa misy lesoka, toy ny tsy fitadidiana. Ny dikan-teny vaovao dia mampihatra ny safidy "no_rc" sy "no_sync" hanaisotra ny fiasa tsy ampiasaina amin'ny kaody Rust kernel, mahatonga ny tranomboky ho modular kokoa. Mitohy ny asa miaraka amin'ireo mpamorona alloc lehibe, mikendry ny hamindra ny fanovana ilaina amin'ny kernel mankany amin'ny tranomboky lehibe. Ny safidy "no_fp_fmt_parse", takiana amin'ny tranomboky hiasa amin'ny ambaratonga kernel, dia nafindra tany amin'ny tranomboky Rust base (fototra).
  • Ny kaody dia nodiovina mba hanesorana ny mety ho fampitandremana compiler rehefa manangana kernel amin'ny fomba CONFIG_WERROR. Rehefa manangana kaody ao amin'ny Rust, dia alefa ny maodely diagnostic compiler fanampiny sy fampitandremana Clippy linter.
  • Ny abstraction dia atolotra hampiasaina amin'ny kaody Rust ho an'ny seqlocks (hidy filaharana), antso an-tariby ho an'ny fitantanana herinaratra, I/O Memory (readX/writeX), mpanelanelana sy kofehy, GPIO, fidirana amin'ny fitaovana, mpamily ary fahazoan-dΓ lana.
  • Ny fitaovana ho an'ny fampivoarana ny mpamily dia nitarina mba hampidirana ireo mutex azo afindra toerana, bit iterators, famatorana pointer notsorina, fanatsarana ny diagnostika diso, ary fotodrafitrasa tsy miankina amin'ny bus.
  • Ny asa nohatsaraina miaraka amin'ny rohy mampiasa karazana Ref notsorina, mifototra amin'ny refcount_t backend, izay mampiasa ny kernel API mitovy anarana amin'ny fanisana references. Ny fanohanana ny karazana Arc sy Rc omena ao amin'ny tranomboky alloc mahazatra dia nesorina ary tsy hita ao amin'ny code executed amin'ny kernel level (safidy efa nomanina ho an'ny tranomboky izay manakana ireo karazana ireo).
  • Ny patch dia misy ny dikan-tenin'ny mpamily PL061 GPIO, nosoratana tamin'ny Rust. Ny endri-javatra manokana amin'ny mpamily dia ny fampiharana azy saika andalana isaky ny andalana dia mamerina ny mpamily GPIO efa misy amin'ny fiteny C. Ho an'ireo mpamorona izay te-hahafantatra ny famoronana mpamily ao amin'ny Rust, dia efa nomanina ny fampitahana an-tsipika izay ahafahan'izy ireo mahatakatra hoe iza amin'ireo fananganana ao amin'ny Rust no avadika ho code C.
  • Ny fototry ny Rust fototra dia nandray ny rustc_codegen_gcc, rustc backend ho an'ny GCC izay mametraka mialoha ny fotoana (AOT) fanangonana amin'ny fampiasana ny libgccjit tranomboky. Miaraka amin'ny fampandrosoana araka ny tokony ho izy ny backend dia ahafahanao manangona ny code Rust tafiditra ao amin'ny kernel mampiasa GCC.
  • Ankoatra ny ARM, Google ary Microsoft, Red Hat dia naneho fahalianana amin'ny fampiasana ny fiteny Rust amin'ny kernel Linux. Aoka hotsaroantsika fa ny Google dia manome fanohanana mivantana ny tetikasa Rust ho an'ny Linux, mamolavola fampiharana vaovao amin'ny rafitra fifandraisana Binder interprocess ao amin'ny Rust, ary mieritreritra ny mety hamerenana ny mpamily isan-karazany ao amin'ny Rust. Microsoft dia nanomboka nametraka mpamily ho an'ny Hyper-V amin'ny Rust. ARM dia miasa hanatsarana ny fanohanana Rust ho an'ny rafitra mifototra amin'ny ARM. IBM dia nametraka fanohanana Rust tao amin'ny kernel ho an'ny rafitra PowerPC.

Source: opennet.ru

Add a comment