¿Cómo se implementa / proc / self en Linux?

19

Estaba jugando con el /procsistema de archivos en Linux, y me encontré /proc/self, que es un enlace simbólico al directorio de procesos del proceso actual. Me gustaría saber cómo se implementa. Una solución sería cambiar ese enlace simbólico en cada cambio de contexto , pero eso es obviamente muy costoso ya que implica un acceso al disco.

Vicky Chijwani
fuente

Respuestas:

20

http://lxr.linux.no/linux+v3.2.9/fs/proc/base.c#L2482 es la implementación actual.

El procsistema de archivos es completamente virtual y se implementa para que el VFS interno readlinkdelegue en el lugar correcto para enlaces simbólicos especiales. Por lo tanto, calcula a qué selfapunta cuando se lee / recorre, no cada cambio de contexto.

Daniel Pittman
fuente