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

Грег Кроа-Хартман рассказал о том, как Rust может помочь в борьбе с ошибками в ядре Linux

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

Грег Кроа-Хартман рассказал о том, как Rust может помочь в борьбе с ошибками в ядре Linux

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

Грег Кроа-Хартман рассказал о том, как Rust может помочь в борьбе с ошибками в ядре Linux
Грег Кроа-Хартман (Greg Kroah-Hartman), отвечающий за поддержку стабильной и "staging" веток ядра Linux, и занимающий пост мэйнтейнера в 16 подсистемах ядра, выступил с докладом на конференции Rust Week 2026, в котором рассказал, как язык Rust может помочь в предотвращении появления в ядре уязвимостей, возникающих из-за типичных ошибок разработчиков на языке Си при работе с памятью, блокировками, обработкой ошибок и работой с незаслуживающими доверия данными. В качестве основного преимущества Rust называется возможность выявлять подобные ошибки на этапе сборки, а не рецензирования кода людьми. При этом, Rust не рассматривается как панацея, способная избавить от всех проблем, и никто не собирается переписывать ядро на Rust - ожидается постепенное внедрение Rust через его использования для новых драйверов и подсистем. В качестве примера ошибок в ядре, которые удалось бы избежать при использовании Rust, упомянута ошибка в подсистеме Bluetooth, остававшаяся незамеченной 15 лет, и проблема в гипервизоре Xen. В первом случае разработчик выполнил разыменование указателя без проверки, а во втором забыл снять блокировку в коде обработки ошибок. По словам Грега, большинство ошибок в ядре вызваны подобными мелочами, которые со временем накапливаются и всплывают как уязвимости. В Rust многие из подобных проблемы предотвращаются компилятором, например, Rust-абстракции для блокировок в ядре допускают получение доступа к внутренним указателям структур только после захвата соответствующей блокировки, которая снимается автоматически. Без захвата блокировки получить доступ к указателям структур на Rust не получится. Грег считает, что подобные возможности Rust недопустили бы появления 60% ошибок, выявляемых в ядре, а выполняемые компилятором проверки избавили бы сопровождающих от траты времени на обсуждение с авторами корректности обработки ошибок и обоснованности выставления блокировок в нужном месте. Более того, внедрение поддержки Rust уже оказало благотворное влияние и на Си код в ядре, благодаря приведению в порядок Си-кода и интерфейсов, а также заимствованию некоторых приёмов разработки (например, были реализованы блокировки с ограниченной областью видимости). Благодаря системе типов, гарантирующей соблюдение заданных правил, и применению систем непрерывной интеграции, проверяющих код на этапе сборки, при рецензировании изменений на Rust сопровождающие могут сосредоточиться на проверке логики работы, а не отслеживании манипуляций с ресурсами. Применение Rust также позволяет более внимательно относится к данным, поступающим от оборудования или из внешних систем. Подобное достигается благодаря явному разграничению заслуживающих и не заслуживающих доверия данных на уровне системы типов - разработчику достаточно выполнить анализ при переходе из недоверительного в доверительное состояние. Последнее время команда, отвечающая за безопасность в ядре, публикует каждый день примерно 13 отчётов об уязвимостях, что на фоне прошлой динамики выявления уязвимостей воспринимается как какое-то безумие (для примера за вчерашний день было опубликовано 277 отчётов об уязвимостях в ядре). По мнению Грега, использование Rust является одним из реальных способов добиться снижения числа ошибок в ядре, вызванных традиционными оплошностями при обработке ошибок и управлении ресурсами. В ядре поддержка Rust уже вышла за рамки эксперимента и в конце прошлого года была признана штатной возможностью ядра.

https://www.youtube.com/embed/0vhGWclF7 ... &start=780


Источник: https://www.opennet.ru/opennews/art.shtml?num=65549