Lomiga lona lima 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 ia tuuina mai se vaega lona lima o vaega mo le atiaeina o avetaavale masini i le gagana Rust mo le iloiloga e le au atinaʻe fatu Linux. O le lagolago a le ele ua manatu o se fa'ata'ita'iga, ae ua uma ona aofia i le linux-so'o lala ma ua lava le atina'eina e amata galue ai i le fausiaina o fa'a'ese'esega i luga ole kernel subsystems, fa'apea fo'i ma le tusitusi ta'avale ma modules. 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 le lomiga fou o patch o loʻo faʻaauau pea ona faʻaumatia faʻamatalaga na faia i le taimi o le talanoaga o le muamua, lona lua, tolu ma le fa o lomiga o patch. I le lomiga fou:

  • Su'ega vaega mo le lagolago Rust ua fa'aopoopoina i le fa'aauauina fa'atasi faiga fa'avae i luga ole Intel-lagolagoina 0DAY/LKP bot ma le fa'asalalauina o lipoti su'ega ua amata. O loʻo matou sauni e tuʻufaʻatasia le lagolago a le Rust i le KernelCI masini suʻega faʻapitoa. O suʻega faʻavae ile GitHub CI ua tuʻuina atu ile faʻaogaina o pusa.
  • E fa'asa'olotoina fa'aoga fatu ele mai le mana'oga e fa'amatala uiga o le pusa "#![no_std]" ma le "#![feature(...)]".
  • Fa'aopoopoina le lagolago mo fa'amoemoe fa'apotopotoga e tasi (.o, .s, .ll ma .i).
  • Taiala ta'iala o lo'o fa'amatalaina ai tulafono mo le tu'ueseeseina o fa'amatalaga (“//”) ma le fa'amauina o le code (“///”).
  • O le is_rust_module.sh script ua uma ona toe galue.
  • Fa'aopoopoina le lagolago mo fa'asologa fa'atasi (global shared variable) primitives fa'atatau ile fa'atinoga o le "CONFIG_CONSTRUCTORS".
  • Fa'afaigofie le puleaina o loka: Guard ma GuardMut e tu'u fa'atasi ma tasi le ituaiga fa'ata'atia.
  • E mafai ona faʻamalamalamaina faʻamaufaʻailoga faaopoopo pe a resitalaina masini.
  • Faʻaopoopo le "RwSemaphore" abstraction, lea e galue o se afifi i luga o le rw_semaphore C fausaga.
  • Mo le fa'aogaina o le mmap, ua fa'aopoopoina se module mm fou ma se VMA abstraction (se afifi i luga o le vm_area_struct structure).
  • Ua suia le aveta'avale GPIO PL061 i le fa'aogaina o le macro "dev_*!"
  • Sa faia se fa'amama lautele o le tulafono.

puna: opennet.ru

Faaopoopo i ai se faamatalaga