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% софта переносится без проблем.

Date: 2022-06-17 19:22 (UTC)
malyj_gorgan: (Default)
From: [personal profile] malyj_gorgan
Досі "чотаржу", згадуючи, як 25+ років тому, в молоді аспірантські роки, ми в 7 ранку їхали додому після безсонної ночі на факультеті, де я робив домашку з електродинаміки, а Тарас і Юля закінчували проект з C++. Тарас чогось сів через місце від нас, я йому кажу: "сунься ближче." A він бурмотить щось типу: "нема сили, але добре," -- і, продовжуючи сидіти, де сидів, починає показувати пальцем на сусіднє місце.

Пробую зрозуміти, як би воно все виглядало, якби уже тоді замість poiner'ів існували оті вашіі capabilities.