Я хотел бы разместить Динамическое время выполнения языка (DLR) таким способом, которым пользователи, которые запускают произвольные скрипты в нем, не могут снизить процесс?
Спецификация хостинга ДОЛЛАРА описывает, как разместить ДОЛЛАР в отдельном ApplicationDomain. Это позволяет разъединять и разгружать время выполнения сценария и ограничивать определенные операции через CAS (например, Я могу ограничить доступ к файловой системе или запретить использование отражения).
Но есть ли также пути к, например: - ограничивают максимальный объем памяти, используемый сценарием? - ограничивают количество потоков, созданных сценарием? - обнаруживают заведенные в тупик сценарии?
Я думаю, что такое мелкомодульное управление могло быть возможным использованием неуправляемого .NET, размещающего API, который был разработан для SQL-сервера. Действительно ли это - направление для движения? Есть ли проекты с открытым исходным кодом для этого вида общей игры в песочнице .NET?
Вот несколько потенциально полезных ссылок, которые я нашел:
Посмотрите на Terrarium - это игра, где вы создаете своих собственных автономных животных на языке .NET, и они телепортируются на другие сетевые компьютеры вместе со сборками, в которых они описаны. Цель состоит в том, чтобы ваше животное захватило всю экосистему, либо убив все остальное, либо стратегически управляя пищевыми ресурсами.
Насколько я помню, любое животное, потратившее на "размышления" более 0,n секунд или n кб памяти, удаляется.