В Linux различные процессы могут обмениваться информацией с помощью доступа к разделяемой области памяти либо очереди сообщений. Для доступа к общему множеству идентификаторов для этих механизмов два процесса должны входить в одно пространство имен обмена информацией между процессами (inter-process communications, IPC). Вообще говоря, нежелательно, чтобы контейнеры могли обращаться к разделяемой памяти друг друга, поэтому им назначаются отдельные пространства имен IPC. Чтобы посмотреть на это в действии, создайте разделяемый блок памяти и просмотрите текущее состояние IPC с помощью команды ipcs: ``` [root@whoisdeveloper ~]# ipcmk -M 1000 Shared memory id: 0 [root@whoisdeveloper ~]# ipcs ------ Message Queues -------- key msqid owner perms used-bytes messages ------ Shared Memory Segments -------- key shmid owner perms bytes nattch status 0xf90c1e43 0 root 644 1000 0 ------ Semaphore Arrays -------- key semid owner perms nsems ``` В этом примере созданный новый блок разделяемой памяти (идентификатор которого указан в столбце shmid) отображается последним в блоке «Разделяемые сегменты памяти» (Shared Memory Segments). Процесс с отдельным пространством имен IPC не видит ни одного из этих объектов IPC: ``` [root@whoisdeveloper ~]# unshare --ipc sh sh-4.4# ipcs ------ Message Queues -------- key msqid owner perms used-bytes messages ------ Shared Memory Segments -------- key shmid owner perms bytes nattch status ------ Semaphore Arrays -------- key semid owner perms nsems ````