Lomiga lona tolu o patch mo le fatu Linux ma le lagolago mo le gagana Rust

O Miguel Ojeda, o le tusitala o le Rust-for-Linux project, ua tuʻuina atu se filifiliga lona tolu mo le atinaʻeina o avetaavale masini i le gagana Rust mo Linux kernel developers e mafaufau i ai. Ole lagolago ole ale ua manatu ole fa'ata'ita'iga, ae ua uma ona malilie i ai mo le fa'aofiina i le linux-so'o lala. O le atinaʻe o loʻo faʻatupeina e Google ma le ISRG (Internet Security Research Group), o le na faavaeina le Let's Encrypt project ma faʻalauiloaina le HTTPS ma le atinaʻeina o tekinolosi e faʻaleleia ai le saogalemu o Initaneti.

Manatua o suiga ua fuafuaina e mafai ai ona faʻaogaina le Rust e fai ma gagana lona lua mo le atinaʻeina o avetaavale ma kernel modules. O le lagolago a le Rust ua tu'uina atu o se filifiliga e le mafai ona fa'aletonu ma e le i'u ai i le fa'aofiina o le Rust o se fa'alagolago mo le fatu. O le fa'aaogaina o le Rust mo le atina'eina o aveta'avale o le a fa'ataga ai oe e fai ni ta'avale saogalemu ma sili atu ona lelei ma sina taumafaiga itiiti, e sa'oloto mai fa'afitauli e pei o le fa'aogaina o le mafaufau pe a mae'a fa'asa'oloto, fa'aletonu le fa'asinomaga, ma fa'alavelave fa'aletonu.

O le fa'aogaina o le manatua-saogalemu o lo'o tu'uina atu i le Rust i le taimi fa'aopoopo e ala i le siakiina o fa'asinomaga, le siakiina o le mea e umia ma le mea faitino i le olaga atoa (lautele), fa'apea fo'i ma le iloiloga o le sa'o o le manatua avanoa i le taimi o le fa'atinoina o tulafono. E maua ai foi e le ele le puipuiga mai le tele o numera, e manaʻomia ai le faʻatagaina o le faʻatulagaina o tau fesuiaʻi aʻo leʻi faʻaaogaina, e sili atu ona lelei le faʻaogaina o mea sese i totonu o le faletusi masani, faʻaaogaina le manatu o faʻamatalaga e le mafai ona suia ma fesuiaiga e ala i le le mafai, ofoina atu le malosi o le taina e faʻaitiitia ai mea sese.

