Pourquoi "/" a-t-il une input ".."?

Cela m'a toujours insortinggué. Pourquoi le directory racine contient-il une reference à un directory parent?

 bob @ bob: / $ ls -a
 .  build la maison lib32 mnt .rpmdb sys vmlinuz
 .. cdrom initrd.img lib64 opt sbin tmp vmlinuz.old
 bin dev initrd.img.old perdu + trouvé proc selinux usr
 boot, etc. lib media racine srv var

Je comprends comment les directorys sont gérés dans le système de files – chaque directory a n + 2 pointeurs sur lui-même (n = nombre de sous-directorys dans le directory). Un pour chaque sous-directory immédiat, un pour son parent et un pour lui-même.

Mais quel est le parent de /?

    /.. points vers / :

     $ ls -id / 2 / $ ls -id /.. 2 /.. 

    Les deux ont le même numéro d'inode, qui se trouve être 2 sur ce système. (La valeur exacte n'a pas d'importance.)

    C'est fait pour la cohérence. De cette façon, il ne doit pas y avoir de code dans le kernel pour vérifier où il se trouve actuellement lorsqu'il traite un .. dans un path. Vous pouvez dire cd .. pour toujours, et ne jamais aller plus loin que la racine.

    C'est là parce que c'est une garantie faite par Unix: chaque directory contient deux inputs,. qui se réfère à lui-même, et .. qui se réfère au parent.

    Le directory racine de l'espace de noms actuel est spécial, en ce sens que .. pointe la même chose que . , mais pas si spécial pour briser la garantie faite par le operating system aux programmes. Lorsque ces contrats sont brisés, les choses vont mal et tout le monde pointe du doigt.

    Le directory racine que vous voyez peut, dans le système de files sur le disque, avoir un directory parent différent. La vue des filesystems fournis dans l'espace de noms monté est ce qui applique le .. = . règle pour / . Donc, si vous êtes dans une prison chroot() , vous verrez /.. = / même si quelqu'un à l'extérieur de la prison regarde /path/to/jail/.. verra /path/to place.

    Je suis d'accord avec @Warren Young mais que /.. s'utilise en mode rescue, quand le systeme démarre en rescue puis Media devient real root ie / et l'environnement rescue va maintenant tenter de find votre installation Linux et le monter sous le directory /mnt/sysimage . pour revenir de /mnt/sysimage/ qui est la partition racine réelle de votre operating system, qui a été utilisé.

    Corrigez-moi si j'ai tort, s'il-vous plait..