LINUX.ORG.RU

Безопасное окружение для проверки решений


0

0

Задача следующая: необходимо проверять решения задач приходящие от пользователей. Необходимо чтобы в программе была полная свобода действий в коде, однако нельзя допускать риск нарушения работы сервера проверок. Как лучше реализовать такое --- ведь это реализовано на многих сайтах, например на http://codegolf.com/.

Первое что лезет в голову - виртуальная машина.

anonymous

ИМХО, оно не зря лезет. 
Тот самый вариант :)

anonymous
()

> Необходимо чтобы в программе была полная свобода действий в коде

зависит от того что входит в свободу действий. Возможно просто достаточно создавать юзера для задачи, установить квоты, ulimit. Если задача сможет сломать систему, то будет повод послать багрепорт на ядро

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

> Если задача сможет сломать систему, то будет повод послать багрепорт на ядро

Сорри за оффтоп, не смог удержаться. :) Дом тоже не стоит запирать на замок, будет повод обратиться в милицию.

outdoor_profanity
()
Ответ на: комментарий от stassats

>Правильно, кому надо замок не помешает.

неправильно. Иногда, тот кому не надо видит, что замка нет, и ему становится сразу надо.

anonymous
()

Грузить через LD_PRELOAD кастрированные версии системных вызовов. Хотя это ещё тот изврат...

gaa ★★
()
Ответ на: комментарий от INFOMAN

> Настоящие ЛОРовцы посты не читают.

это про меня :)

annoynimous ★★★★★
()

Я использовал UML, когда решал аналогичную задачу. Пока никто не сломал (хотя вроде и не пытался), программами типа while(1){fork(); malloc(1);} система не валится. Проверку лучше делать в несколько потоков, иначе получается очень медленно.

kmeaw ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.