【发布时间】:2014-07-30 16:04:02
【问题描述】:
现在有很多适用于 Linux 的容器机制:LXC、Docker、lmctfy、OpenVZ、Linux-VServer 等。所有这些都涉及内核补丁或最近添加的 Linux 功能,如 cgroups 和 seccomp。
我想知道是否可以纯粹在用户空间中实现类似的(操作系统级)虚拟化。
这已经有一个先例 - 用户模式 Linux。但是,它还需要特殊的内核功能才能相当快速和安全。此外,它实际上是在用户空间中运行的 Linux 内核,这使得网络设置相当困难。
我更多地考虑将充当衍生程序和 Linux 内核之间的中介的进程。您将使用作为参数生成的程序开始该过程;它会跟踪他们进行的系统调用,并阻止或重定向访问真实根文件系统、真实网络设备等的尝试,而不依赖于特殊的内核功能。
这样的事情是否可以安全地实现,并且可以由受限用户(即不像 chroot 那样具有特权)有效地调用?
总而言之:LXC 之类的纯用户空间实现是否可行?如果是,在用户空间这样做会受到什么惩罚?如果没有,为什么不呢?
【问题讨论】:
标签: linux containers virtualization