“/proc/self” - Динамично изменение гибкой ссылки

Я блуждал в файловой системе Linux, которая похожа на хороший способ понять, как она работает. В UNIX "все - файл", таким образом, я смотрел на /dev/stdin и замеченный это - гибкая ссылка на /proc/self/fd/0. Таким образом, я решил пойти, смотрят на /proc папка, находя это /proc/self на самом деле гибкая ссылка на /proc/{PID}. Чтобы быть более точным, PID является тем ls -l /proc/self управляйте, чтобы я вышел для проверки его значения.

Моя теория состоит в том, что гибкая ссылка изменяется каждый раз, программа пытается читать, она, для указания на правильный PID обрабатывает папку. Сделанный ядром по каждому запросу, который это получает для чтения /proc папка? Я не думаю, что необходимо на самом деле считать файл для получения вывода ls или мы не смогли бы видеть файлы с 700 разрешениями, делает изменение гибкой ссылки, происходит когда /proc к папке получают доступ?

Движение еще больше: действительно ли это - вид управления, ограниченного для самого ядра, или некоторые приложения могут использовать это? (Возможно, проверяющий, когда к папке получают доступ для динамичного изменения ее содержания/ссылок согласно тому, "кто" делает ее),

4
задан 9 August 2016 в 06:59

1 ответ

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

3
ответ дан 1 December 2019 в 10:01

Другие вопросы по тегам:

Похожие вопросы: