Die Abschottung wichtiger Systemressourcen mit Prozessen in eigenen Namensräumen hat in der Betriebssystemwelt eine lange Historie. Mit chroot gibt es etwa im Linux-Kernel bereits seit jeher eine Möglichkeit zur Isolation von Anwendungen. Den Ursprung hat chroot aber bereits im Jahr 1979 als Teil der Unix- Version 7. Der Begriff "Isolation" bezieht sich dabei zunächst ausschließlich auf das Wurzeldateisystem. So lässt sich einem Programm ein anderes Dateisystem darstellen, etwa um zu verhindern, dass unberechtigt und ungewollt auf wichtige Systemressourcen oder -einstellungen zugegriffen werden kann. Das ist vor allem für Anwendungen interessant, die als root-Benutzer laufen und keine entsprechenden Berechtigungen auf dem Hostsystem erhalten sollen.
Die heute zum Betrieb von Containern genutzten Techniken zur Prozessisolation haben ihren Ursprung Anfang der 2000er Jahre. Seit 2002 gibt es im Linux-Kernel zusätzlich zu chroot Namensräume für das Dateisystem. Damit lassen sich in Prozessgruppen unterschiedliche Dateisysteminhalte darstellen, etwa für das ganze Wurzeldateisystem oder nur spezielle Pfade. Im Lauf der Zeit wurde neben dem Dateisystem die Nutzung weiterer Ressourcen in Namensräumen ermöglicht. Der Linux-Kernel unterstützt aktuell acht unterschiedliche Namensräume für Ressourcen zur Prozessisolation [1].
Linux-Namensräume ermöglichen die Isolation von Prozessen und die Abstraktion von Ressourcen, die diese Prozesse verwenden. Der bereits erwähnte Mount-Namensraum erlaubt die Auswahl der Mount- Punkte, die innerhalb der Prozessgruppe dargestellt werden. Mittels sogenannter Bind-Mounts lassen sich damit im Grunde beliebige Dateisysteminhalte realisieren. Der PID-Namensraum abstrahiert die Prozess- IDs und gibt innerhalb der Prozessgruppe dem ersten Prozess der Gruppe die ID 1 und damit die Funktionalität des Init- Prozesses. Die
...Der komplette Artikel ist nur für Abonnenten des ADMIN Archiv-Abos verfügbar.