Miguel Ojeda, marubucin littafin Rust-for-projectLinux, waɗanda masu haɓaka kernel suka gabatar don la'akari da su Linux Sakin sassan v8 don haɓaka direbobin na'urori a cikin Rust. Wannan shine bita na 8 na faci, idan aka yi la'akari da sigar farko, wacce aka buga ba tare da lambar sigar ba. Ana ɗaukar tallafin Rust a matsayin gwaji, amma an riga an haɗa shi a cikin reshe na linux-next kuma an tsara shi don haɗawa cikin fitowar 5.20/6.0 ta kaka. Ya isa ya isa ya fara aiki kan ƙirƙirar yadudduka na ɓoyewa akan tsarin kernel, da kuma don rubuta direbobi da kayayyaki. Google da ISRG (Rukunin Binciken Tsaron Intanet) ne ke ɗaukar nauyin ci gaban, wanda ya kafa aikin Let's Encrypt, wanda ke haɓaka HTTPS da haɓaka fasahohi don inganta tsaron intanet.
A cikin sabon sigar:
- Kayan aikin kayan aiki da bambance-bambancen ɗakin karatu na allo, ba tare da yuwuwar ƙarnonin tsoro akan kurakurai, an sabunta su zuwa Rust 1.62. Idan aka kwatanta da sigar da aka yi amfani da ita a baya, Rust toolchain yanzu tana goyan bayan ayyukan const_fn_trait_bound da ake amfani da su a cikin facin kernel.
- An raba lambar ɗaurin zuwa cikin wani fakitin akwatuna daban daban "dauri", wanda ke sauƙaƙa sake ginawa idan an sami canje-canje zuwa babban fakitin "kernel".
- Aiwatar da "concat_idents!" An sake rubuta macro azaman macro mai tsari wanda ba a haɗa shi da ayyukan concat_idents kuma yana ba da damar amfani da nassoshi ga masu canjin gida.
- The "static_assert!" An sake rubuta macro don ba da damar yin amfani da "core:: assert!()" don a yi amfani da shi a kowane mahallin maimakon madaidaicin.
- Kuskuren ginawa! An daidaita macro don aiki lokacin da aka saita yanayin "RUST_BUILD_ASSERT_{WARN,ALLOW}" don samfura.
- Ƙara wani fayil daban tare da saitunan "kernel/configs/rust.config".
- Fayilolin "*.i" da aka sarrafa a cikin macro an canza suna zuwa "*.rsi".
- Goyon baya don gina abubuwan Rust tare da matakan ingantawa daban da waɗanda aka yi amfani da su don lambar C an dakatar da su.
- An ƙara ƙirar fs, yana ba da ɗauri don aiki tare da tsarin fayil. An ba da misalin tsarin fayil mai sauƙi da aka rubuta a cikin Rust.
- Ƙara kayan aikin layin aiki don aiki tare da layin tsarin (yana ba da ɗauri don tsarin kernel work_struct da workqueue_struct).
- An ci gaba da haɓaka tsarin kasync, yana aiwatar da hanyoyin shirye-shiryen asynchronous (async). An ƙara misalin sabar TCP mai matakin kernel da aka rubuta a cikin Rust.
- An ƙara ikon sarrafa katsewa cikin yaren tsatsa ta amfani da halayen [Threaded] Handler da [Threaded] nau'ikan rajista.
- Ƙara macro na tsari "#[vtable]" don sauƙaƙe aiki tare da allunan masu nunin ayyuka, kamar tsarin fayil_operations.
- Ƙaddara aiwatar da jerin abubuwan da aka haɗa biyu "lalata_lalata ::Jeri".
- Ƙara goyon baya na farko don RCU (Karanta-kwafin-sabuntawa) da nau'in Guard don bincika ko kulle karantawa yana daure da zaren na yanzu.
- An ƙara aikin :: spawn() don ƙirƙira da fara zaren kwaya ta atomatik. Hakanan an ƙara hanyar Task :: wake_up().
- Ƙarin tsarin jinkiri, yana ba da damar amfani da jinkiri (nannade kan msleep()).
Canje-canjen da aka gabatar sun ba da damar yin amfani da Rust azaman harshe na biyu don haɓaka direbobi da samfuran kwaya. Ana gabatar da tallafin tsatsa azaman zaɓi wanda ba a kunna shi ta tsohuwa ba kuma baya haifar da shigar da tsatsa azaman dogaron ginawa da ake buƙata don kernel. Yin amfani da Rust don haɓaka direba zai ba ku damar ƙirƙirar mafi aminci kuma mafi kyawun direbobi tare da ƙaramin ƙoƙari, 'yanci daga matsaloli kamar samun damar ƙwaƙwalwar ajiya bayan 'yantarwa, ɓangarorin maƙasudin null, da buffer overruns.
Ana ba da amincin ƙwaƙwalwar ajiya a cikin Tsatsa a lokacin tattarawa ta hanyar duba tunani, kiyaye bin diddigin mallakar abu da tsawon rayuwa (ikon), haka kuma ta hanyar kimanta daidaitaccen damar ƙwaƙwalwar ajiya yayin aiwatar da lambar. Tsatsa kuma yana ba da kariya daga ambaliya mai lamba, yana buƙatar ƙaddamar da ƙima mai mahimmanci kafin amfani, yana sarrafa kurakurai mafi kyau a cikin daidaitaccen ɗakin karatu, yana amfani da ra'ayi na nassoshi marasa canzawa da masu canji ta tsohuwa, yana ba da buga rubutu mai ƙarfi don rage kurakurai masu ma'ana.
source: budenet.ru
