Die Formulierung hätte besser sein können, aber jede Formulierung, die Sie versuchen, um die Idee der Selbstreferenz auszudrücken, wird verwirrend sein. Der Name des Verzeichnisses ist meiner Meinung nach aussagekräftiger.
Stellt im Grunde /proc/self/
den Prozess dar, der liest /proc/self/
. Wenn Sie also versuchen, /proc/self/
ein C-Programm zu öffnen , repräsentiert es dieses Programm. Wenn Sie versuchen, es von der Shell aus zu tun, dann ist es die Shell usw.
Aber was ist, wenn Sie eine Quad-Core-CPU haben, die in der Lage ist, 4 Prozesse gleichzeitig auszuführen, also kein Multitasking?
Dann wird jeder Prozess einen anderen sehen, /proc/self/
ohne dass man sich gegenseitig sehen kann /proc/self/
.
Wie funktioniert das?
Naja, /proc/self/
ist eigentlich kein Ordner. Es ist ein Gerätetreiber, der sich zufällig als Ordner ausgibt, wenn Sie versuchen, darauf zuzugreifen. Dies liegt daran, dass die für Ordner erforderliche API implementiert wird. Das /proc/self/
Verzeichnis ist nicht das einzige, das dies tut. Ziehen Sie freigegebene Ordner in Betracht, die von Remoteservern bereitgestellt wurden, oder aktivieren Sie USB-Sticks oder Dropbox. Sie alle implementieren dieselben APIs, mit denen sie sich wie Ordner verhalten.
Wenn ein Prozess versucht, auf /proc/self/
den Gerätetreiber zuzugreifen , werden seine Inhalte dynamisch generiert, indem Daten aus diesem Prozess gelesen werden. Die Dateien in existieren /proc/self/
also nicht wirklich. Es ist wie ein Spiegel, der den Prozess reflektiert, der versucht, ihn zu betrachten.
Ist es wirklich ein Gerätetreiber? Du hörst dich an, als ob du Dinge zu stark vereinfachst!
Ja, das ist es wirklich. Wenn Sie pedantisch sein wollen, ist es ein Kernel-Modul. Wenn Sie jedoch Usenet-Posts auf den verschiedenen Linux-Entwicklerkanälen lesen, verwenden die meisten Kernel-Entwickler "Gerätetreiber" und "Kernel-Modul" austauschbar. Früher habe ich Gerätetreiber, fehlerhafte Kernelmodule für Linux geschrieben. Wenn Sie eine eigene Benutzeroberfläche erstellen möchten, /proc/
beispielsweise ein /proc/unix.stackexchange/
Dateisystem, das Beiträge von dieser Website zurückgibt, können Sie in dem von O'Reilly veröffentlichten Buch "Linux Device Drivers" nachlesen, wie dies funktioniert. Es ist sogar als Softcopy online verfügbar.
/proc/self
, der natürlich bewertet .