Inženýr společnosti Microsoft představil opravy pro zlepšení implementace Rust v Linuxu

RustLinux

Integrace Rustu v Linuxu má vysokou úroveň přijetí komunitou a vývojáři

Dnes příspěvek Microsoftu k linuxovému jádru není vtip, A poté, co po desetiletí viděl Linux jako smrtelného nepřítele a proti kterému vedl špinavou válku, se Microsoft stal jedním z hlavních přispěvatelů.

A ačkoli mnozí mohou hnutí nesouhlasit Microsoftu ve prospěch Linuxu a open source, nemohou popřít, že velká část jejich příspěvků byla docela zajímavá a do jisté míry přínosná pro open source projekty.

Nutno podotknout, že u igjako ostatní daňoví poplatníci Linuxu, řekněme Google, Intel, IBM, Oracle, mimo jiné především práce Microsoftu na Linuxu se zaměřuje na své produkty a jak opakuji, tak jako to dělají ostatní těžkooděnci a není to špatné, protože nakonec linuxové jádro je výsledkem toho všeho a samozřejmě dohledu šéfa Linuse Torvaldse, jelikož když se vám něco nelíbí resp. věří, že to není nutné, v Linuxu to není zavedeno a hotovo.

Důvodem pro zmínku je to, že nedávno Wedson Almeida, inženýr společnosti Microsoftpodílí se na vývoji Rust pro Linux, oznámil zavedení klíčových záplat, které výrazně zlepšují inicializaci modulů Rust v jádře.

Aktuálně máme krabicovou vidlici se změnami na `Vec`; byly zapracovány další změny (do projektu Rust). Tato řada eliminuje rozvětvení a vystavuje všechny funkce jako rozšiřující funkce. Kromě toho také zavádí parametry příznaku přiřazení pro všechny funkce, které mohou vést k přiřazení.

A Jedním z hlavních vylepšení je odstranění rozvětvení alloc a použití nestabilní funkce allocator_api, co zjednodušuje kód a snižuje dlouhodobou zátěž údržby. Navíc byly zavedeny příznaky pro alokace, jako je GFP_KERNEL a GFP_ATOMIC, aby se zlepšila správa paměti a optimalizoval výkon modulu.

Změny ve verzi 2:
– Aktualizovaný popis pole `alloc`.
– Změněny názvy modulů vecext a boxext na vec_ext a box_ext.
– Do „AllocError“ přidána obchvatová direktiva.
– Aktualizovaný bezpečnostní komentář v `BoxExt::new`.
– Aktualizováno `VecExt::push` a `VecExt::extend_from_slice` k použití
`spare_capacity_mut`
– Přidejte direktivu, která nebude kompilovat `destructure` a `rebuild` během `testu` nebo
`testlib` jsou nakonfigurovány. Jinak máme varování, protože `push` a
`extend_from_slice` je již nepoužívejte.
– Aktualizováno odsazení v `Arc::new_uninit`
– V patchi 7 přesunuto odstranění přetypování „TryReserveError“ na „Error“, kde
Použití `TryReserveError` je ve skutečnosti odstraněno.

Tyto opravy zpřesnit mapovací API pro kód jádra Rust a zavádějí nový koncept: inicializaci modulů přímo v jejich zamýšleném umístění paměti. To eliminuje potřebu zbytečného přidělování paměti a umožňuje modulům kompetentně spravovat složité datové struktury, jako jsou zámky.

Filho se o tom zmínil tento vývoj umožňuje mít moduly, jejichž stav obsahuje objekty, které musí být místo toho inicializovány a také to, že umožňuje, aby byly registry (například registry ovladačů) implementovány na místě a vytvořeny podobně jako jejich protějšky v C, kde nejsou potřeba žádná nová mapování.

Dříve inicializace modulu zahrnovala alokaci paměti pro instanci která by se poté přesunula na určené místo. Nicméně, Díky novým záplatám lze moduly inicializovat přímo v zamýšleném paměťovém místě, odstranění zbytečných alokací a umožnění efektivnější správy složitých datových struktur, jako jsou zámky. To má významný dopad na optimalizaci využití paměti a celkovou efektivitu modulů Rust v linuxovém jádře.

Kromě zlepšení efektivity a správy paměti tento krok dále sjednocuje moduly napájené Rustem s jejich ekvivalenty C, zmenšuje mezeru a připravuje cestu pro vývoj Rust.

Pokud zájem se o tom dozvědět více, můžete zkontrolovat podrobnosti v následující odkaz. 


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.