DEREFERENCE_POINTER_THERE Telegram 6960
#prog #rust

В Google переписывают Android binder (компонент ядра для IPC) с C на Rust. Это компонент, который используется практически всем на Android, а потому для нормального функционирования он должен быть быстрым и корректным.

Авторы ожидают, что переписывание кода позволит и дальше развивать binder, избавиться от накопившегося техдолга и повысить его безопасность.

В качестве преимуществ Rust называют:

* возможность закодировать в системах типов инварианты, которые в C надо поддерживать самостоятельно.
* деструкторы, избавляющие от необходимости вручную освобождать ресурсы (корректная деинициализация в C требует неловкого паттерна goto cleanup).
* обработка ошибок проще: игнорирование потенциальных ошибок приводит к ошибке компиляции.

Переписанный вариант имеет отличную от текущего варианта Binder архитектуру, но имеет почти ту же функциональность. Пока что не реализованы фичи для отладки. Все тесты проходят, а бенчмарки показывают, что переписанный вариант сопоставим по производительности с исходным (где-то быстрее, где медленнее). Автор патча при этом отмечает, что это синтетические бенчмарки и для полной уверенности следует проверить производительность на реальной системе.

В наборе патчей непереписанным остался компонент binderfs:

We have left the binderfs filesystem component in C. Rewriting it in Rust would be a large amount of work and requires a lot of bindings to the file system interfaces. Binderfs has not historically had the same challenges with security and complexity, so rewriting binderfs seems to have lower value than the rest of Binder.
❤‍🔥32👍8👎1



tgoop.com/dereference_pointer_there/6960
Create:
Last Update:

#prog #rust

В Google переписывают Android binder (компонент ядра для IPC) с C на Rust. Это компонент, который используется практически всем на Android, а потому для нормального функционирования он должен быть быстрым и корректным.

Авторы ожидают, что переписывание кода позволит и дальше развивать binder, избавиться от накопившегося техдолга и повысить его безопасность.

В качестве преимуществ Rust называют:

* возможность закодировать в системах типов инварианты, которые в C надо поддерживать самостоятельно.
* деструкторы, избавляющие от необходимости вручную освобождать ресурсы (корректная деинициализация в C требует неловкого паттерна goto cleanup).
* обработка ошибок проще: игнорирование потенциальных ошибок приводит к ошибке компиляции.

Переписанный вариант имеет отличную от текущего варианта Binder архитектуру, но имеет почти ту же функциональность. Пока что не реализованы фичи для отладки. Все тесты проходят, а бенчмарки показывают, что переписанный вариант сопоставим по производительности с исходным (где-то быстрее, где медленнее). Автор патча при этом отмечает, что это синтетические бенчмарки и для полной уверенности следует проверить производительность на реальной системе.

В наборе патчей непереписанным остался компонент binderfs:

We have left the binderfs filesystem component in C. Rewriting it in Rust would be a large amount of work and requires a lot of bindings to the file system interfaces. Binderfs has not historically had the same challenges with security and complexity, so rewriting binderfs seems to have lower value than the rest of Binder.

BY Блог*


Share with your friend now:
tgoop.com/dereference_pointer_there/6960

View MORE
Open in Telegram


Telegram News

Date: |

Telegram channels fall into two types: To view your bio, click the Menu icon and select “View channel info.” Hashtags 6How to manage your Telegram channel? Although some crypto traders have moved toward screaming as a coping mechanism, several mental health experts call this therapy a pseudoscience. The crypto community finds its way to engage in one or the other way and share its feelings with other fellow members.
from us


Telegram Блог*
FROM American