Desiata verzia záplat pre jadro Linuxu s podporou jazyka Rust

Miguel Ojeda, autor projektu Rust-for-Linux, navrhol pre vývojárov jadra Linuxu vydanie komponentov pre vývoj ovládačov zariadení Rust v10. Toto je jedenásta edícia opráv, berúc do úvahy prvú verziu publikovanú bez čísla verzie. Zahrnutie podpory Rust schválil Linusum Torvalds na zahrnutie do jadra Linuxu 6.1, pokiaľ sa neobjavia nepredvídané problémy. Vývoj financuje Google a ISRG (Internet Security Research Group), ktorá je zakladateľom projektu Let's Encrypt a propaguje HTTPS a vývoj technológií na zvýšenie bezpečnosti internetu.

Rovnako ako predchádzajúca verzia opráv, vydanie v10 je obmedzené na nevyhnutné minimum potrebné na zostavenie jednoduchého modulu jadra napísaného v Ruste. Rozdiely oproti predchádzajúcej verzii sú menšie opravy, nahradenie sizeof ARRAY_SIZE v kallsyms.c a prispôsobenie záplat jadru v6.0-rc7. Očakáva sa, že minimálna oprava, ktorá sa znížila zo 40 13 na XNUMX XNUMX riadkov kódu zo XNUMX XNUMX na XNUMX XNUMX riadkov kódu, uľahčí začlenenie podpory Rust do hlavného prúdu. Po poskytovaní minimálnej podpory sa plánuje postupné zvyšovanie existujúcej funkcionality, pričom sa prenášajú ďalšie zmeny z vetvy Rust-for-Linux.

Navrhované zmeny umožňujú použiť Rust ako druhý jazyk na vývoj ovládačov a modulov jadra. Podpora Rust je prezentovaná ako možnosť, ktorá nie je štandardne povolená a nemá za následok zahrnutie Rustu medzi požadované závislosti zostavenia pre jadro. Použitie Rustu na vývoj ovládačov vám umožní vytvárať bezpečnejšie a lepšie ovládače s minimálnym úsilím, bez problémov, ako je prístup k oblasti pamäte po jej uvoľnení, dereferencovanie nulových ukazovateľov a pretečenie vyrovnávacej pamäte.

Bezpečná manipulácia s pamäťou je v Rust zabezpečená v čase kompilácie prostredníctvom kontroly referencií, sledovania vlastníctva objektu a životnosti objektu (rozsahu), ako aj prostredníctvom hodnotenia správnosti prístupu do pamäte počas vykonávania kódu. Rust tiež poskytuje ochranu proti pretečeniu celých čísel, vyžaduje povinnú inicializáciu hodnôt premenných pred použitím, lepšie zvláda chyby v štandardnej knižnici, štandardne aplikuje koncept nemenných referencií a premenných, ponúka silné statické typovanie na minimalizáciu logických chýb.

Zdroj: opennet.ru

Pridať komentár