Þriðja útgáfa af plástra fyrir Linux kjarna með stuðningi fyrir Rust tungumálið

Miguel Ojeda, höfundur Rust-for-Linux verkefnisins, hefur lagt til þriðja íhlutavalkostinn til að þróa tækjarekla á Rust tungumálinu fyrir Linux kjarna verktaki til að íhuga. Ryðstuðningur er talinn tilraunastarfsemi, en þegar hefur verið samið um inngöngu í Linux-next greinina. Þróunin er styrkt af Google og ISRG (Internet Security Research Group), sem er stofnandi Let's Encrypt verkefnisins og stuðlar að HTTPS og þróun tækni til að bæta netöryggi.

Mundu að fyrirhugaðar breytingar gera það mögulegt að nota Rust sem annað tungumál til að þróa rekla og kjarnaeiningar. Ryðstuðningur er settur fram sem valkostur sem er ekki virkur sjálfgefið og leiðir ekki til þess að Rust sé innifalinn sem nauðsynleg byggingarháð fyrir kjarnann. Með því að nota Ryð til að þróa ökumenn geturðu búið til öruggari og betri ökumenn með lágmarks fyrirhöfn, laus við vandamál eins og minnisaðgang eftir losun, frávísanir á núllbendi og offramkeyrsla á biðminni.

Minnisörugg meðhöndlun er veitt í Rust á samantektartíma með tilvísunarathugun, með því að halda utan um eignarhald og endingartíma hluta (umfang), sem og með mati á réttmæti minnisaðgangs við keyrslu kóða. Ryð veitir einnig vernd gegn heiltöluflæði, krefst skyldubundinnar frumstillingar breytugilda fyrir notkun, meðhöndlar villur betur í stöðluðu bókasafni, beitir hugmyndinni um óbreytanlegar tilvísanir og breytur sjálfgefið, býður upp á sterka truflanir innsláttar til að lágmarka rökvillur.

Nýja útgáfan af plástrunum heldur áfram að útrýma athugasemdunum sem gerðar voru í umræðunni um fyrstu og aðra útgáfu plástranna. Mest áberandi breytingarnar:

  • Skipt hefur verið yfir í að nota stöðugu útgáfuna af Rust 1.57 sem viðmiðunarþýðanda og hlekkur á stöðuga útgáfu Rust 2021 tungumálsins hefur verið veittur. Áður voru plástrar bundnir við beta grein Rust og notuðu nokkra tungumálaeiginleika sem voru flokkaðir sem óstöðugir. Umskiptin yfir í Rust 2021 forskriftina gerðu okkur kleift að hefja vinnu til að forðast notkun óstöðugra eiginleika í plástra eins og const_fn_transmute, const_panic, const_unavailable_unchecked og core_panic og try_reserve.
  • Þróun úthlutunarútgáfunnar af Rust bókasafninu sem fylgir plástunum hefur haldið áfram, breytt til að losa minnisúthlutunaraðgerðir við hugsanlega mynd af „læti“ ástandinu þegar villur eiga sér stað, svo sem úr minni. Nýja útgáfan útfærir „no_rc“ og „no_sync“ valkostina til að slökkva á virkni sem ekki er notuð í kjarnanum Rust kóða, sem gerir bókasafnið meira mát. Vinna heldur áfram með helstu úthlutunarhönnuðum, sem miðar að því að flytja þær breytingar sem þarf fyrir kjarnann yfir á aðalsafnið. Valmöguleikinn „no_fp_fmt_parse“, sem þarf til að safnið virki á kjarnastigi, hefur verið fluttur í Rust grunnsafnið (kjarna).
  • Kóðinn hefur verið hreinsaður til að losna við hugsanlegar viðvaranir um þýðanda þegar kjarnann er byggður í CONFIG_WERROR ham. Þegar þú byggir kóða í Rust eru viðbótargreiningarstillingar þýðanda og Clippy linter viðvaranir virkjaðar.
  • Lagt er til að útdráttur verði notaður í Ryðkóða fyrir seqlocks (raðarlásar), afturkallakall fyrir orkustýringu, I/O minni (readX/writeX), truflana- og þráðameðferðaraðila, GPIO, aðgang að tækjum, rekla og skilríki.
  • Verkfærin fyrir þróun ökumanns hafa verið stækkuð til að fela í sér færanlegar stökkbreytingar, bitaendurtekningar, einfaldaðar bendibindingar, bætta bilanagreiningu og gagnastrætóóháðan innviði.
  • Bætt vinna með tengla með því að nota einfaldaða Ref tegund, byggt á refcount_t bakendanum, sem notar kjarna API með sama nafni til að telja tilvísanir. Stuðningur fyrir Arc og Rc gerðir sem veittar eru í stöðluðu alloc bókasafninu hefur verið fjarlægður og er ekki tiltækur í kóða sem keyrður er á kjarnastigi (valkostir hafa verið útbúnir fyrir bókasafnið sjálft sem gera þessar gerðir óvirkar).
  • Plástrarnir innihalda útgáfu af PL061 GPIO reklanum, endurskrifuð í Rust. Sérstakur eiginleiki ökumanns er að útfærsla hans nánast línu fyrir línu endurtekur núverandi GPIO rekla á C tungumálinu. Fyrir forritara sem vilja kynnast því að búa til rekla í Rust, hefur verið útbúinn línu fyrir línu samanburð sem gerir þeim kleift að skilja í hvaða smíði í Rust C kóðanum er breytt.
  • Aðal Rust kóðagrunnurinn hefur tekið upp rustc_codegen_gcc, rustc bakenda fyrir GCC sem útfærir fyrirfram (AOT) samantekt með því að nota libgccjit bókasafnið. Með réttri þróun bakendans mun það gera þér kleift að safna Rust kóðanum sem tekur þátt í kjarnanum með GCC.
  • Auk ARM, Google og Microsoft hefur Red Hat lýst yfir áhuga á að nota Rust tungumálið í Linux kjarnanum. Við skulum minnast þess að Google veitir beinlínis stuðning við Rust for Linux verkefnið, er að þróa nýja útfærslu á Binder interprocess samskiptakerfi í Rust og er að íhuga möguleika á að endurvinna ýmsa rekla í Rust. Microsoft hefur byrjað að innleiða rekla fyrir Hyper-V í Rust. ARM vinnur að því að bæta ryðstuðning fyrir ARM-undirstaða kerfi. IBM hefur innleitt kjarnastuðning fyrir Rust fyrir PowerPC kerfi.

Heimild: opennet.ru

Bæta við athugasemd