Что такое «/ run / lock» и «/ run / shm»?

69

Я просто хочу знать, где и как /run/lock и /run/shm могут помочь нашему ПК.

$ df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              56G   13G   41G  24% /
udev                  983M  4.0K  983M   1% /dev
tmpfs                 396M  840K  395M   1% /run
none                  5.0M  8.0K  5.0M   1% /run/lock
none                  990M  164K  990M   0% /run/shm
    
задан Ten-Coin 29.07.2012 в 05:49
источник

1 ответ

93
  

Короткий ответ: они хранят временные системные файлы, включая блокировки устройств и сегменты памяти, разделяемые между различными процессами. Не беспокойтесь, они обычно используют долю своего «размера», показанного df

  1. /run - это, как правило, временная файловая система (tmpfs), находящаяся в оперативной памяти (aka «ramdisk»); он предназначен для хранения «временных» системных или государственных файлов, которые могут иметь решающее значение, но не требуют сохранения на перезагрузках.

    • /run - фактически довольно новое новшество, и было добавлено пару лет назад, чтобы заменить несколько созданных tmpfs (включая /var/lock и /dev/shm ) с одним унифицированным корневым tmpfs.
    • Основными местами /run заменяются:
    /var/run → /run
    /var/lock → /run/lock
    /dev/shm → /run/shm [currently only Debian plans to do this]
    /tmp → /run/tmp [optional; currently only Debian plans to offer this] 
    
  2. /run/lock (ранее /var/lock ) содержит файлы блокировки , то есть файлы, указывающие, что используется совместно используемое устройство или другой системный ресурс и содержит идентификатор процесса (PID) с его использованием; это позволяет другим процессам правильно координировать доступ к общему устройству.

  3. /run/shm (ранее /dev/shm ) является временной общедоступной общей памятью. Строго говоря , он предназначен для хранения программ, использующих API общей памяти POSIX. Это облегчает так называемую межпроцессную коммуникацию (IPC) , где различные процессы могут совместно использовать и обмениваться данными через общую область памяти, которая в этом случае обычно является обычным файлом, который хранится в «ramdisk». Конечно, это может быть и использовалось и в других творческих целях;)

  4. Не беспокойтесь о размере : важно, что многие люди, работающие с df -h , и зная, что /run поддерживается ОЗУ, шокированы тем, что их драгоценная память «растрачивается» этими таинственными папки. Так же, как Linux съел мой миф RAM , хотя это неверное мнение.

    • Показанный размер - это только максимум , который можно использовать
    • По умолчанию он равен 50% физической памяти.
    • Фактически используется только столько, сколько показано в столбце Used , который в приведенном выше скриншоте меньше 1 мегабайта.
    • Вы можете использовать команду ipcs -m , чтобы убедиться, что фактические сегменты разделяемой памяти соответствуют совпадению df , а также посмотреть, какие PID используют их.
    • Как и ваша обычная оперативная память, /run также в конечном итоге поддерживается вашим свопом, поэтому, если вы используете /run/shm для «более быстрого» времени компиляции, помните об этом;)
ответ дан izx 29.07.2012 в 07:41
источник