The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

В ядро Linux 6.18 принята реализация Binder IPC для Android, написанная на Rust

21.10.2025 20:52

В кодовую базу ядра Linux, на основе которой формируется релиз 6.18, принята реализация механизма межпроцессного взаимодействия Binder, написанная на языке Rust. Binder используется в Android для организации взаимодействия между процессами и удалённого вызова методов (один процесс Android может вызвать метод или функцию в другом процессе Android, используя Binder для идентификации, вызова и передачи аргументов между процессами). Код Binder был переписан на Rust в рамках проекта по усилению защищённости, продвижению приёмов безопасного программирования и повышению эффективности выявления проблем при работе с памятью в Android (около 70% из всех опасных уязвимостей, выявленных в Android, вызваны ошибками при работе с памятью).

Использование Rust позволило решить некоторые проблемы с которыми сталкивались разработчики Binder, включая ошибки, связанные с подсчётом ссылок, блокировками и проверкой границ, а также значительно уменьшить сложность обработки ошибок. Реализация Binder на Rust аналогична по функциональности с изначальным вариантом на языке Си, проходит все тесты AOSP (Android Open-Source Project) и может использоваться для создания рабочих редакций Android-прошивок. Несмотря на продвинутые возможности и поддержку объектов со сложной семантикой владения, драйвер на Rust получился меньше варианта на Си - 5.5 против 5.8 тысяч строк кода.

