vak: (Default)
Serge Vakulenko ([personal profile] vak) wrote2022-06-17 11:45 am

CheriBSD

Вам надоели указатели в Си/Си++? Тогда CHERI идёт к вам!

CHERI расшифровывается как "Capability Hardware Enhanced RISC Instructions". Это исследовательский проект в Кембридже по замене указателей на более безопасные capabilities. Не знаю как это по русски. В отличие от указателей capabilities содержат также границы и уровень доступа. ARM сделал экспериментальный процессор Morello с поддержкой capabilities.

Архитектура хардвера описана в статье: "CheriABI: Enforcing Valid Pointer Provenance and Minimizing Pointer Privilege in the POSIX C Run-time Environment" (PDF).

Особенности языка Си/Си++ на такой архитектуре приведены в статье: "CHERI C/C++ Programming Guide" (PDF).

Развивается проект CheriBSD: перенос операционной системы FreeBSD на платформу CHERI.

На видео показана работа графического сервера Wayland и демо OpenGL на процессоре Morello под операционной системой CheriBSD.



Подобных проектов в истории было много. Кто помнит, советская ЭВМ Эльбрус разрабатывалась с аналогичной целью, защититься от программных ошибок адресации памяти. Но во всех таких проектах софт приходилось писать с нуля из-за полной несовместимости с существующими методами программирования. А здесь 99% софта переносится без проблем.
juan_gandhi: (Default)

[personal profile] juan_gandhi 2022-06-17 08:08 pm (UTC)(link)

Надо же. А Раст туда не лучше сядет? Если сядет.

dmytrish: (Default)

[personal profile] dmytrish 2022-06-21 08:52 pm (UTC)(link)
Вот здесь человек рассказывает, как планируют подружить CHERI и Rust: https://gankra.github.io/blah/fix-rust-pointers/#cheri

Но все-таки немного разноплановые вещи.
Edited 2022-06-21 20:52 (UTC)
juan_gandhi: (Default)

[personal profile] juan_gandhi 2022-06-21 09:44 pm (UTC)(link)

Ох тяжелая там работа...