vak: (Default)
[personal profile] vak
Вам надоели указатели в Си/Си++? Тогда 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% софта переносится без проблем.