Адрес: ул. Б. Очаковская 32 Москва Россия
Наши официальные канал и чат в telegram
Поднимем Devuan на вершину Distrowatch! Просто перейдите по ссылке один раз в день.

Выпуск Rust 1.90. Инструментарий для создания Windows-драйверов на Rust

Новости собранные из разных RSS источников
Аватара пользователя
root:#
Site Admin
Сообщения: 693
Зарегистрирован: Вт ноя 08, 2022 3:27 pm
Благодарил (а): 43 раза
Поблагодарили: 24 раза

Выпуск Rust 1.90. Инструментарий для создания Windows-драйверов на Rust

Сообщение root:# »

Выпуск Rust 1.90. Инструментарий для создания Windows-драйверов на Rust
Опубликован релиз языка программирования Rust 1.90, основанного проектом Mozilla, но ныне развиваемого под покровительством независимой некоммерческой организации Rust Foundation. Язык сфокусирован на безопасной работе с памятью и предоставляет средства для достижения высокого параллелизма выполнения заданий, при этом обходясь без использования сборщика мусора и runtime (runtime сводится к базовой инициализации и сопровождению стандартной библиотеки).
Методы работы с памятью в Rust избавляют разработчика от ошибок при манипулировании указателями и защищают от проблем, возникающих из-за низкоуровневой работы с памятью, таких как обращение к области памяти после её освобождения, разыменование нулевых указателей, выход за границы буфера и т.п. Для распространения библиотек, обеспечения сборки и управления зависимостями проектом развивается пакетный менеджер Cargo. Для размещения библиотек поддерживается репозиторий crates.io.

Безопасная работа с памятью обеспечивается в Rust во время компиляции через проверку ссылок, отслеживание владения объектами, учёт времени жизни объектов (области видимости) и оценку корректности доступа к памяти во время выполнения кода. Rust также предоставляет средства для защиты от целочисленных переполнений, требует обязательной инициализации значений переменных перед использованием, лучше обрабатывает ошибки в стандартной библиотеке, применяет концепцию неизменяемости (immutable) ссылок и переменных по умолчанию, предлагает сильную статическую типизацию для минимизации логических ошибок.
Основные новшества: [*] Признак "const" применён в функциях: Для целевых платформ на базе библиотеки Musl, находящихся на третьем уровне поддержки, включено по умолчанию динамическое связывание: mips64-unknown-linux-muslabi64, powerpc64-unknown-linux-musl, powerpc-unknown-linux-musl, powerpc-unknown-linux-muslspe, riscv32gc-unknown-linux-musl, s390x-unknown-linux-musl и thumbv7neon-unknown-linux-musleabihf. Целевая платформа "x86_64-apple-darwin" переведена с первого уровня поддержки на второй (Apple планирует прекратить поддержку архитектуры x86_64). Первый уровень поддержки подразумевает формирование бинарных сборок, проведение досконального тестирования и предоставление наивысшей гарантии поддержки платформы - каждое изменение в компиляторе проверяется выполнением полного тестового набора. Второй уровень поддержки подразумевает гарантию сборки, но отсутствие гарантий при прохождении тестового набора. Дополнительно можно отметить развитие компанией Micrоsoft инструментария для разработки Windows-драйверов на языке Rust. На GitHub уже размещён набор crate-пакетов для создания драйверов на базе WDM (Windows Driver Kit), KMDF (Kernel-Mode Driver Framework) и UMDF (User-Mode Driver Framework), а также сервисов Win32, пригодных для использования в Windows 11. Целью проекта называется предоставление для разработчиков на языке Rust библиотек и функций, аналогичных тем, что предлагаются в инструментарии WDK для разработчиков драйверов на языке Си. На текущем этапе инструментарий разработки драйверов на Rust использует большое число unsafe-вызовов при взаимодействии с подсистемами Windows, но в дальнейшем планируется подготовить безопасные абстракции для структур ядра и DDI (Device Driver Interface). Наработки проекта распространяются под лицензиями MIT и Apache 2.0.
Источник: https://www.opennet.ru/opennews/art.shtml?num=63906