Пятая редакция патчей для ядра Linux с поддержкой языка Rust
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Мигель Охеда (Miguel Ojeda), автор проекта Rust-for-Linux, предложил для рассмотрения разработчиками ядра Linux пятый вариант компонентов для разработки драйверов устройств на языке Rust. Поддержка Rust рассматривается как экспериментальная, но уже включена в ветку linux-next и достаточно развита для начала работы по созданию слоёв абстракции над подсистемами ядра, а также для написания драйверов и модулей. Разработка финансируется компанией Google и организацией ISRG (Internet Security Research Group), которая является учредителем проекта Let's Encrypt и способствует продвижению HTTPS и развитию технологий для повышения защищённости интернета.
Напомним, что предложенные изменения дают возможность использовать Rust в качестве второго языка для разработки драйверов и модулей ядра. Поддержка Rust преподносится как опция, не активная по умолчанию и не приводящая к включению Rust в число обязательных сборочных зависимостей к ядру. Использование Rust для разработки драйверов позволит с минимальными усилиями создавать безопасные и более качественные драйверы, избавленные от таких проблем как обращение к области памяти после её освобождения, разыменование нулевых указателей и выход за границы буфера.
Безопасная работа с памятью обеспечивается в Rust во время компиляции через проверку ссылок, отслеживание владения объектами и учёт времени жизни объектов (области видимости), а также через оценку корректности доступа к памяти во время выполнения кода. Rust также предоставляет средства для защиты от целочисленных переполнений, требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, применяет концепцию неизменяемости (immutable) ссылок и переменных по умолчанию, предлагает сильную статическую типизацию для минимизации логических ошибок.
В новом варианте патчей продолжено устранение замечаний, высказанных в процессе обсуждения первой, второй, третьей и четвёртой редакций патчей. В новой версии:
- В систему непрерывной интеграции на базе поддерживаемого компанией Intel бота 0DAY/LKP добавлена проверка компонентов для поддержки Rust и началась публикация отчётов о тестировании. Готовится интеграция поддержки Rust в систему автоматизированного тестирования KernelCI. Тестирование на базе GitHub CI переведено на использование контейнеров.
- Модули ядра на Rust избавлены от необходимости определения crate-атрибутов "#![no_std]" и "#![feature(...)]".
- Добавлена поддержка единичных сборочных целей (.o, .s, .ll и .i).
- В рекомендациях по оформлению кода определены правила в отношении разделения комментариев ("//") и документирования кода ("///").
- Переработан скрипт is_rust_module.sh.
- Добавлена поддержка статических (глобальных общих переменных) примитивов синхронизации, основанных на реализации "CONFIG_CONSTRUCTORS".
- Упрощено управление блокировками: Guard и GuardMut объединены и один параметризованный тип.
- Предоставлена возможность определения дополнительных параметров при регистрации устройств.
- Добавлена абстракция "RwSemaphore", выступающая в роли обвязки над Си-структурой rw_semaphore.
- Для использования mmap добавлен новый модуль mm и абстракция VMA (обвязка над структурой vm_area_struct).
- Драйвер GPIO PL061 переведён на использование макроса "dev_*!".
- Проведена общая чистка кода.
===========
Источник:
OpenNet.RU
===========
Похожие новости
- Главная ссылка к новости (https://lkml.org/lkml/2022/2/1...)
- OpenNews: Четвёртая редакция патчей для ядра Linux с поддержкой языка Rust
- OpenNews: Третья редакция патчей для ядра Linux с поддержкой языка Rust
- OpenNews: Проект Kerla развивает Linux-совместимое ядро на языке Rust
- OpenNews: Вторая редакция патчей для ядра Linux с поддержкой языка Rust
- OpenNews: В ветку ядра Linux-next добавлен код для разработки драйверов на языке Rust
Похожие новости:
- Wayland использует менее 10% Linux-пользователей Firefox
- Выпуск дистрибутива Absolute Linux 15.0
- Выпуск минималистичного дистрибутива Tiny Core Linux 13
- Обновление варианта GNU Coreutils, переписанного на языке Rust
- Уязвимость в механизме ucount ядра Linux, позволяющая повысить свои привилегии
- Уязвимости в OpenSSL, Glibc, util-linux, драйверах i915 и vmwgfx
- Выпуск генератора лексических анализаторов re2c 3.0
- Критическая уязвимость в PolKit, позволяющая получить root-доступ в большинстве дистрибутивов Linux
- Уязвимость в VFS ядра Linux, позволяющая повысить свои привилегии
- Уязвимость в стандартной библиотеке языка Rust
Теги для поиска: #_rust, #_kernel, #_linux
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 08:40
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Мигель Охеда (Miguel Ojeda), автор проекта Rust-for-Linux, предложил для рассмотрения разработчиками ядра Linux пятый вариант компонентов для разработки драйверов устройств на языке Rust. Поддержка Rust рассматривается как экспериментальная, но уже включена в ветку linux-next и достаточно развита для начала работы по созданию слоёв абстракции над подсистемами ядра, а также для написания драйверов и модулей. Разработка финансируется компанией Google и организацией ISRG (Internet Security Research Group), которая является учредителем проекта Let's Encrypt и способствует продвижению HTTPS и развитию технологий для повышения защищённости интернета. Напомним, что предложенные изменения дают возможность использовать Rust в качестве второго языка для разработки драйверов и модулей ядра. Поддержка Rust преподносится как опция, не активная по умолчанию и не приводящая к включению Rust в число обязательных сборочных зависимостей к ядру. Использование Rust для разработки драйверов позволит с минимальными усилиями создавать безопасные и более качественные драйверы, избавленные от таких проблем как обращение к области памяти после её освобождения, разыменование нулевых указателей и выход за границы буфера. Безопасная работа с памятью обеспечивается в Rust во время компиляции через проверку ссылок, отслеживание владения объектами и учёт времени жизни объектов (области видимости), а также через оценку корректности доступа к памяти во время выполнения кода. Rust также предоставляет средства для защиты от целочисленных переполнений, требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, применяет концепцию неизменяемости (immutable) ссылок и переменных по умолчанию, предлагает сильную статическую типизацию для минимизации логических ошибок. В новом варианте патчей продолжено устранение замечаний, высказанных в процессе обсуждения первой, второй, третьей и четвёртой редакций патчей. В новой версии:
=========== Источник: OpenNet.RU =========== Похожие новости
|
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 08:40
Часовой пояс: UTC + 5