Я блуждал в файловой системе Linux, которая похожа на хороший способ понять, как она работает. В UNIX "все - файл", таким образом, я смотрел на /dev/stdin
и замеченный это - гибкая ссылка на /proc/self/fd/0
. Таким образом, я решил пойти, смотрят на /proc
папка, находя это /proc/self
на самом деле гибкая ссылка на /proc/{PID}
. Чтобы быть более точным, PID является тем ls -l /proc/self
управляйте, чтобы я вышел для проверки его значения.
Моя теория состоит в том, что гибкая ссылка изменяется каждый раз, программа пытается читать, она, для указания на правильный PID обрабатывает папку. Сделанный ядром по каждому запросу, который это получает для чтения /proc
папка? Я не думаю, что необходимо на самом деле считать файл для получения вывода ls
или мы не смогли бы видеть файлы с 700 разрешениями, делает изменение гибкой ссылки, происходит когда /proc
к папке получают доступ?
Движение еще больше: действительно ли это - вид управления, ограниченного для самого ядра, или некоторые приложения могут использовать это? (Возможно, проверяющий, когда к папке получают доступ для динамичного изменения ее содержания/ссылок согласно тому, "кто" делает ее),
/proc
точка монтирования для procfs
(отчасти tmpfs
, жизни в памяти), который является интерфейсом к внутренней структуре данных ядра. Независимо от того, что Вы видите в /proc
непосредственно заполняется Linux и также сохраняется самим ядром.
/proc/self
символьная ссылка на /proc/<PID>
каталог, где <PID>
идентификатор Процесса доступа процесса /proc
в этом очень мгновенном. Таким образом, в то время как в bash
если Вы делаете cd /proc/self
, Вы будете cd
- идентификатор в /proc/<PID>/
, где <PID>
PID для того экземпляра bash
, в то время как, если некоторый другой процесс, скажем, для cat
:
$ cat /proc/self/comm
cat
Вы ничего не должны абсолютно изменять в /proc
кроме того, если ядро обеспечивает некоторый интерфейс для изменения значений. Например, ядро обеспечивает интерфейс /proc/sys/
изменить параметры ядра во времени выполнения, хотя главным образом необходимо использовать sysctl
изменить значения под /proc/sys/
вместо того, чтобы непосредственно редактировать любой файл. Плохое обращение внутренней структуры данных Ядра привело бы к неприменимой системе или даже системному катастрофическому отказу.