В описании коммита автор упоминает следующие мотивы для переписывания Binder:

  • Binder, развивается уже 15 лет и за это время его функциональность и сложность значительно возросли - проект находится на стыке всех компонентов Android и охватывает множество задач, выходящих за рамки IPC:
    • корректный анализ и преобразование содержимого транзакций, которые могут содержать несколько объектов разных типов (например, указатели, файловые дескрипторы), взаимодействующих друг с другом;
    • контроль размера пулов потоков в пользовательском пространстве и обеспечение назначения транзакций потокам таким образом, чтобы избежать взаимных блокировок при исчерпании потоков в пуле;
    • отслеживание счётчиков ссылок объектов, совместно используемых несколькими процессами, корректно пересылая изменения счётчиков ссылок между процессами;
    • обработка многочисленных сценариев возникновения ошибок и совмещение 13 различных блокировок, 7 счётчиков ссылок и атомарных переменных. При этом выполнять подобные задачи он должен максимально быстро и корректно.
  • В старом коде накопился заметный технический долг, который усложнял как поиск ошибок, так и дальнейшую разработку. Например, в коре встречаются крупные функции на более чем тысячу строк кода, сомнительные методы обработки ошибок и запутанные структуры.
  • Binder является критическим с точки зрения безопасности компонентом Android, так как элементы платформы, работающие в изолированных sandbox-окружениях, такие как процесс отрисовки в Chrome и SW Codec, имеют к нему прямой доступ, а уязвимость в Binder позволит обойти изоляцию. Высокая сложность вкупе с техническим долгом сильно осложняют поддержание высокого уровня безопасности в Binder.


  1. Главная ссылка к новости (https://git.kernel.org/pub/scm...)
  2. OpenNews: Для ядра Linux 6.15 предложен начальный код драйвера Nova, написанный на Rust
  3. OpenNews: Rust включён в число основных языков для разработки платформы Android
  4. OpenNews: Google развивает новый Bluetooth-стек для Android, написанный на Rust
  5. OpenNews: Google переписал на языке Rust прошивку pvmfm, используемую в Android
  6. OpenNews: Google выделил миллион долларов на улучшение переносимости между С++ и Rust
Автор новости: Fyjy
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64092-binder
Ключевые слова: binder, kernel, android, rust
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (24) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 21:09, 21/10/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Через десять лет много перепишут на С++ по тем же причинам
     
     
  • 2.83, Вирт (?), 00:05, 22/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Через десять лет много перепишут на С++ по тем же причинам

    Не смогут, в ядро C++. код не принимают.

     

  • 1.3, Аноним (3), 21:12, 21/10/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Коллеги, напомните плиз, в хит параде цвс спор, кто на первом месте? Линукс или андроид?
    То-то гугл уже и патчи секурные в аосп не кладет...
     
  • 1.13, Аноним (13), 21:39, 21/10/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Андройд хорошая штука, но с другой стороны странное поделие. Собирать его пару часов из сурцов? Надо его опакетить, сделать более совместимым с обычными дистрами, чтобы он был просто линухом в джавой и другой оболочкой. И будет супер. Гугель наверно и сам уже догадался, да?
     
     
  • 2.53, Аноним (-), 22:44, 21/10/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Собирать его пару часов из сурцов?

    А чего не за 10 минут))?

    > Надо его опакетить, сделать более совместимым с обычными дистрами,

    Надо! Делай!
    Как сделаешь, можешь отчитаться и написать тут статью - мы все поставим тебе плюсиков.

    > чтобы он был просто линухом в джавой и другой оболочкой.

    "Просто" не получится)
    Ну стайбл-нонсенс и все такое.

    > И будет супер. Гугель наверно и сам уже догадался, да?

    Ага.
    И предусмотрительно решил этого не делать.
    Более того, начал внедрять хруст, потому что на него у фанатико алергия и приступы неосиляторства.


     

  • 1.15, Аноним (3), 21:40, 21/10/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Коллеги, предполагаю, что в этом трэде соберутся маститые сеньоры от православных и не очень ЯП'ов.
    Вот им с вашего дозволения задам вопрос: а для чего сейчас все эти псевдобезопасные языки, когда на сей день при должном умении можно и нужно заставить чатжипити писать код на си, уровня серьёзного сеньора! Для чего все это?!
    Скажете веб девелоперов и прочих пистонистов трудоустраивать? Дык и это не осилят. Заводы стоят, руками работать некому!
     
     
  • 2.89, Аноним (-), 00:27, 22/10/2025 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > на сей день при должном умении можно и нужно заставить чатжипити писать код на си, уровня серьёзного сеньора!

    Мистер! Вам следует меньше потреблять маркетингового буллшита. Все эти LLM могут писать код уровня джуна, но и в этом они хуже, потому что джун хотя бы учится на своих ошибках. Хотя бы на некоторых. Эти же будут совершать одну и ту же ошибку раз за разом, пока ты в свои промпты не добавишь "не совершай ошибку X, проверь Y и Z, прежде чем показывать мне свою песанину". Впрочем и это не панацея.

     
     
  • 3.92, Аноним (92), 00:51, 22/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Все было бы хорошо, если бы не было так грустно (с)
    Хотя грустно смотря для кого...
    Дело тут не в буллшите. А в том, что если знаешь предмет, то с второй, а лучше третьей итерации, оно выдаёт уровень. И оно обучается. Конкретно жпт при помощи механизма эттеншн.
    В общем я к тому, что уже сейчас один сеньор может заменить трёх (и оно уже работает и в пробе). А дальше...
     

  • 1.27, Аноним (27), 22:00, 21/10/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А само ядро для IPC у десктопа что использует? Binder?
     
     
  • 2.77, Аноним (77), 23:43, 21/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    dbus
     

  • 1.66, Анонус (?), 23:04, 21/10/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    dbus можно выкидывать?
     
  • 1.78, Аноним (78), 23:45, 21/10/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Зачем принимать в ядро что-то от Андроида? Направление его развития за последние несколько месяцев уже явно было обозначено Гуглом.
     
     
  • 2.80, Аноним (80), 23:48, 21/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Зато нужную BcacheFS выкинули. Linux RIP. 1991—2025.
     
     
  • 3.86, Ан339ним (?), 00:16, 22/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Сравни нужность этой ФС и Андроида.
     
     
  • 4.90, Аноним (78), 00:28, 22/10/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 5.93, Ан339ним (?), 01:07, 22/10/2025 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 4.91, Аноним (91), 00:44, 22/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    Ну так и пущай Гуголь у себя в репе держит эту нужность для Андроеда. Он же, всё равно, далее не планирует юзерспейсом делится.
     
  • 3.87, Аноним (-), 00:17, 22/10/2025 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
  • 2.82, Аноним (-), 00:00, 22/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    > Зачем принимать в ядро что-то от Андроида? Направление его развития за последние
    > несколько месяцев уже явно было обозначено Гуглом.

    Просто глянь вклад гугла в ядро. Это во-первых.
    А во-вторых, ты хочешь побыковать на Gold sponsor Linux Foundation?

     

  • 1.79, Аноним (79), 23:47, 21/10/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Много наслышан о крутости этого биндера, так может перенести его в ядро, выкинув все прочие механизмы? Ведь лучше один но крутой, чем много но не очень, так и сложность поддержки упадет в разы.
     
  • 1.81, Аноним (92), 23:59, 21/10/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >>Они своей модерастией превратили сайт в помойку, куда что-то осмысленное писать, значит себя не уважать.

    Поддерживаю!
    "Но мы не лыком щиты, мы как питбули, хапанули на своём веку..."

    Надо на досуге набросать альтернативу, заодно им поднапрячь. Чтобы порядочные люди могли нормально дискутировать.  Да и не побоюсь этого слова троллить. Вай нот!?

     
     
  • 2.84, Аноним (92), 00:10, 22/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >>>Куда они его тащили? Ядро на си изначально.
    > и тоже не могут уровень пройти

    Так ты не сравнивай объективную сложность задачи с необходимостью спорить и унижаться перед всякими всякими вахтерами.
    > Никакого желания превозмогать и добиваться результата.

    Ты про дидов, которые уже не в состоянии выучить ничего нового?

    Вы не поверите, но диды, которые топили за си, спорили и с ассемблер адептами, и фортрановодами (академическими), и лисп/адовцами корпоративными. А в итоге просто взяли с сделали это!

    Да, в любое время есть свои диды. Конфликт поколений, вот это все.

     
     
  • 3.88, Аноним (92), 00:22, 22/10/2025 [^] [^^] [^^^] [ответить]  
  • +/
    >>тут нужна ссылка на таймлайн.

    https://www.cnews.ru/search?search=Rust+for+linux

    Полистайте. Интересная картинка получается по хронологии.
    В стиле Линуса.
    Но вопрос остаётся актуален. Почему так резко опять?

     

  • 1.94, Аноним (94), 01:08, 22/10/2025 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как показывает ситуация с librsvg, если свежий linux невозможно будет собрать без rust, можно будет остаться на старых версиях.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2025 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру