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

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

Мигель Охеда предложил новый релиз компонентов разработки драйверов устройств Rust для разработчиков ядра Linux. Это шестое издание до сих пор считается экспериментальным но он уже включен в ветку linux-next и достаточно зрел, чтобы начать работать над созданием слоев абстракции поверх подсистем ядра, а также писать драйверы и модули.

Для тех, кто еще не знает об этом развитии, они должны знать, что финансируется Google и ISRG (Internet Security Research Group), которая является основателем проекта Let's Encrypt и продвигает HTTPS и разработку технологий для повышения безопасности в Интернете.

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

Использование Rust для разработки драйверов позволит вам создавать более качественные и безопасные драйверы с минимальными усилиями, без проблем, таких как доступ к области памяти после ее освобождения, разыменование нулевых указателей и переполнение буфера.

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

В новой версии патчей продолжили удалять комментарии, сделанные при обсуждении первого, второй, третий, четверть y ферма выпуски патчей (о которых я оставляю вам соответствующие ссылки).

Основные нововведения в шестом предложении

С появлением этого нового предложения инструментарий обновлен до выхода Rust 1.59.0, вместе с которым вариант библиотеки alloc он также синхронизируется с новой версией Rust, устраняя возможность возникновения «паники» при возникновении ошибок, таких как нехватка памяти.

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

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

С другой стороны, упоминается, что стабилизирована возможность использования ассемблерных вставок ("feature(global_asm)") и добавлена ​​поддержка создания хост-программ в Rust, которые используются в процессе сборки ядра.

Из других изменений которые выделяются из этого нового предложения:

  • Использование кодов ошибок без префикса «Error::» (например, «return Err(EINVAL)») было разрешено для приблизительной обработки кодов ошибок в C.
  • Добавлен тип «CString» для собственных строк C. Комбинированные типы форматирования и буфера.
  • Добавлены трейты Bool и LockInfo.
  • Упрощенная реализация спин-блокировок.

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


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

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

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

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

*

*

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