04.03.2024

В ядро Linux 6.8 намечено включение первого сетевого драйвера на языке Rust

В ветку net-next, в которой развиваются изменения для ядра Linux 6.8, включены изменения, добавляющие в состав ядра начальную Rust-обвязку над phylib, уровнем абстракции для поддержки сетевых плат, и использующий данную обвязку драйвер ax88796b_rust, обеспечивающий поддержку Ethernet-контроллера Asix AX88772A (100MBit). Драйвер включает 135 строк кода и позиционируется как простой рабочий пример для создания сетевых драйверов на языке Rust, готовый для использования с реальным оборудованием.

По функциональности драйвере на Rust полностью эквивалентен старому драйверу ax88796b, написанному на языке Си, и может быть использован с сетевыми картами X-Surf 100, оснащёнными чипом AX88796B. Оба драйвера, на Си и на Rust, будут сосуществовать в ядре, и могут включаться в зависимости от предпочтения пользователей. Для включения драйвера на Rust в Kconfig предусмотрена настройка AX88796B_RUST_PHY, вместе с которой при помощи параметра RUST_PHYLIB_ABSTRACTIONS также нужно включить Rust-обвязку над phylib.

Кроме того, на языке Rust разработан Ethernet-драйвер Realtek Generic FE-GE, который пока не предложен для включения в состав ядра. Ранее также был представлен прототип драйвера rust-e1000 для Ethernet-адаптеров Intel, переписанный на Rust.

Источник: https://www.opennet.ru/opennews/art.shtml?num=60303 Источник.