Контрольные группы позволяют контролировать ресурсы, доступные процессу, а пространства имен (namespaces) — ресурсы, которые он видит. Помещение процесса в пространство имен позволяет ограничить видимые ему ресурсы.
Linux namespace – это абстракция над ресурсами в операционной системе. Мы можем думать об namespace, как о ящике. В этом ящике находятся системные ресурсы, которые точно зависят от типа ящика (namespace). В настоящее время существует семь типов пространств имён (namespaces): Cgroups, IPC, Network, Mount, PID, User, UTS.
На сегодняшний день Linux поддерживает несколько видов пространств имен:
- систему разделения времени Unix (Unix Timesharing System, UTS) — звучит довольно сложно, но фактически это пространство имен служит для изоляции хост-имени и доменного имени системы с точки зрения процесса;
- идентификаторы процессов (Process IDs, PID);
- точки монтирования;
- сеть;
- идентификаторы пользователей и групп;
- обмен информацией между процессами (inter-process communication, IPC);
- контрольные группы.
Процесс всегда относится ровно к одному пространству имен каждого типа. При запуске системы Linux в ней есть одно пространство имен каждого типа,но, как вы увидите, можно создавать пространства имен и распределять по ним процессы. Просмотреть пространства имен на машине можно с помощью команды lsns.