Buga na uku na faci na Linux kernel tare da goyan bayan yaren Rust

Miguel Ojeda, marubucin aikin Rust-for-Linux, ya ba da shawarar zaɓi na ɓangare na uku don haɓaka direbobin na'urori a cikin yaren Rust don masu haɓaka kernel Linux suyi la'akari. Ana ɗaukar tallafin tsatsa a matsayin gwaji, amma an riga an amince da shi don haɗawa cikin reshe na gaba na Linux. Google da ISRG (Rukunin Binciken Tsaro na Intanet) ne suka dauki nauyin wannan ci gaban, wanda shine wanda ya kafa aikin Mu Encrypt kuma yana haɓaka HTTPS da haɓaka fasahar inganta tsaro ta Intanet.

Ka tuna cewa 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.

Sabuwar sigar faci ta ci gaba da kawar da maganganun da aka yi yayin tattaunawar sigar farko da ta biyu na faci. Canje-canjen da aka fi sani:

  • An yi canji zuwa yin amfani da tsayayyen sakin Rust 1.57 a matsayin mai tattara bayanai da kuma hanyar haɗin kai zuwa ingantaccen bugu na Rust 2021. A baya can, an ɗaure faci zuwa reshen beta na Rust kuma an yi amfani da wasu fasalolin harshe waɗanda aka classified a matsayin m. Juyawa zuwa ƙayyadaddun Rust 2021 ya ba mu damar fara aiki don guje wa amfani da irin waɗannan fasalulluka marasa ƙarfi a cikin faci kamar const_fn_transmute, const_panic, const_unavailable_unchecked da core_panic da try_reserve.
  • Haɓaka sigar alloc na ɗakin karatu na Rust ɗin da aka haɗa a cikin faci ya ci gaba, wanda aka gyara don kawar da ayyukan rarraba ƙwaƙwalwar ajiya na yuwuwar tsara yanayin yanayin “firgita” lokacin da kurakurai suka faru, kamar daga ƙwaƙwalwar ajiya. Sabuwar sigar tana aiwatar da zaɓuɓɓukan "no_rc" da "no_sync" don kashe ayyukan da ba a yi amfani da su ba a cikin lambar Rust na kwaya, yana mai da ɗakin karatu ya zama mai daidaitawa. Ana ci gaba da aiki tare da manyan masu haɓaka alloc, da nufin canja wurin canje-canjen da ake buƙata don kernel zuwa babban ɗakin karatu. Zaɓin "no_fp_fmt_parse", da ake buƙata don ɗakin karatu ya yi aiki a matakin kernel, an ƙaura zuwa ɗakin karatu na Rust (core).
  • An share lambar don kawar da yuwuwar gargaɗin mai tarawa yayin gina kernel a yanayin CONFIG_WERROR. Lokacin gina lambar a cikin Tsatsa, ana kunna ƙarin hanyoyin bincikar masu tarawa da gargaɗin Clippy linter.
  • Ana ba da shawarar abubuwan da za a iya amfani da su a cikin lambar tsatsa don seqlocks (makullan jere), kiran dawo da kira don sarrafa wutar lantarki, Ƙwaƙwalwar I/O (readX/writeX), katsewa da masu sarrafa zaren, GPIO, samun dama ga na'urori, direbobi da takaddun shaida.
  • An faɗaɗa kayan aikin haɓaka direba don haɗawa da ɓangarorin da za'a iya sakewa, ƙwararrun ƙwalƙwalwa, ƙaƙƙarfan ɗaure mai nuni, ingantattun bincike na kuskure, da abubuwan more rayuwa masu zaman kansu na bas.
  • Ingantaccen aiki tare da hanyoyin haɗin gwiwa ta amfani da nau'in Ref mai sauƙaƙa, dangane da refcount_t backend, wanda ke amfani da API na kernel na suna ɗaya don kirga nassoshi. An cire tallafi ga nau'ikan Arc da Rc da aka bayar a cikin daidaitaccen ɗakin karatu na allo kuma ba a samuwa a cikin lambar da aka aiwatar a matakin kernel (an shirya zaɓukan don ɗakin karatu da kansa wanda ke kashe waɗannan nau'ikan).
  • Faci sun haɗa da sigar direban PL061 GPIO, wanda aka sake rubutawa cikin Rust. Siffa ta musamman na direban ita ce aiwatar da shi kusan layi ta layi yana maimaita direban GPIO da ke cikin yaren C. Ga masu haɓakawa waɗanda ke son sanin ƙirƙirar direbobi a cikin Rust, an shirya kwatancen layi-by-line wanda zai ba su damar fahimtar abin da aka gina a cikin Rust da lambar C ta canza zuwa.
  • Babban Rust codebase ya karɓi rustc_codegen_gcc, rustc backend ga GCC wanda ke aiwatar da haɗawar gaba da lokaci (AOT) ta amfani da ɗakin karatu na libgccjit. Tare da ingantaccen haɓaka na baya, zai ba ku damar tattara lambar tsatsa da ke cikin kwaya ta amfani da GCC.
  • Baya ga ARM, Google da Microsoft, Red Hat ya nuna sha'awar yin amfani da yaren Rust a cikin kernel na Linux. Bari mu tuna cewa Google kai tsaye yana ba da tallafi ga aikin Rust don Linux, yana haɓaka sabon aiwatar da hanyar sadarwa ta hanyar sadarwa ta Binder a cikin Rust, kuma yana la'akari da yiwuwar sake yin aiki da direbobi daban-daban a cikin Rust. Microsoft ya fara aiwatar da direbobi don Hyper-V a cikin Rust. ARM yana aiki don haɓaka tallafin Rust don tsarin tushen ARM. IBM ta aiwatar da tallafin Rust a cikin kwaya don tsarin PowerPC.

source: budenet.ru

Add a comment