Ganz einfache Frage. Ich arbeite an einem Projekt, bei dem mehrere Betriebssysteme (alle Linux) auf derselben Maschine laufen sollen, wobei BTRFS-Subvolumes verwendet werden, damit der Benutzer in die Umgebung booten kann, mit der er vertraut ist. Da alle den Linux-Kernel verwenden, kann der einzelne Kernel kompiliert und für alle Betriebssysteme auf der Maschine verwendet werden? Gibt es etwas Betriebssystemspezifisches und wenn ja, sind es nur die Kernelmodule, die vom Betriebssystem benötigt werden, oder geht es tiefer?
Ich gehe derzeit davon aus, dass der Kernel völlig unabhängig vom Betriebssystem ist und dass beide Betriebssysteme den Kernel und damit auch die Aktualisierungen und Änderungen am Kernel gemeinsam nutzen können, solange alle Module für beide Betriebssysteme in einem gemeinsamen Kernel enthalten sind.
Antwort1
OpenVZtut genau das, was Sie verlangen.
Es erstellt Container, die zu 100 % unabhängig voneinander sind, aber denselben modifizierten Kernel verwenden.
Der einzige Nachteil gegenüber der vollständigen Virtualisierung besteht darin, dass Sie bei der Verwendung von Containern nichts anderes als Linux installieren können.
Antwort2
OpenVZ ist großartig und bietet eine sichere, stabile und einfach zu verwendende Lösung für Container. Es gibt jedoch auch Linux-Container, die in Linux integriert sind, und in den letzten Kernel-Versionen wurden große Fortschritte erzielt.
Linux-Container verfügen über zahlreiche Userspace-Dienstprogramme, die Sie nutzen können, darunter lxc, vzctl (von OpenVZ), libvirt und Docker.
Linux-Container ermöglichen es Ihnen, Prozesse (und Benutzer, wenn Sie Benutzernamensräume verwenden) in separaten Namenräumen auszuführen. Dies vermittelt das Gefühl eines separaten Systems, das auf demselben Kernel ausgeführt wird, und ermöglicht es Ihnen, mithilfe von Cgroups Einschränkungen für Ressourcen hinzuzufügen. Linux-Container sind im Vergleich zu virtuellen Hardwaremaschinen wie Xen, Qemu/KVM oder VMWare extrem leichtgewichtig.