Andiany fahadimy amin'ny patch ho an'ny kernel Linux miaraka amin'ny fanohanana ny fiteny Rust

Miguel Ojeda, mpanoratra ny tetikasa Rust-for-Linux, dia nanolotra dikan-teny fahadimy ho an'ny fampivoarana ny mpamily fitaovana amin'ny fiteny Rust hodinihin'ireo mpamorona kernel Linux. Ny fanohanan'ny harafesina dia heverina ho andrana, saingy efa tafiditra ao amin'ny sampana linux-manaraka ary efa novolavolaina ampy hanombohana asa amin'ny famoronana sosona abstraction amin'ny subsystems kernel, ary koa ny fanoratana mpamily sy maody. Ny fampandrosoana dia vatsian'ny Google sy ny ISRG (Internet Security Research Group), izay mpanorina ny tetikasa Let's Encrypt ary mampiroborobo ny HTTPS sy ny fampivoarana ny teknolojia hanatsarana ny fiarovana ny Aterineto.

Tsarovy fa ireo fanovana naroso dia ahafahana mampiasa ny Rust ho fiteny faharoa amin'ny famolavolana mpamily sy maody kernel. Ny fanohanan'ny Rust dia aseho ho toy ny safidy tsy avela amin'ny alΓ lan'ny default ary tsy miteraka ny Rust ho tafiditra ho fiankinan-doha ilaina amin'ny kernel. Ny fampiasana Rust ho an'ny fampandrosoana ny mpamily dia ahafahanao mamorona mpamily azo antoka kokoa sy tsara kokoa miaraka amin'ny ezaka kely indrindra, tsy misy olana toy ny fidirana amin'ny fahatsiarovana aorian'ny fanafahana, ny tsy fahampian'ny pointer tsy misy dikany ary ny fihoaran'ny buffer.

Ny harafesina dia manery ny fiarovana ny fitadidiana amin'ny fotoana fanangonana amin'ny alΓ lan'ny fanamarinana reference, ny fananana zavatra ary ny fanaraha-maso mandritra ny androm-piainana (scopes), ary amin'ny fanombanana ny fahamarinan'ny fidirana amin'ny fitadidiana amin'ny fotoana fandehanana. Ny Rust koa dia manome fiarovana amin'ny fihoaran'ny integer, mitaky ny fanombohana ny soatoavina miovaova alohan'ny hampiasana azy, manana fikarakarana fahadisoana tsara kokoa ao amin'ny tranomboky mahazatra, mampiasa ny foto-kevitry ny fanondroana sy ny fari-pitsipika tsy azo ovaina amin'ny alΓ lan'ny default, ary manolotra sora-baventy matanjaka mba hampihenana ny lesoka lojika.

Ny dikan-teny vaovao amin'ny patch dia manohy manafoana ny fanehoan-kevitra natao nandritra ny fifanakalozan-kevitra momba ny andiany voalohany, faharoa, fahatelo ary fahefatra amin'ny patch. Ao amin'ny dikan-teny vaovao:

  • Ny fitsapana singa ho an'ny fanohanan'ny Rust dia nampiana tao amin'ny rafitra fampidirana mitohy mifototra amin'ny bot 0DAY/LKP tohanan'ny Intel ary nanomboka ny famoahana ny tatitra momba ny fitsapana. Miomana ny hampiditra ny fanohanan'ny Rust amin'ny rafitra fitiliana automatique KernelCI izahay. Ny fitsapana mifototra amin'ny GitHub CI dia nafindra amin'ny fampiasana kaontenera.
  • Ny maody kernel harafesina dia afaka amin'ny filΓ na mamaritra ny toetran'ny vata "#![no_std]" sy "#![feature(...)]".
  • Fanampiana fanampiny ho an'ny kendrena fivoriambe tokana (.o, .s, .ll ary .i).
  • Ny torolalan'ny kaody dia mamaritra ny fitsipika manasaraka ny fanehoan-kevitra (β€œ//”) sy ny kaody fanoratana (β€œ//”).
  • Ny script is_rust_module.sh dia novolavolaina.
  • Fanampiana fanampiny ho an'ny static (variable zaraina maneran-tany) synchronization primitive mifototra amin'ny fampiharana "CONFIG_CONSTRUCTORS".
  • Ny fitantanana ny hidin-trano dia notsorina: ny Guard sy GuardMut dia mitambatra ary karazana parameter iray.
  • Azo atao ny mamaritra masontsivana fanampiny rehefa misoratra anarana fitaovana.
  • Nampiana ny abstraction "RwSemaphore", izay miasa toy ny fonon'ny rafitra rw_semaphore C.
  • Mba hampiasana mmap dia nampiana mΓ΄dely mm vaovao sy abstraction VMA (famonoana amin'ny rafitra vm_area_struct).
  • Ny mpamily GPIO PL061 dia novaina tamin'ny fampiasana ny macro "dev_*!".
  • Nisy fanadiovana faobe ny kaody natao.

Source: opennet.ru

Add a comment