Пространства имен Linux
-
Основы пространств имен Linux
- Пространства имен — это функция ядра Linux для изоляции ресурсов и процессов.
- Пространства имен позволяют процессам видеть разные наборы ресурсов, в зависимости от их типа.
- Пространства имен являются ключевым аспектом работы контейнеров в Linux.
-
История и типы пространств имен
- Пространства имен были вдохновлены Plan 9 и появились в ядре 2.4.19 в 2002 году.
- С 2006 года были добавлены дополнительные пространства имен, и в версии 3.8 была завершена поддержка контейнеров.
- В ядре 5.6 существует 8 типов пространств имен, каждый из которых предоставляет уникальный набор ресурсов.
-
Типы пространств имен
- Пространство имен PID предоставляет независимые идентификаторы процессов.
- Сетевое пространство имен позволяет изолировать сетевой стек.
- Пространство имен IPC изолирует процессы от межпроцессного взаимодействия.
- Пространство имен UTS создает видимость разных имен хостов для разных процессов.
- Пользовательские пространства имен обеспечивают изоляцию привилегий и идентификацию пользователей.
- Пространство имен контрольной группы скрывает идентификатор контрольной группы процесса.
- Пространство имен Time позволяет процессам видеть разное системное время.
-
Детали реализации и системные вызовы
- Ядро Linux использует символические ссылки для идентификации пространств имен.
- Системные вызовы Clone, Setns и Разрушение позволяют управлять пространствами имен.
-
Применение и рекомендации
- Пространства имен используются в контейнерах, таких как Docker, и в приложениях, таких как Google Chrome.
- Существуют рекомендации по использованию пространств имен, включая справочные страницы и выступления.