Boxjan

填 越填越深的坑 啊

  • 首页
  • 归档
  • 分类
  • 友链
  • 关于

带有标签为:go, linux 的文章

共找到结果 3 条
2019-11-02
0 comment

用 seccomp 去限制 Go 语言中的 ForkExec 所产生的子进程

本文所有内容均在 linux 环境下(Ubuntu 18.04)。 Go 提倡使用 Gorotuine 来替代系统所提供的 线程、进程,所以在语言中并没有提供直接 fork 或类似的方法。 只有提供了 ForkExec 及类似(包装后)的方法。 为了限制 syscall 的调用,go 语言只能使用 ptrace 进行捕捉后判断,这样使得效率会低下,(可以使用 time strace 做些测试)。那必然就要使用 seccomp,关于 seccomp 的一些东西可以看 开发OJ之沙箱 — syscall 限制; […]

继续阅读 >>
2019-08-02
0 comment

开发OJ之沙箱 — 改用 golang

Why go? 原因很简单,因为 go 好用。 OJ 的 web 端是用的Laravel,而其他部分打算用的是 Go ,虽然 go 能便捷的与 C/C++ 集成在一起,但是并不似很方便,如果涉及到指针也很容易出错,所以就考虑将沙箱也一起用 go 修改,如果以后心血来潮,做 windows 的支持,相比 C/C++ 语言也会方便的多。 改进了什么 Go 语言 为不同的系统提供了不同的API,在 Linux 下 亦有提供 getrusage,setrlimit 这类的API。 新的也考虑引入 cgroup这个资 […]

继续阅读 >>
2019-03-06
0 comment

开发OJ之沙箱 — 安装,使用

这段时间大部分在看Go语言的一些东西,为写 判题 和 判题队列管理 做着准备。这几天将 C++ 写的沙箱以动态链接库的形式与Go语言进行整合,这里记录一些遇到的问题。 大改 review 了代码之后发现 沙箱核心代码中并没有用到 std::string 的东西,为了性能就砍掉了一部分,将原有使用string的改为使用const char * , 但是在main函数中仍然在使用(为了偷懒。 接着是 Go语言只支持直接使用 C 的代码,这并不是说C++不行,编译成动态链接库之后, 提供一个C语言类型的接口即可, […]

继续阅读 >>
© 2018 - JanBox的小站 - 粤 ICP 备 18102102 号
14 queries, run in 0.038 in seconds.
Powered by  Boxjan & wordpress