Довольно простой вопрос. Я работаю над проектом, чтобы иметь несколько операционных систем (все Linux) на одном компьютере с использованием вложенных томов btrfs, чтобы пользователь мог загружаться в удобной для него среде. Поскольку все они используют ядро Linux, можно ли скомпилировать одно ядро и использовать его для всех операционных систем на машине? Есть ли что-то специфическое для ОС, и если да, то это только модули ядра, которые требуются ОС, или это глубже?
Мое текущее предположение состоит в том, что ядро совершенно не зависит от ОС и что до тех пор, пока все модули были включены для обеих ОС в одно общее ядро, они могли совместно использовать ядро и, следовательно, совместно использовать обновления и изменения, внесенные в ядро.
OpenVZ великолепен и обеспечивает безопасное, стабильное и простое в использовании решение для контейнеров. Однако есть также контейнеры Linux, которые встроены в Linux, и в последних выпусках ядра был достигнут большой прогресс.
В контейнерах Linux есть много утилит, которые вы можете использовать, включая lxc, vzctl (из OpenVZ), libvirt и docker.
Контейнеры Linux позволяют запускать процессы (и пользователей, если вы используете пространства имен пользователей) в отдельных пространствах имен. Это дает ощущение отдельной системы, работающей на одном ядре, и позволяет вам добавлять ограничения к ресурсам с помощью контрольных групп. Контейнеры Linux чрезвычайно легкие по сравнению с аппаратными виртуальными машинами, такими как Xen, Qemu / KVM или VMWare.
OpenVZ делает именно то, о чем вы просите.
Он создает контейнеры, которые на 100% независимы друг от друга, но используют одно и то же модифицированное ядро.
Единственный недостаток полной виртуализации в том, что при использовании контейнеров нельзя установить ничего, кроме Linux.