Вау, работа Поддержка драйверов Rust для Linux уже началась и началось довольно непрерывное развитие, так как ему нечего была анонсирована версия 8 патчей и все сейчас у нас версия 9.
И это то, что в этой девятой версии, которая была предложена, стоит упомянуть, что как таковая это упрощенная версия восьмого издания, опубликованного несколько дней назад. Комплект отличается значительным уменьшением размера и оставлением только самого необходимого минимума, достаточного для сборки модуля ядра, написанного на Rust.
Предполагается минимальный патч упростит внедрение поддержки Rust в основное ядро. После оказания минимальной поддержки планируется постепенно наращивать существующий функционал, портируя другие изменения из ветки Rust-for-Linux.
Это серия патчей (v9) для добавления поддержки Rust в качестве второго языка в ядро Linux…
Как обычно, особая благодарность ISRG (Internet Security Research Group) и Google за их финансовую поддержку в этом начинании.
По сравнению с версией 8 размер патча уменьшен с 40 000 до 13 000 строк кода. Например, версия 3 включает в себя только 500% кода (60 строк) из бокс-пакета «ядро» и 32% библиотеки alloc, что позволяет создавать простейшие модули ядра с использованием типа Vec. и вывод информации в лог ядра с помощью макроса "pr_info!".
Кроме того, В отношении Rust и Linux стоит упомянуть, что в последнее время Разработчики проекта Rust предупредили пользователям о грядущее повышение требований к среде Linux в компиляторе, диспетчере пакетов Cargo и стандартной библиотеке libstd.
Начиная с Rust 1.64, запланировано на 22 сентября 2022 г., минимальные требования для Glibc будут повышены с версии 2.11 до 2.17, а для ядра Linux — с 2.6.32 до 3.2.. Ограничения также применяются к двоичным файлам Rust, созданным с помощью libstd.
Дистрибутивы RHEL 7, SLES 12-SP5, Debian 8 и Ubuntu 14.04 соответствуют новым требованиям. Поддержка RHEL 6, SLES 11-SP4, Debian 7 и Ubuntu 12.04 будет прекращена. Причины прекращения поддержки старых систем Linux включают ограниченные ресурсы для продолжения поддержки старых сред.
Зачем повышать требования?
Мы хотим, чтобы Rust и бинарные файлы, созданные Rust, были как можно более широко применимы. В то же время проект Rust имеет ограниченные ресурсы для обеспечения совместимости со старыми средами.Требования к инструментальной цепочке состоят из двух частей: минимальные требования для запуска компилятора Rust на хост-системе и минимальные требования для кросс-компилируемых двоичных файлов.
Минимальные требования к цепочкам инструментов хоста влияют на нашу систему сборки. Rust CI создает бинарные артефакты для десятков различных целей. Сборка двоичных файлов, поддерживающих более старые версии glibc, требует сборки операционной системы с более старой версией glibc (для нативных сборок) или использования корня сборки с более старой версией glibc (для кросс-сборок).
В частности, совместимость со старыми Glibcs требует использования старых инструментов при проверке в системе непрерывной интеграции, по сравнению с повышенными требованиями к версиям LLVM и утилит кросс-компиляции. Увеличение требований к версии ядра связано с возможностью libstd использовать новые системные вызовы без необходимости поддерживать уровни для обеспечения совместимости со старыми ядрами.
Пользователям, использующим созданные Rust исполняемые файлы в средах со старыми ядрами Linux, рекомендуется обновить свои системы, остаться на более старых версиях компилятора или поддерживать свою собственную многоуровневую вилку libstd для обеспечения совместимости.
Наконец, если вы хотите узнать об этом больше, вы можете ознакомиться с подробностями в по следующей ссылке.