![Linux 内核可以在两个操作系统之间共享吗?](https://linux22.com/image/653017/Linux%20%E5%86%85%E6%A0%B8%E5%8F%AF%E4%BB%A5%E5%9C%A8%E4%B8%A4%E4%B8%AA%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E4%B9%8B%E9%97%B4%E5%85%B1%E4%BA%AB%E5%90%97%EF%BC%9F.png)
这个问题很简单。我正在开发一个项目,使用 btrfs 子卷在同一台机器上安装多个操作系统(全部为 Linux),以便用户可以启动到他们熟悉的环境。由于它们都使用 Linux 内核,是否可以编译单个内核并将其用于机器上的所有操作系统?是否有任何特定于操作系统的内容?如果有,是否只是操作系统所需的内核模块,还是比这更深入?
我目前的假设是内核与操作系统完全独立,只要一个共享内核中包含两个操作系统的所有模块,它们就可以共享内核,从而共享对内核所做的更新和更改。
答案1
答案2
OpenVZ 非常棒,它为容器提供了安全、稳定且易于使用的解决方案。不过,Linux 中也有内置的 Linux 容器,而且在最近的内核版本中取得了很大进展。
Linux 容器有许多可用的用户空间实用程序,包括 lxc、vzctl(来自 OpenVZ)、libvirt 和 docker。
Linux 容器允许您在单独的命名空间中运行进程(如果您使用用户命名空间,则还允许运行用户)。这让您感觉就像在同一个内核上运行了一个单独的系统,并且允许您使用 cgroups 对资源添加限制。与 Xen、Qemu/KVM 或 VMWare 等硬件虚拟机相比,Linux 容器非常轻量。