Per impostazione predefinita, ogni processo in esecuzione sul sistema Linux ha le proprie pagine di memoria private. Un processo non può accedere alle pagine di memoria utilizzate da un altro processo. Il kernel mantiene le proprie aree di memoria. Per motivi di sicurezza, nessun processo può accedere alla memoria utilizzata dai processi del kernel. Per facilitare la condivisione dei dati, è possibile creare pagine di memoria condivisa. Più processi possono leggere e scrivere da e verso un'area di memoria condivisa comune. Il kernel mantiene e amministra le aree di memoria condivisa e consente ai singoli processi di accedere all'area condivisa.
Il comando ipcs stampa il rapporto sulle code di messaggi di comunicazione interprocesso (IPC), sui segmenti di memoria condivisa e sugli array di semafori per i quali il processo corrente ha accesso in lettura. Le opzioni possono essere utilizzate per specificare il tipo di risorse su cui eseguire il report e il formato di output del report. Il comando ipcs consente di visualizzare le pagine di memoria condivisa correnti sul sistema. Ecco l'output di un comando ipcs di esempio:
# ipcs -m ------ Shared Memory Segments -------- key shmid owner perms bytes nattch status 0x00000000 0 rich 600 52228 6 dest 0x395ec51c 1 oracle 640 5787648 6
Ogni segmento di memoria condivisa ha un proprietario che ha creato il segmento. Ogni segmento ha anche un'impostazione di autorizzazioni Linux standard che imposta la disponibilità del segmento per altri utenti. Il valore chiave viene utilizzato per consentire ad altri utenti di accedere al segmento di memoria condivisa.
Esempi di comando ipcs
1. Per vedere il segmento della memoria condivisa:
# ipcs -m
2. Per vedere la coda dei messaggi:
# ipcs -q
3. Per vedere gli array di semafori:
# ipcs -s
4. Per vedere tutto:
# ipcs -a
5. Per avere il formato di output:
# ipcs -t time -p pid -c creator -l limits -u summary