Wie ist / proc / self in Linux implementiert?


19

Ich habe mit dem /procDateisystem unter Linux herumgebastelt und bin auf /proc/selfdieses Symbol gestoßen, das eine symbolische Verknüpfung zum Prozessverzeichnis des aktuellen Prozesses darstellt. Ich würde gerne wissen, wie es umgesetzt wird. Eine Lösung wäre, diesen Symlink bei jedem Kontextwechsel zu ändern , aber das ist offensichtlich sehr teuer, da es sich um einen Festplattenzugriff handelt.

Antworten:


20

http://lxr.linux.no/linux+v3.2.9/fs/proc/base.c#L2482 ist die aktuelle Implementierung.

Das procDateisystem ist vollständig virtuell und so implementiert, dass das interne VFS readlinkfür spezielle Symlinks an die richtige Stelle delegiert wird. Es berechnet also, auf welche selfPunkte es zeigt, wenn es gelesen / durchlaufen wird, und nicht auf jeden Kontextwechsel.


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.