A Linux kernelbe beküldött legújabb patchek lehetővé teszik a Rust-alapú USB meghajtók fejlesztését

Daniel Almeida bejelentette az első, USB szabvány támogatását célzó Rust-abstrakciókat a Linux kernelhez. A fejlesztés célja, hogy a Rust nyelvben írt meghajtók közvetlenül USB-eszközökhöz is kapcsolódhassanak, hasonlóan ahhoz, ahogyan jelenleg a PCI és platform drivereknél megvalósult. Almeida elsősorban a médiás alrendszerben látja a hasznát ennek a bővítésnek, ugyanakkor hangsúlyozta, hogy személyes motivációja is van: alaposabban szeretné megismerni az USB ökoszisztémát, és ez a munka kiváló alkalmat teremt számára erre.

A Linux kernelbe beküldött legújabb patchek lehetővé teszik a Rust-alapú USB meghajtók fejlesztését

A megvalósítás és a tesztelés

Az első patch-sorozat a már bevált mintákra épít, amelyeket a pci.rs és platform.rs modulokban is használnak. A kód lehetővé teszi, hogy egy USB-eszköz manuálisan összekapcsolható legyen a mintameghajtóval, például a /sys/bus/usb/drivers/rust_driver_usb/new_id interfészen keresztül. Almeida saját Logitech egérrel próbálta ki a funkciót, és sikeresen tesztelte az illesztést. A rendszer stabilitását is ellenőrizte: az eszköz fizikai eltávolítása után sem jelentkezett hibajelzés a kernel naplóban, ami biztató jel a további fejlesztésekhez.

Az eddigi fejlesztések nem minősülnek teljes értékű támogatásnak

Ez a kezdeti kód még nem teljes értékű USB támogatás, sokkal inkább egy alap, amelyre a jövőben lehet építeni. A cél jelenleg az, hogy a közösség megvitassa a további irányokat, beleértve azt is, hogyan érdemes a karbantartást és a MAINTAINERS fájlba való bejegyzést rendezni. Almeida egyértelműen jelezte, hogy a patch első változata inkább vitaindító, semmint végleges megoldás, ugyanakkor már most is használható alapot nyújt a Rust-alapú USB driverek kísérletezéséhez. A fejlesztés jól illeszkedik a Rust for Linux tágabb törekvéseihez, amelyek célja, hogy a nyelv egyre több alrendszerben megvesse a lábát, és hosszú távon biztonságosabb és modernebb kernelkódot eredményezzen.