Comment se fait-il que les liens symboliques puissent être utilisés sur différents systèmes de fichiers, alors que les liens physiques ne le peuvent pas?

2

Comment se fait-il que des liens symboliques puissent être utilisés pour relier différents systèmes de fichiers? Et pourquoi est-ce que les liens durs ne peuvent pas être utilisés sur différents systèmes de fichiers?

ddmichael
la source

Réponses:

3

Fondamentalement, un lien symbolique est lui-même un fichier contenant le chemin du fichier auquel il est lié. Un attribut spécial défini dans les attributs force le système d'exploitation à traiter le lien symbolique comme un lien: il lit le chemin d'accès dans le fichier, puis le suit dans le fichier lié. Tout cela est transparent pour l'utilisateur.

Comme le lien symbolique est simplement un fichier interprété par le système d'exploitation, il peut pointer vers un fichier ou un répertoire de tout système de fichiers, même si le système de fichiers cible ne prend pas en charge la création de liens symboliques.

Un lien dur, en revanche, fonctionne à un niveau inférieur. Les liens physiques et les fichiers sont essentiellement la même chose - une entrée dans le répertoire du système de fichiers, composée du nom de fichier et de son numéro d'inode. L'inode est comme une carte qui décrit où se trouvent les différentes parties du fichier sur le disque dur.

Lorsque vous créez un lien physique vers un fichier existant, vous créez une nouvelle entrée dans le répertoire du système de fichiers qui pointe vers le même inode que le fichier existant. Pour cette raison, le lien physique doit être sur le même système de fichiers que le fichier existant.

C'est un bon article qui explique les différences.

Dermot Williams
la source
1

Les liens physiques sont une entrée dans la table d'allocation de fichier qui pointe vers le même plateau, secteur et bloc que le fichier d'origine. Après avoir créé un lien dur ... vous pouvez supprimer le nom de fichier d'origine, mais le fichier n'est pas supprimé. Comme il s'agit d'une entrée réelle dans la table d'allocation de fichiers vers l'emplacement physique du fichier, il est impossible de la faire pointer vers un autre disque.

Les liens symboliques sont un type de fichier spécial, qui est compris comme un pointeur sur un autre nom de fichier. Si le fichier cible est supprimé ... le lien symbolique existe toujours, mais n'a plus de cible à l'autre bout. Dans cet esprit, puisqu'il ne fait référence qu'à un nom de fichier ... vous pouvez indiquer n'importe quoi. Même d'autres systèmes de fichiers.

TheCompWiz
la source