Почему proc называется файловой системой?

20

procФайловая система позволяет ядру передавать информацию о каждом работающем процессе на системе Linux.

Почему procназывается файловая система? Это не настоящая файловая система, как ext4. Это просто набор файлов, содержащих информацию о запущенных процессах.

Махлуф ГАРБИ
источник

Ответы:

25

/procэто файловая система , поскольку пользовательские процессы могут перемещаться по нему с помощью знакомых системных вызовов и библиотечных вызовов, как opendir(), readdir(), chdir()и getcwd(). Даже open(), read()и close()работа на много из «файлов» , которые появляются в /proc. Для большинства целей и почти для всех целей /procэто файловая система, несмотря на то, что ее файлы не занимают блоков на каком-либо диске.

Полагаю, нам всем следует уточнить, какое определение термина «файловая система» мы используем в настоящее время. В контексте ext4, когда мы пишем «файловая система», мы, вероятно, говорим о комбинации расположения дисковых блоков, спецификации метаданных о дисковых блоках, которые также находятся где-то на диске, и кода, который имеет дело с это расположение на диске. В контексте /usr, /tmp, /var/runи так далее, мы пишем о понимании или общей концепции о том , как назвать некоторые вещи. Эти два использования термина «файловая система» действительно совершенно разные. /procкак вы уже заметили, это действительно второй тип «файловой системы».

Брюс Эдигер
источник
9
Нет смысла использовать страшные кавычки для файлов, /procесли только вы не думаете, что файлы всегда имеют резервную копию диска (или ленту, или CD, или что угодно) 9. Они не всегда - вспомните RAM-диски. Кроме того, даже /homeскажем, последовательность открытия / записи / закрытия с «реальным» файлом не всегда может означать, что соответствующие изменения, предназначенные для постоянного отражения состояния этого файла на хранилище на диске, уже сделаны и завершены
Хаген фон Эйцен
10
tl; dr: потому что это система файлов?
Йорг Миттаг
1
Обратите внимание, что это также объясняет поговорку «В Linux все является файлом».
dr01
Это файловая система, аналогичная тому, что экран является «рабочим столом». Компьютерная терминология изобилует метафорами.
Бармар
18

это просто область файлов, содержащих информацию

Но это именно то , что файловая система находится . Файловые системы не должны быть доступны для записи, и они не должны постоянно находиться в хранилище.

Примечание. Существует различие между procfs(реализацией псевдофайловой системы в ядре) и ее обычной точкой монтирования /proc. Теоретически можно смонтировать procfsгде угодно, но это редко. Из-за этого люди часто говорят о том, /procкогда они действительно имеют в виду procfs.

procfsназывается псевдофайловой системой, потому что файлы в procfsне создаются обычными операциями файловой системы, а добавляются и удаляются самой реализацией файловой системы в зависимости от того, что происходит в другом месте ядра.

CJM
источник
так почему / etc / boot например не называются файловой системой ???
Махлуф ГАРБИ
7
Потому что они каталоги в файловой системе. (Ну, /bootчасто это отдельная файловая система, но это не отдельный вид файловой системы.)
cjm
9

Если данные организованы таким образом, чтобы к ним можно было получить доступ с помощью механизмов, используемых для файловых систем, вы вполне можете назвать все это файловой системой.

guntbert
источник