In den net-next Branch, in dem Änderungen für den Linux-Kernel 6.8 entwickelt werden, wurden Änderungen aufgenommen, die eine anfängliche Rust-Bindung über der Abstraktionsebene phylib im Kernel hinzufügen und einen Treiber ax88796b_rust verwenden, der die Unterstützung für das PHY-Interface des Ethernet-Controllers Asix AX88772A (100MBit) bereitstellt. Der Treiber umfasst 135 Codezeilen und wird als einfaches Arbeitsbeispiel zum Erstellen von Netzwerktreibern in Rust positioniert, das bereit ist, mit echter Hardware verwendet zu werden.
In Bezug auf die Funktionalität ist der Treiber in Rust vollständig äquivalent zum alten Treiber ax88796b, der in C geschrieben ist, und kann mit den X-Surf 100 Netzwerkarten verwendet werden, die mit dem Chip AX88796B ausgestattet sind. Beide Treiber, der in C und der in Rust, werden im Kernel koexistieren und können je nach Vorliebe der Benutzer aktiviert werden. Um den Rust-Treiber im Kconfig zu aktivieren, ist die Einstellung AX88796B_RUST_PHY vorgesehen, zusammen mit der auch die Rust-Bindung über phylib mit dem Parameter RUST_PHYLIB_ABSTRACTIONS aktiviert werden muss.
Darüber hinaus wurde ein Ethernet-Treiber Realtek Generic FE-GE in Rust entwickelt, der bisher nicht zur Aufnahme in den Kernel vorgeschlagen wurde. Zuvor wurde auch ein Prototyp des Treibers rust-e1000 für Intel Ethernet-Adapter, der in Rust neu geschrieben wurde, vorgestellt.
Quelle: opennet.ru
