Здравствуйте, AlexRK, Вы писали:
ARK>Я немного думал над этим вопросом и пришел к выводу, что с точки зрения корректности лучшим способом является полный запрет расширяемости в рамках одного процесса, как это сделано в Singularity. Там любое расширение — это уникальный процесс, общающийся по типизированным каналам с родителем.
Если под процессом, понимается изолированный юзер-спейс, то — это один из наихудших вариантов, особенно для исходного примера. Код собственно говоря хочет работать с документом (state), используя stateful API, а не с набором сообщений (непосредственно или через прокси — это не так важно).
Но вообще-то в исходном примере была простая лямбда.
ARK>Понятно, что в существующих ОС такой подход не работает и мы имеем выбор из различных, но плохих вариантов.
Во всех существующих ОС такой подход как раз работает, и это единственный путь выполнить что-нибудь в "песочнице". Проблема в том, что это довольно дорого с любой сточки зрения, но в осмысленных случаях — он успешно используется.