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

Miguel Ojeda, marubucin aikin Rust-for-Linux, ya gabatar da tsari na biyar na abubuwan haɗin gwiwa don haɓaka direbobin na'urori a cikin yaren Rust don la'akari da masu haɓaka kernel na Linux. Ana ɗaukar goyon bayan tsatsa a matsayin gwaji, amma an riga an haɗa shi a cikin reshe na gaba na Linux kuma an haɓaka isasshe don fara aiki akan ƙirƙirar yadudduka na kernel subsystems, da kuma rubuta direbobi da kayayyaki. 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 bugu na farko da na biyu da na uku da na hudu na faci. A cikin sabon sigar:

  • An ƙara gwajin ɓangaren don tallafin Rust zuwa tsarin haɗin kai na ci gaba bisa tushen tallafin Intel 0DAY/LKP bot kuma an fara buga rahotannin gwaji. Muna shirin haɗa tallafin Rust cikin tsarin gwaji mai sarrafa kansa na KernelCI. Gwaji bisa GitHub CI an canza shi zuwa amfani da kwantena.
  • Rust kernel modules an 'yantar da bukatar ayyana akwatunan halayen "#![no_std]" da "#![feature(...)]".
  • Ƙara goyon baya don maƙasudin taro guda ɗaya (.o, .s, .ll da .i).
  • Jagororin lamba sun bayyana ƙa'idodi don raba sharhi ("//") da lambar rubutawa ("///").
  • An sake yin aikin rubutun is_rust_module.sh.
  • Ƙara goyon baya don daidaitawa (maɓalli na raba ra'ayi na duniya) daidaitattun abubuwan daidaitawa dangane da aiwatar da "CONFIG_CONSTRUCTORS".
  • An sauƙaƙa sarrafa kulle: Guard da GuardMut an haɗa su da nau'in ma'auni guda ɗaya.
  • Yana yiwuwa a ayyana ƙarin sigogi lokacin yin rijistar na'urori.
  • An ƙara "RwSemaphore" abstraction, wanda ke aiki azaman abin rufewa akan tsarin rw_semaphore C.
  • Don amfani da mmap, an ƙara sabon ƙirar mm da abstraction VMA (nannade akan tsarin vm_area_struct).
  • An canza direban GPIO PL061 zuwa amfani da macro "dev_*!".
  • An gudanar da tsabtace lambar gaba ɗaya.

source: budenet.ru

Add a comment