Почему 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не создаются обычными операциями файловой системы, а добавляются и удаляются самой реализацией файловой системы в зависимости от того, что происходит в другом месте ядра.


так почему / etc / boot например не называются файловой системой ???
— Махлуф ГАРБИ

7
Потому что они каталоги в файловой системе. (Ну, /bootчасто это отдельная файловая система, но это не отдельный вид файловой системы.)
— cjm

9

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.