这个问题很简单。我正在开发一个项目,使用 btrfs 子卷在同一台机器上安装多个操作系统(全部为 Linux),以便用户可以启动到他们熟悉的环境。由于它们都使用 Linux 内核,是否可以编译单个内核并将其用于机器上的所有操作系统?是否有任何特定于操作系统的内容?如果有,是否只是操作系统所需的内核模块,还是比这更深入?
我目前的假设是内核与操作系统完全独立,只要一个共享内核中包含两个操作系统的所有模块,它们就可以共享内核,从而共享对内核所做的更新和更改。
答案1
答案2
OpenVZ 非常棒,它为容器提供了安全、稳定且易于使用的解决方案。不过,Linux 中也有内置的 Linux 容器,而且在最近的内核版本中取得了很大进展。
Linux 容器有许多可用的用户空间实用程序,包括 lxc、vzctl(来自 OpenVZ)、libvirt 和 docker。
Linux 容器允许您在单独的命名空间中运行进程(如果您使用用户命名空间,则还允许运行用户)。这让您感觉就像在同一个内核上运行了一个单独的系统,并且允许您使用 cgroups 对资源添加限制。与 Xen、Qemu/KVM 或 VMWare 等硬件虚拟机相比,Linux 容器非常轻量。