Вторая версия патчей для поддержки драйвера Rust в Linux уже отправлена.

В марте этого года на ветке linux-next который в то время работал с ядром Linux 5.13, Первоначальный набор компонентов был включен для разработки драйверов устройств в язык Rust, а теперь поступил запрос на включение второго издания патчей для добавления поддержки Rust в ядро ​​Linux.

Человек, отправивший запрос разработчикам Linux, - это Мигель Охеда, автор проекта Rust-for-Linux, о котором мы также говорили несколько дней назад, поскольку он был нанят, чтобы возглавить проект "Prossimo", который в основном фокусируется на координации усилий по переводу критически важной программной инфраструктуры на безопасный код для защиты памяти ядра Linux с помощью Rust (если вы хотите узнать больше о проекте, вы можете проконсультироваться размещение по ссылке ниже.)

Теме статьи:
Prossimo, проект ISRG по защите памяти ядра Linux с помощью Rust

Запрос, отправленный Мигелем Охедой, является второй обновленной версией компонентов для разработки драйверов устройств на языке Rust и в которых удалены комментарии, сделанные во время обсуждения первой версии патчей, к которым Линус Торвальдс уже присоединился к обсуждению и предложил изменить логику для обработки некоторых битовых операций.

Внутри преимуществ которые упоминаются, это то, что безопасное управление памятью гарантировано в Rust во время компиляции, проверяя ссылки, отслеживая принадлежность объекта и время жизни объекта, а также оценивая правильность доступа к памяти во время выполнения.

Rust также предоставляет целочисленная защита от переполнения, требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, принимает концепцию ссылок и неизменяемых переменных по умолчанию и предлагает сильную статическую запись для минимизации логических ошибок.

Из изменений, которые выделяются в этой новой версии патчей упоминается:

  • Код выделения памяти предотвращает возможность возникновения паники при возникновении таких ошибок, как нехватка памяти.
  • Включено вариант библиотеки Rust alloc, в которой код был переработан для обработки блокировок, но конечная цель - добавить все необходимые функции ядра в основную редакцию alloc (изменения уже подготовлены и перенесены в стандартную библиотеку Rust).
  • Вместо ночных сборок теперь можно использовать бета и стабильные версии. Компилятор rustc для компиляции ядра с поддержкой Rust. В настоящее время rustc 1.54-beta1 используется как эталонный компилятор, но после выпуска 1.54 в конце месяца он будет поддерживаться как эталонный компилятор.
  • Добавлена ​​поддержка написания тестов с использованием стандартного атрибута Rust "# [test]" и возможность использовать doctests для использования примеров кода из документации в качестве тестов.
  • Добавлена ​​поддержка архитектур ARM32 и RISCV в дополнение к ранее поддерживаемым x86_64 и ARM64.
    Улучшенные реализации GCC Rust (интерфейс GCC для Rust) и rustc_codegen_gcc (бэкэнд rustc для GCC), который теперь проходит все тесты.
  • А новый уровень абстракции для программ Rust использовать механизмы ядра, написанные на C, такие как деревья, объекты подсчета ссылок, создание файловых дескрипторов, задач, файлов и векторов ввода-вывода.
  • Компоненты разработки драйверов улучшили поддержку модуля «file_operations», макроса «module!», Ведения журнала макросов и рудиментарных драйверов (проверка и удаление).
  • Binder поддерживает передачу дескрипторов файлов и ссылок LSM.
  • Более функциональный пример драйвера Rust, bcm2835-rng, предлагается для аппаратного генератора случайных чисел для плат Raspberry Pi.

Наконец, если вам интересно узнать об этом больше, вы можете ознакомиться с подробностями По следующей ссылке.


Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован.

*

*

  1. Ответственный за данные: AB Internet Networks 2008 SL
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.