O loʻo faʻaauau pea ona faʻaumatia faʻamatalaga na faia i le taimi o le talanoaga o le uluaʻi ma le lona lua o patches. O suiga sili ona matauina:

  • Ua faia se suiga i le faʻaaogaina o le faʻasalalauga faʻamautu o le Rust 1.57 e avea ma faʻamaumauga faʻapipiʻi ma ua tuʻuina atu se fesoʻotaʻiga i le lomiga faʻamautu o le gagana Rust 2021. I le taimi muamua, sa nonoa patches i le lala beta o Rust ma faʻaogaina nisi o gagana e sa fa'avasegaina e le mautu. O le suiga i le Rust 2021 faʻamatalaga na faʻatagaina ai i matou e amata galuega e aloese ai mai le faʻaogaina o ia foliga le mautonu i patch e pei o const_fn_transmute, const_panic, const_unavailable_unchecked ma core_panic ma try_reserve.
  • O loʻo faʻaauau pea le atinaʻeina o le faʻasologa o le faletusi Rust o loʻo aofia ai i patches, faʻaleleia e faʻaumatia ai galuega faʻavasegaina o manatuaga o le faʻatupuina o le tulaga "popole" pe a tupu mea sese, e pei o le le manatua. O le lomiga fou o loʻo faʻaaogaina le "no_rc" ma le "no_sync" filifiliga e faʻamalo ai galuega e le faʻaaogaina i le kernel Rust code, ma faʻaleleia atili ai le faletusi. O lo'o fa'aauau pea galuega fa'atasi ma le au atia'e tu'ufa'atasi, e fa'atatau i le fa'aliliuina atu o suiga mana'omia mo le fatu i le faletusi autu. O le filifiliga "no_fp_fmt_parse", e manaʻomia mo le faletusi e galue i le kernel level, ua siitia i le Rust base library (core).
  • Ua fa'amamāina le fa'ailoga e fa'ate'a'ese ai fa'amatalaga tu'ufa'atasi pe a fausia le fatu ile CONFIG_WERROR mode. A fau le code i Rust, fa'aopoopo fa'asologa fa'apitoa fa'ata'ita'i ma le Clippy linter lapata'iga e mafai.
  • Abstractions o loʻo tuʻuina atu mo le faʻaaogaina i le Rust code mo seqlocks (faasologa loka), valaau toe foʻi mo le puleaina o le eletise, I / O Memory (readX/writeX), faʻalavelave ma faʻaulu filo, GPIO, avanoa i masini, avetaavale ma faʻamaoniga.
  • O mea faigaluega mo le atina'eina o aveta'avale ua fa'alauteleina e aofia ai mutex e mafai ona toe fa'afeiloa'i, bit iterators, fa'afaigofie fa'amaufa'ailoga, fa'aleleia o fa'ailoga fa'aletonu, ma fa'amaumauga tuto'atasi o pasi.
  • Fa'aleleia galuega ma feso'ota'iga e fa'aoga ai se ituaiga Ref fa'afaigofie, e fa'atatau i le refcount_t backend, lea e fa'aogaina ai le kernel API o le igoa lava e tasi mo le faitauina o fa'amatalaga. Lagolago mo ituaiga Arc ma Rc o loʻo tuʻuina atu i totonu o le faletusi faʻasalalauga masani ua aveese ma e le o maua i le code faʻatino i le kernel level (o filifiliga ua saunia mo le faletusi lava ia e faʻamalo ai nei ituaiga).
  • O patches e aofia ai se faʻamatalaga o le avetaʻavale PL061 GPIO, toe tusia i Rust. O se vaega fa'apitoa o le aveta'avale o lona fa'atinoina toetoe lava o laina ma lea laina e toe fai ai le aveta'avale GPIO i le gagana C. Mo tagata atinaʻe o loʻo fia faʻamasani i le fatuina o avetaavale i Rust, ua saunia se faʻatusatusaga laina-laina-laina e mafai ai ona latou malamalama po o le a le fausiaina i Rust le C code ua liua i totonu.
  • O le autu autu o le Rust codebase ua faʻaaogaina le rustc_codegen_gcc, o le rustc backend mo le GCC o loʻo faʻatinoina muamua-o-taimi (AOT) tuʻufaʻatasiga e faʻaaoga ai le faletusi libgccjit. Faatasi ai ma le atinaʻeina lelei o le pito i tua, o le a faʻatagaina oe e aoina le Rust code o loʻo aʻafia i le fatu e faʻaaoga ai le GCC.
  • I le faaopoopo atu i le ARM, Google ma Microsoft, Red Hat ua faʻaalia le fiafia i le faʻaaogaina o le gagana Rust i le fatu Linux. Sei o tatou manatua o Google o loʻo tuʻuina saʻo le lagolago mo le Rust mo Linux poloketi, o loʻo atiaʻe se faʻatinoga fou o le Binder interprocess communication mechanism i Rust, ma o loʻo mafaufau i le avanoa e toe faʻaaogaina ai avetaavale eseese i Rust. Ua amata e Microsoft ona faʻaaogaina avetaavale mo Hyper-V i Rust. ARM o loʻo galue e faʻaleleia le lagolago a le Rust mo faiga faʻavae ARM. Ua fa'atinoina e le IBM le lagolago a le Rust i le fatu mo faiga PowerPC.

puna: opennet.ru

Faaopoopo i ai se faamatalaga