Dezyèm edisyon patch pou nwayo Linux ak sipò pou lang Rust

Miguel Ojeda, otè pwojè Rust-for-Linux, te pwopoze yon vèsyon ki ajou nan eleman pou devlope chofè aparèy nan lang Rust pou konsiderasyon pa devlopè nwayo Linux. Yo konsidere sipò Rust kòm eksperimantal, men li deja dakò pou enkli nan branch linux-next la. Nouvo vèsyon an elimine kòmantè yo te fè pandan diskisyon sou premye vèsyon patch yo. Linus Torvalds te deja rantre nan diskisyon an ak pwopoze chanje lojik la pou trete kèk operasyon ti jan.

Sonje byen, chanjman yo pwopoze yo fè li posib pou itilize Rust kòm yon dezyèm lang pou devlope chofè ak modil nwayo. Yo prezante sipò Rust kòm yon opsyon ki pa aktive pa default epi ki pa lakòz yo enkli Rust kòm yon depandans konstriksyon obligatwa pou nwayo a. Sèvi ak Rust pou devlopman chofè pral pèmèt ou kreye chofè ki pi an sekirite ak pi bon ak efò minim, san pwoblèm tankou aksè memwa apre yo fin libere, dereferans pointeur nil, ak depase tanpon.

Sekirite memwa yo bay nan Rust nan moman konpile atravè tcheke referans, kenbe tras nan pwopriyetè objè a ak tout lavi objè a (dimansyon), osi byen ke nan evalyasyon kòrèk aksè nan memwa pandan ekzekisyon kòd. Rust tou bay pwoteksyon kont debòde nonb antye relatif, mande pou inisyalizasyon obligatwa nan valè varyab anvan ou itilize, okipe erè pi byen nan bibliyotèk estanda a, aplike konsèp nan referans imuiabl ak varyab pa default, ofri fò sezisman estatik pou minimize erè lojik.

Chanjman ki pi aparan nan nouvo vèsyon patch yo:

  • Kòd alokasyon memwa a libere soti nan potansyèlman jenere yon eta "panik" lè erè tankou soti nan memwa rive. Gen yon varyant nan bibliyotèk Rust alloc ki enkli, ki retravay kòd la pou jere echèk, men objektif final la se transfere tout karakteristik ki nesesè pou nwayo a nan edisyon prensipal alloc (chanjman yo te deja prepare epi transfere nan estanda a). Rust bibliyotèk).
  • Olye pou yo bati chak swa, kounye a ou ka itilize degaje beta ak degaje ki estab nan du rustc pou konpile yon nwayo ak sipò Rust. Kounye a, yo itilize rustc 1.54-beta1 kòm konpilateur referans, men apre yo fin lage 1.54 lage nan fen mwa a, li pral sipòte kòm konpilatè referans la.
  • Te ajoute sipò pou ekri tès yo lè l sèvi avèk estanda "#[tès]" atribi pou Rust ak kapasite pou itilize doctests pou dokimante tès yo.
  • Te ajoute sipò pou achitekti ARM32 ak RISCV anplis de x86_64 ak ARM64 ki te deja sipòte.
  • Amelyore aplikasyon GCC Rust (GCC fasad pou Rust) ak rustc_codegen_gcc (rustc backend pou GCC), ki kounye a pase tout tès debaz yo.
  • Yo pwopoze yon nouvo nivo abstraksyon pou itilize nan pwogram Rust nan mekanis nwayo ekri an C, tankou pye bwa wouj-nwa, objè ki konte referans, kreyasyon deskriptè fichye, travay, fichye, ak vektè I/O.
  • Konpozan devlopman chofè yo te amelyore sipò pou modil file_operations, macro modil!, makro anrejistreman, ak chofè rudimentaire (sonde epi retire).
  • Binder kounye a sipòte deskriptè dosye pase ak kwòk LSM.
  • Yo pwopoze yon egzanp plis fonksyonèl nan yon chofè Rust - bcm2835-rng pou pyès ki nan konpitè dèlko nimewo o aza nan ankadreman Raspberry Pi.

Anplis de sa, kèk pwojè konpayi yo ki gen rapò ak itilizasyon Rust nan nwayo a yo mansyone:

  • Microsoft te eksprime enterè pou patisipe nan travay pou entegre sipò Rust nan nwayo Linux la epi li pare pou bay aplikasyon chofè Hyper-V sou Rust nan mwa kap vini yo.
  • ARM ap travay pou amelyore sipò Rust pou sistèm ki baze sou ARM. Pwojè Rust la deja pwopoze chanjman ki ta fè sistèm ARM 64-bit yon platfòm Tier 1.
  • Google dirèkteman bay sipò pou pwojè Rust pou Linux, ap devlope yon nouvo aplikasyon nan mekanis kominikasyon entèprosesis Binder nan Rust, epi li ap konsidere posiblite pou retravay divès chofè nan Rust. Atravè ISRG (Internet Security Research Group), Google te bay finansman pou travay pou entegre sipò Rust nan nwayo Linux la.
  • IBM te aplike sipò nwayo pou sistèm Rust pou PowerPC.
  • Laboratwa LSE (Systems Research Laboratory) te devlope yon chofè SPI nan Rust.

Sous: opennet.ru

Add nouvo kòmantè