Version i ri i patch-eve të kernelit Linux me mbështetje për gjuhën Rust

Miguel Ojeda, autor i projektit Rust-for-Linux, i propozuar për shqyrtim nga zhvilluesit e kernelit Linux Publikimi i versionit 5 të komponentëve për zhvillimin e drajverëve të pajisjeve në Rust. Ky është rishikimi i gjashtë i patch-eve, duke marrë parasysh versionin e parë, të publikuar pa një numër versioni. Mbështetja për Rust konsiderohet eksperimentale, por është përfshirë tashmë në degën linux-next dhe është mjaftueshëm e pjekur për të filluar punën për krijimin e shtresave të abstraksionit mbi nënsistemet e bërthamës, si dhe për shkrimin e drajverëve dhe moduleve. Zhvillimi financohet nga Google dhe ISRG (Internet Security Research Group), themeluesi i projektit Let's Encrypt, i cili promovon HTTPS dhe zhvillimin e teknologjive për të përmirësuar sigurinë në internet.

Kujtojmë se ndryshimet e propozuara bëjnë të mundur përdorimin e Rust si gjuhë të dytë për zhvillimin e drejtuesve dhe moduleve të kernelit. Mbështetja e Rust paraqitet si një opsion që nuk është aktivizuar si parazgjedhje dhe nuk rezulton që Rust të përfshihet si një varësi e nevojshme ndërtimi për kernelin. Përdorimi i Rust për zhvillimin e drejtuesve do t'ju lejojë të krijoni drejtues më të sigurt dhe më të mirë me përpjekje minimale, pa probleme të tilla si qasja në kujtesë pas çlirimit, çreferencat e treguesit null dhe tejkalimet e buferit.

Siguria e memories sigurohet në Rust në kohën e përpilimit përmes kontrollit të referencës, mbajtjes së gjurmëve të pronësisë së objektit dhe jetëgjatësisë së objektit (fushëveprimit), si dhe përmes vlerësimit të korrektësisë së aksesit në kujtesë gjatë ekzekutimit të kodit. Rust siguron gjithashtu mbrojtje kundër tejmbushjeve të numrave të plotë, kërkon inicializimin e detyrueshëm të vlerave të variablave përpara përdorimit, trajton më mirë gabimet në bibliotekën standarde, zbaton konceptin e referencave dhe variablave të pandryshueshme si parazgjedhje, ofron shtypje të fortë statike për të minimizuar gabimet logjike.

Versioni i ri i arnimeve vazhdon të eliminojë komentet e bëra gjatë diskutimit të botimit të parë, të dytë, të tretë, të katërt dhe të pestë të arnimeve. Në versionin e ri:

  • Paketa e veglave Ă«shtĂ« pĂ«rditĂ«suar pĂ«r tĂ« lĂ«shuar Rust 1.59.0. NjĂ« variant i bibliotekĂ«s alloc sinkronizohet gjithashtu me versionin e ri tĂ« Rust, duke eliminuar gjenerimin e mundshĂ«m tĂ« njĂ« gjendjeje "paniku" kur ndodhin gabime, tĂ« tilla si pa memorie. AftĂ«sia pĂ«r tĂ« pĂ«rdorur insertet e montimit ("veçori(global_asm)") Ă«shtĂ« stabilizuar.
  • MbĂ«shtetje e shtuar pĂ«r krijimin e programeve pritĂ«s nĂ« Rust qĂ« pĂ«rdoren gjatĂ« pĂ«rpilimit tĂ« kernelit.
  • NĂ« vend qĂ« tĂ« dorĂ«zojnĂ« skedarĂ«t e specifikimeve tĂ« platformĂ«s sĂ« synuar tĂ« krijuar paraprakisht, ato gjenerohen nĂ« mĂ«nyrĂ« dinamike bazuar nĂ« konfigurimin e kernelit.
  • U shtua parametri i kernelit HAVE_RUST pĂ«r tĂ« aktivizuar arkitekturat qĂ« mbĂ«shtesin Rust.
  • Abstraksionet propozohen pĂ«r pĂ«rdorim nĂ« kodin Rust pĂ«r njĂ« gjenerator tĂ« numrave pseudo tĂ« rastĂ«sishĂ«m.
  • Lejohet pĂ«rdorimi i kodeve tĂ« gabimit pa prefiksin "Error::" (pĂ«r shembull, "kthimi Err(EINVAL)") pĂ«r tĂ« pĂ«rafruar trajtimin e kodeve tĂ« gabimit nĂ« C.
  • U shtua lloji "CString" pĂ«r vargjet C me porosi. Llojet Formatter dhe Buffer janĂ« kombinuar.
  • Llojet e shtuara Bool dhe LockInfo.
  • Zbatimi i bllokimeve me rrotullim Ă«shtĂ« thjeshtuar.

Burimi: opennet.ru

Bleni njĂ« host tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, serverĂ« VPS VDS đŸ”„ Bleni hosting tĂ« besueshĂ«m tĂ« faqeve tĂ« internetit me mbrojtje DDoS, servera VPS VDS | ProHoster