У нас процессоры сорок лет развивались исходя из того что будет исполняться код на языке C. Переключение контекстов - дешево. А замены этому portable assembler пока нет. Кстати, говоря о запрете компонент в виде разделяемых библиотек, я ничего не имею против компонент в виде lightweight процессов Erlang, отдельных интерпретаторов SafeTcl и тому подобных конструкций. Если у нас интерпретатор, даже байткода, навроде JVM, то мы можем себе многое позволить - он проконтролирует (хотя в том же SafeTcl лимитов на память и CPU Cycles нету. А надо). Но если речь идет о бинарном коде - не важно, C это, Fortran или даже Oberon-2, то процесс - единственный осмысленный способ изоляции.
Заметим что в OTP (Erlang-системе) те вещи, которые требуют использования чужих бинарных библиотек, зачастую реализуются через механизм "портов". Т.е. выносятся в отдельный процесс нижележащей ОС.
Система должна быть построена исходя из предположения что любой кусок кода в ней - untrusted.
no subject
Date: 2007-09-12 02:45 pm (UTC)компонент в виде lightweight процессов Erlang, отдельных интерпретаторов SafeTcl и тому подобных конструкций. Если у нас интерпретатор, даже байткода, навроде JVM, то мы можем себе многое позволить - он проконтролирует (хотя в том же SafeTcl лимитов на память и CPU Cycles нету. А надо). Но если речь идет о бинарном коде - не важно, C это, Fortran или даже Oberon-2, то процесс - единственный осмысленный способ изоляции.
Заметим что в OTP (Erlang-системе) те вещи, которые требуют использования чужих бинарных библиотек, зачастую реализуются через механизм "портов". Т.е. выносятся в отдельный процесс нижележащей ОС.
Система должна быть построена исходя из предположения что любой кусок кода в ней - untrusted.