/proc
это файловая система , поскольку пользовательские процессы могут перемещаться по нему с помощью знакомых системных вызовов и библиотечных вызовов, как opendir()
, readdir()
, chdir()
и getcwd()
. Даже open()
, read()
и close()
работа на много из «файлов» , которые появляются в /proc
. Для большинства целей и почти для всех целей /proc
это файловая система, несмотря на то, что ее файлы не занимают блоков на каком-либо диске.
Полагаю, нам всем следует уточнить, какое определение термина «файловая система» мы используем в настоящее время. В контексте ext4, когда мы пишем «файловая система», мы, вероятно, говорим о комбинации расположения дисковых блоков, спецификации метаданных о дисковых блоках, которые также находятся где-то на диске, и кода, который имеет дело с это расположение на диске. В контексте /usr
, /tmp
, /var/run
и так далее, мы пишем о понимании или общей концепции о том , как назвать некоторые вещи. Эти два использования термина «файловая система» действительно совершенно разные. /proc
как вы уже заметили, это действительно второй тип «файловой системы».
/proc
если только вы не думаете, что файлы всегда имеют резервную копию диска (или ленту, или CD, или что угодно) 9. Они не всегда - вспомните RAM-диски. Кроме того, даже/home
скажем, последовательность открытия / записи / закрытия с «реальным» файлом не всегда может означать, что соответствующие изменения, предназначенные для постоянного отражения состояния этого файла на хранилище на диске, уже сделаны и завершены