Ik was aan het dwalen over het Linux-bestandssysteem, dat eruit ziet als een goede manier om te begrijpen hoe het werkt. In UNIX "is alles een bestand", dus ik was aan het kijken /dev/stdin
en merkte op dat het een zachte link is naar /proc/self/fd/0
. Dus besloot ik om een kijkje te nemen naar de /proc
map, vinden dat /proc/self
is eigenlijk een zachte link naar /proc/{PID}
. Om preciezer te zijn, de PID is die van de ls -l /proc/self
commando dat ik geef om de waarde te controleren.
Mijn theorie is dat de zachte link elke keer dat een programma het probeert te lezen verandert, om naar de juiste PID-procesmap te wijzen. Wordt dit door de kernel gedaan bij elk verzoek dat het krijgt om het te lezen /proc
map? Ik denk niet dat je het bestand echt moet lezen om de uitvoer van te krijgen ls
of we zouden geen bestanden met 700 permissies kunnen zien, dus de wijziging van de zachte link gebeurt wanneer de /proc
map is geopend?
Gaat nog verder: is dit soort controle beperkt voor de kernel zelf of kunnen sommige toepassingen daar gebruik van maken? (Misschien controleren of een map wordt geopend om de inhoud / koppelingen dynamisch te wijzigen aan de hand van 'wie' het doet)