Rust опередил C/C++ по объёму кода, добавляемого в платформу Android

Новости мира unix. Хотите узнать секрет вечного счастья? Откройте страницу 246.
Ответить
acolyte
Аватара пользователя
Сообщения: 632
Зарегистрирован: 20.08.2022

#

Rust опередил C/C++ по объёму кода, добавляемого в платформу Android
Дата публикации:Fri, 14 Nov 2025 15:16:32 +0300

Компания Google подвела итоги использования компонентов на языке Rust в платформе Android. Стратегия по внедрению в Android методов безопасной разработки для нового кода оказалась успешной. В 2025 году впервые доля уязвимостей, вызванных ошибками при работе с памятью, оказалось меньше 20% от общего числа уязвимостей. Для сравнения в 2024 году этот показатель в Android составлял 24%, а в 2019 году - 76%. При этом средний показатель по индустрии продолжает оставаться на уровне 70%.
Изображение
Использование кода на Rust при разработке системных компонентов Android началось в 2020 году. В 2025 году объём нового кода на Rust в Android превысил объём добавляемого за год кода на C и C++.
Изображение
Накопленная статистика подтверждает ранее высказанное предположение, что основным источником проблем с безопасностью является новый код, а для старого кода наблюдается экспоненциальная зависимость безопасности от времени - со временем в старом коде ошибки выявляются всё реже и реже. В конечном счёте в Google решили не пытаться переписать старый код на языках безопасно работающих с памятью, а сосредоточиться на использовании подобных языков для нового кода.
Помимо безопасности внедрение Rust положительно повлияло на скорость, продуктивность и качество разработки. Для кода на Rust зафиксировано в 4 раза меньше откатов изменений в результате выявления непредвиденных ошибок, а также снижение времени рецензирования на 25%.
Изображение
Изображение
При включении в состав Android изменений сопоставимого размера, изменения на Rust требуют примерно на 20% меньше ревизий, чем их эквиваленты на C++.
Изображение
Данные показатели объясняются упрощением тестирования и смещением выявления ошибок на ранние стадии разработки, на которых ошибки становятся заметны ещё до того, как разработчик приступает к проверке кода. Кроме того, за счёт исключения накладных расходов на sandbox-изоляцию в коде на Rust удалось добиться повышения производительности.
Из недавних проектов, связанных с использованием Rust в Android, отмечено задействование в ядре Linux 6.12 первого широко применяемого драйвера на языке Rust, а также использование Rust при разработке прошивок и прикладных приложений. Помимо уже применяемого в ядре драйвера на Rust, совместно с компаниями ARM и Collabora на данном языке развивается новый драйвер GPU. Реализован на языке Rust и задействован в Google Play Services протокол Nearby Presence для обнаружения локальных устройств по Bluetooth. Для включения в следующий релиз приложения Google Messages запланировано включение новой реализации протокола MLS, написанной на Rust. В браузерном движке Chromium задействованы написанные на Rust парсеры для web-шрифтов, изображений PNG и формата JSON.
В настоящее время в Android на Rust написано около 5 млн строк кода, в которых выявлена лишь одна потенциальная уязвимость, вызванная проблемами при работе с памятью. Таким образом плотность подобных уязвимостей в коде на Rust составила 0.2 уязвимости на миллион строк кода. Для сравнения в коде на языках C и C++ данный показатель составляет около 1000 уязвимостей на миллион строк кода. Ключевым источником проблем в Rust является код, находящийся в unsafe-блоках. Доля подобного кода оценивается в 4% от всего кода, написанного на Rust.
Отмеченная выше уязвимость CVE-2025-48530 найдена в библиотеке Crabby Avif, включающей парсер и декодировщик для формата Avif. Проблема была выявлена сотрудниками Google до публикации релиза и не затронула пользователей. Уязвимость вызвана ошибкой в unsafe-блоке, приведшей к переполнению буфера. Отмечается, что даже если бы ошибка не была замечена её эксплуатация была бы блокирована поставляемой в Android системой распределения памяти Scudo, по умолчанию задействованной в прошивках для Google Pixel и некоторых других устройств.

Новость позаимствована с opennet.ru
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=64251

Жизнь за Нер'зула!

Ответить