Несколько недель назад мы поделились здесь, в блоге, новостями о подтверждении, сделанном во время европейского саммита по открытым исходным кодам., объявленный Линусом Торвальдсом что, за исключением непредвиденных проблем, си будет включать исправления для поддержки разработки драйвера Rust в ядре Linux 6.1, который, как ожидается, будет выпущен в декабре.
Причина его упоминания в том, что Мигель Охеда, автор проекта Rust-for-Linux, объявил недавно запуск десятое предложение компонентов для разработки Драйверы устройств ржавчины для разработчиков ядра Linux.
Таким образом, это одиннадцатое издание исправлений с учетом первой выпущенной версии (без номера версии). Линус Торвальдс одобрил включение поддержки Rust в ядро Linux 6.1, если не возникнут непредвиденные проблемы.
Стоит отметить, что разработка финансируется Google и ISRG (Internet Security Research Group), которая является основателем проекта Let’s Encrypt и продвигает HTTPS и разработку технологий для повышения интернет-безопасности.
некоторые преимуществ получения поддержки Rust в ядре упрощают написание контроллеров защищенных устройств за счет снижения вероятности ошибок памяти и поощряйте новых разработчиков к участию в ядре.
«Ржавчина — это одна из тех вещей, которые, я думаю, принесут новые лица… мы стареем и сереем», — сказал Линус.
Примечания к выпуску для Linux 6.0 предоставляет обновленную информацию о ходе проекта Rust для Linux: существует соответствующая рабочая группа, доступен предварительный драйвер для носителя данных NVMe, разработанный с использованием этого языка, а также драйвер для сервера, предназначенного для сетевого протокола 9P.
Воспользовавшись упоминанием о версии ядра 6.1 Линус также объявил, что версия ядра 6.1 улучшит некоторые старые части. и основы ядра, такие как функция printk().
Что касается этого нового предложения по патчам для Rust, а также последней версии патчей, десятая версия урезана до минимума, достаточного для сборки простого модуля ядра, написанного на Rust.
Отличия от предыдущей версии сводятся к незначительным исправлениям, замена sizeof на ARRAY_SIZE в kallsyms.c и перенос патчей на ядро v6.0-rc7.
Поддержка Rust по-прежнему должна считаться экспериментальной. Тем не менее,
Поддержка достаточно хороша, чтобы разработчики ядра могли начать над ней работать.
Ожидается, что минимальный патч, который был сокращен с 40 000 строк кода до 13 000 строк кода,, упростите внедрение поддержки Rust в ядро. После оказания минимальной поддержки планируется постепенно наращивать существующий функционал, портируя другие изменения из ветки Rust-for-Linux.
Предлагаемые изменения позволяют использовать Rust в качестве второго языка для разработки драйверов и модулей ядра. Поддержка Rust представлена как опция, которая не включена по умолчанию и не приводит к включению Rust в число необходимых зависимостей сборки для ядра.
Использование Rust для разработки драйверов позволит вам создавать более качественные и безопасные драйверы с минимальными усилиями, без проблем, таких как доступ к области памяти после ее освобождения, разыменование нулевых указателей и переполнение буфера.
В Rust реализована безопасная обработка памяти. во время компиляции, проверяя ссылки, отслеживая владение объектом и время жизни объекта (область действия), а также оценивая правильность доступа к памяти во время выполнения кода.
ржавчина тоже обеспечивает целочисленную защиту от переполнения, требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, применяет концепцию неизменяемых переменных и ссылок по умолчанию, предлагает строгую статическую типизацию для минимизации логических ошибок.
В конце концов если вам интересно узнать об этом больше о заметке вы можете проконсультироваться в списках рассылки по этому вопросу, По следующей ссылке.