web-dev-qa-db-fra.com

Pourquoi les versions ultérieures de Windows continuent-elles à utiliser des fichiers de raccourci au lieu de liens symboliques?

Windows XP et versions ultérieures prennent en charge les liens symboliques. Pourtant, Windows continue à utiliser des fichiers de raccourci (qui stockent essentiellement l'emplacement du fichier lié sous forme de texte). Pourquoi?

68
Alex

Un certain nombre de raisons, je suppose

  1. Vous pouvez stocker différents niveaux de compatibilité avec plusieurs raccourcis différents vers le même fichier EXE, tels qu'ils sont interprétés par le shell plutôt que par le système de fichiers.
  2. Certains liens de raccourci n'existent pas dans le système de fichiers. Certains d'entre eux sont simplement des références à des GUID, ou des chaînes spéciales interprétées par le shell.
  3. Vous ne pouvez pas inclure de commutateur dans un lien symbolique. Vous pouvez pointer sur le fichier EXE, bien sûr, mais vous ne pouvez pas lui donner d’arguments supplémentaires.
  4. Vous ne pouvez pas choisir une icône pour un lien symbolique.
  5. Vous ne pouvez pas choisir le répertoire à utiliser dans un lien symbolique.
  6. Les fichiers de raccourci ne doivent pas seulement pointer vers des fichiers, ils peuvent être des liens hypertexte ou des liens de protocole (dans le cas d'un fichier .URL).
  7. Les fichiers LNK peuvent exister sur n’importe quel système de fichiers. Les liens symboliques sont gérés par le système de fichiers lui-même, dans le cas de Windows, NTFS.
  8. Il n'y a pas vraiment besoin de les remplacer. Ils fonctionnent, ils sont minuscules, ils peuvent être étendus à l'avenir si un besoin de fonctionnalités supplémentaires s'ajoutait à celles énumérées ci-dessus.
  9. Des droits administratifs sont nécessaires pour créer un lien symbolique (pour une bonne raison - sinon, la redirection de fichiers innocents vers des fichiers malveillants peut être exécutée avec très peu de travail)

Il y aura plus de raisons que cela, mais je pense que cela suffit pour vous lancer :) - Il y a un lien fourni par @grawity ici qui vous en donnera des lectures supplémentaires sur certaines parties de ce sujet.

106
Jonno

Un lien symbolique n'est rien de plus qu'un chemin encapsulé dans une très petite quantité de magie du système de fichiers. Cela peut devenir invalide de plusieurs façons, la plupart impliquant un ou plusieurs fichiers ou répertoires renommés. Windows étant un logiciel grand public, il est possible qu'un grand nombre de programmes très mal conçus s'exécutent sur une installation "typique". En conséquence, ce type de casse est beaucoup plus difficile à éviter que sur un serveur où (en théorie) chaque programme qui touche le disque est une quantité connue.

Les raccourcis sont à l'abri de la plupart des bris car ils suivent leurs cibles indépendamment du chemin. Cela les rend plus conviviaux. Ils sont spécialement conçus pour les consommateurs, avec une approche "faites juste ce que je veux dire et ne me dérange pas sur les détails".

Vous pouvez maintenant utiliser des liens durs pour cela (dans une certaine mesure), mais ces liens ont un certain nombre de propriétés compliquées qui les rendent impropres à la consommation. En particulier, les fichiers reçoivent très facilement les nouveaux numéros d'inodes et certains logiciels de sauvegarde se cassent de manière assez spectaculaire lorsqu'ils sont confrontés à des liens physiques. Les premiers pourraient (peut-être) être résolus avec le tunneling du système de fichiers (qui est en fait comment les raccourcis résolvent un problème connexe), mais le second est un problème beaucoup plus dur .

(Je devrais aussi probablement noter que "résoudre" des liens physiques avec le tunneling est décidément non trivial puisqu'il ne s'agit pas simplement de rattacher des métadonnées "perdues". Les inodes sont liés dans le schéma d'allocation de disque, vous ne pouvez donc pas fusionner arbitrairement ou les réaffecter après coup sans un minimum de travail. Comme les raccourcis utilisent d’autres métadonnées qui peuvent être facilement tunnellisées, comme l’heure de la création, ils n’ont pas ce problème.)

6
Kevin