Есть ли способ создать среду песочницы внутри C ++, где вы можете:
— запускать процессы в
— Загрузить динамические библиотеки в (Linux)
Динамические библиотеки предпочтительнее, потому что простое взаимодействие между основным процессом и изолированными процессами.
Процесс в песочнице не должен быть в состоянии поместить память в кучу или взаимодействовать с ядром / операционной системой. Вместо этого основной процесс предоставит интерфейс для этих вещей.
Есть какой-либо способ сделать это? Я мог бы создать интерпретатор сценариев, но это отнимет уйму скорости. Я бы хотел, чтобы потеря скорости была минимальной.
Вы можете использовать некоторое программное обеспечение, которое обеспечивает среду песочницы. Использование может предоставить ограничение памяти, время и т. Д. И другие параметры для приложения. Я использовал файл песочницы, когда создал онлайн-судью, и мне нужно было выполнять файлы c ++ других пользователей в ограниченной среде.
Других решений пока нет …