Илья Ермаков писал(а):
Если у Вас герметичный язык - и объектные пространства (кучи динам. объектов) полностью изолированы, то никак на надёжность общее адресное пространство не влияет. Ну на надёжность уровня разрушения памяти, я имею в виду
(Если человек неправильно напишет логику обработки матрицы несколькими Блэкбоксами - это логическая ошибка).
Это на всё влияет - и на возможность разрушения памяти тоже.
Простая защита от порчи памяти обеспечивается приблизительно так:
Код:
ASSERT((0 <= i) & (i < LEN(a)));
a[i] := val;
Если индекс по каким-либо причинам доступен для записи второму потоку, то при выполнении такого кода можно добиться проверки одного - корректного значения, а записи по другому - некорректному. Это не так просто, как портить память без проверки, тем не менее подобные ошибки успешно используются для создания уязвимостей, не говоря про появление обычных ошибок нарушения памяти.
Цитата:
А вот если заменить вашу фразу так:
"Если рассматривать с точки зрения (--надёжности--) ЗАЩИЩЁННОСТИ, то общего адресного пространства, (--доступного для записи--), не должно быть.",
то согласен.
Под надёжностью я понимаю ошибкоустойчивость вообще, в том числе от логических ошибок.
Последствия от них могут быть ничуть не хуже, чем от других ошибок. Для защищённости, как возможности противостояния злому умыслу, с одной стороны, ошибкоустойчивость полезна, с другой - далеко не всегда критична в зависимости от типа совершаемых действий.