digital-garden/dev/linux/Namespace.md
Struchkov Mark bd6b7c1492
All checks were successful
continuous-integration/drone/push Build is passing
Дочерние заметки
2024-09-14 23:38:42 +03:00

4.0 KiB
Raw Permalink Blame History

aliases tags date zero-link parents linked
maturity/🌱
2024-03-20
../../meta/zero/00 Linux
Контейнерная виртуализация

Namespaces в Linux это функция ядра, которая ограничивает видимость и доступность ресурсов процессам. Каждый namespace инкапсулирует определенный аспект системы, позволяя процессам работать в изолированной среде, как если бы они были единственными процессами в системе.

Это ключевая технология для реализации контейнеров, таких как ../../meta/zero/00 Docker и LXC, поскольку она позволяет каждому контейнеру иметь собственные сетевые интерфейсы, файловые системы, идентификаторы пользователей и процессов, не влияя на остальную часть системы.

Linux поддерживает несколько типов namespaces:

  1. PID (Process ID) namespaces: Изолируют пространство идентификаторов процессов. Это означает, что процессы в разных PID namespaces могут иметь одинаковые PID, но будут рассматриваться как разные процессы внутри их namespaces.
  2. Network namespaces: Изолируют сетевые интерфейсы, таблицы маршрутизации, firewall правила, и прочие сетевые ресурсы. Это позволяет каждому namespace иметь собственный набор виртуальных сетевых интерфейсов и свою собственную сетевую конфигурацию.
  3. Mount namespaces: Изолируют точки монтирования файловых систем. Это позволяет процессам в разных mount namespaces видеть разные файловые системы, что обеспечивает дополнительный уровень изоляции файлов и директорий.
  4. IPC (Inter-Process Communication) namespaces: Изолируют IPC ресурсы, такие как очереди сообщений, разделяемые память и семафоры, позволяя процессам в разных IPC namespaces иметь раздельные IPC ресурсы.
  5. UTS (UNIX Time-sharing System) namespaces: Позволяют иметь изолированные имена узлов и доменные имена. Это означает, что каждый UTS namespace может иметь свое собственное имя хоста и NIS доменное имя.
  6. User namespaces: Изолируют идентификаторы пользователей и групп. В таком namespace, процесс может иметь привилегии root внутри namespace, не имея их за его пределами.

Чтобы увидеть namespaces нужно в папке /proc/*/ns вызвать команду sudo ls -la


Мета информация

Область:: ../../meta/zero/00 Linux Родитель:: Контейнерная виртуализация Источник:: Автор:: Создана:: 2024-03-20

Дополнительные материалы

Дочерние заметки