我们正在开发一个在线评判系统来测试学生的计算几何问题解决方案。此时我们需要一个测试环境:我们必须限制时间和内存使用(仅接受最佳解决方案),并且由于我们运行不受信任的代码,我们必须禁止一些系统调用(如fork),禁用网络等。对于这项任务,这将是最简单的(开源)虚拟化解决方案吗?据我所知,我将不得不使用修补内核(如OpenVZ),或者可以找到一个简单的工具,它将接受限制和不受信任的程序作为其参数并运行它? 附:如果它很重要 - 我们运行c ++代码,但是,我们希望使用通用解决方案。
答案 0 :(得分:1)
如果问题仅涉及stdin / stdout,例如读取一些输入然后计算输出,你可以看一下seccomp它真的很简单。
同样在不久的将来,second mode of seccomp可能会进入内核,这会让你更灵活。