Изоляция системных ресурсов в Linux с помощью пространств имён (namespaces) работает следующим образом: механизм создаёт изолированные «песочницы» для процессов, каждая из которых функционирует независимо от других. 5 В результате каждая группа процессов может иметь собственное представление о системных ресурсах. 5
Некоторые виды пространств имён и их назначение:
- PID Namespace. 2 Изолирует идентификаторы процессов (PID). 2 Процессы внутри этого пространства видят свои собственные PID, начиная с 1, и не могут видеть процессы вне этого пространства. 2
- Mount Namespace. 2 Изолирует точки монтирования файловой системы. 2 Процессы внутри видят собственную файловую систему или её часть, не затрагивая хост-систему. 2
- UTS Namespace. 2 Позволяет изолировать имена узлов и доменов, то есть hostname и domainname. 2
- Network Namespace. 2 Изолирует сетевые интерфейсы, маршруты, таблицы ARP и т. д.. 2 Процессы внутри имеют свой собственный сетевой стек. 2
- IPC Namespace. 2 Изолирует межпроцессное взаимодействие с помощью System V IPC. 2
- User Namespace. 2 Изолирует идентификаторы пользователей и групп. 2
- Cgroup Namespace. 2 Изолирует видимость cgroups. 2 Процессы видят только свои собственные cgroups. 2
- Time Namespace. 2 Позволяет изолировать системное время, чтобы процессы могли видеть другое время, нежели хост-система. 2
Пространства имён используются современными системами контейнеризации (Docker, LXC и другими) при запуске программ. 3