Информация, которую вы читаете из файловой системы proc, не хранится ни на одном носителе (даже в оперативной памяти), поэтому обновлять нечего.
Цель прока файловой системы , чтобы позволить Пользовательским программам для получения или набора данных ядра , используя простую и знакомую файловую систему семантики ( open, close, read, write, lseek), даже если данные , которые считываются или записываются не находятся на каком - либо носителе. Это проектное решение было сочтено лучшим (например, удобочитаемым и легким для написания сценариев) для получения и установки данных, формат которых нельзя было указать заранее, чем для реализации чего-либо, такого как OID в кодировке ASN1, что также работало бы хорошо.
Данные, которые вы видите при чтении из файловой системы proc, генерируются на лету, когда вы выполняете чтение с самого начала файла. То есть выполнение чтения приводит к тому, что данные генерируются функцией обратного вызова ядра, специфичной для файла, который вы читаете. Выполнение lseekв начале файла и повторное чтение вызывает еще один вызов обратного вызова, который снова генерирует данные. Точно так же, когда вы записываете в доступный для записи файл в файловой системе proc, вызывается функция обратного вызова, которая анализирует входные данные и устанавливает переменные ядра. Входные данные в необработанном виде не сохраняются.
Вышесказанное - лишь немного более многословный способ выразить то, что так лаконично говорит Хауке Лагинг. Я предлагаю вам принять его ответ.
Если вам нужно доказать, что этот ответ верный, попробуйте запустить inotify для «файла» или каталога в / proc (или / sys) - это очень плохо, это сделает udev совершенно ненужным, если вы просто скажете простой процесс inotify для запуска x, когда что-то появляется в y
technosaurus
24
Он обновляется при каждом доступе. Вы видите состояние ядра в тот момент. Вот почему размер, показанный для «файлов», не является реальным размером. Реальный размер может измениться и определяется в момент доступа к файлу.
Можно сказать, что он может не обновляться в течение нескольких дней. Если вы не смотрите на это. :-)
+1. Это немного похоже на поговорку: «Если дерево падает в лес, и его никто не слышит, издает ли он звук?», Т. Е. «Если есть файловая система proc и никто ее не читает, существует ли она? ?».
Джонатан Бен-Авраам
@ JonathanBen-Avraham Вы могли бы сказать это о каждой FS, не так ли? :-) Но имейте в виду, что доступ к proc гораздо больше, чем можно было бы предположить. Прокомментируйте это в fstab, перезагрузите компьютер, и весь ад вырвется на свободу ...
Hauke Laging
Я имел в виду, что данные в файловой системе, поддерживаемой носителями, существуют, даже когда никто не читает их в любой конкретный момент. Он не появляется в момент чтения как proc и sys. Вы правы, у proc много читателей. Тем не менее, sys - это схожая файловая система, которую вы можете комментировать из fstab, по крайней мере, в небольших системах и по-прежнему запускать Ok. Приветствия.
Джонатан Бен-Авраам
4
Так кошка мертва или нет? Посмотри и посмотри. Это мертвый Джим. Бедная кошка.
0x7c0
@HaukeLaging У меня нет /proc/файла в моем файле fstab Hi
Ответы:
Информация, которую вы читаете из файловой системы proc, не хранится ни на одном носителе (даже в оперативной памяти), поэтому обновлять нечего.
Цель прока файловой системы , чтобы позволить Пользовательским программам для получения или набора данных ядра , используя простую и знакомую файловую систему семантики (
open
,close
,read
,write
,lseek
), даже если данные , которые считываются или записываются не находятся на каком - либо носителе. Это проектное решение было сочтено лучшим (например, удобочитаемым и легким для написания сценариев) для получения и установки данных, формат которых нельзя было указать заранее, чем для реализации чего-либо, такого как OID в кодировке ASN1, что также работало бы хорошо.Данные, которые вы видите при чтении из файловой системы proc, генерируются на лету, когда вы выполняете чтение с самого начала файла. То есть выполнение чтения приводит к тому, что данные генерируются функцией обратного вызова ядра, специфичной для файла, который вы читаете. Выполнение
lseek
в начале файла и повторное чтение вызывает еще один вызов обратного вызова, который снова генерирует данные. Точно так же, когда вы записываете в доступный для записи файл в файловой системе proc, вызывается функция обратного вызова, которая анализирует входные данные и устанавливает переменные ядра. Входные данные в необработанном виде не сохраняются.Вышесказанное - лишь немного более многословный способ выразить то, что так лаконично говорит Хауке Лагинг. Я предлагаю вам принять его ответ.
источник
Он обновляется при каждом доступе. Вы видите состояние ядра в тот момент. Вот почему размер, показанный для «файлов», не является реальным размером. Реальный размер может измениться и определяется в момент доступа к файлу.
Можно сказать, что он может не обновляться в течение нескольких дней. Если вы не смотрите на это. :-)
источник
/proc/
файла в моем файле fstab Hi