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

68

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

Alex
la source
25
Pourquoi les nouvelles versions de Windows (et Office) enregistrent-elles les fichiers texte au format ANSI et non au format UTF-8? Que ce soit pour incompatibilité et déraisonnabilité ou pour soutenir des systèmes hérités ...
Rétrographie
9
Windows XP et versions ultérieures prennent en charge symbolique certains systèmes de fichiers. Les liens symboliques fonctionnent sur un système de fichiers NTFS sur votre disque dur, mais ne fonctionnent pas s'ils sont copiés sur une clé USB au format FAT 32 normale, ou sur un CD-ROM au format UDF, et risquent de ne pas fonctionner s'ils sont copiés sur un serveur de réseau souvent, ne connaissent pas le système d'exploitation ou le système de fichiers utilisé par le serveur distant). Les fichiers de raccourci LNK peuvent être facilement copiés et utilisés dans tous ces domaines.
GAThrawn
12
Les .lnkfichiers Windows sont plus similaires aux .desktopfichiers Linux qu'aux liens symboliques.
Commentaires
3
Les liens symboliques sont délicats sur le plan de la sécurité (problème de député confus)
CodesInChaos 2/02/16
2
Alors, avez-vous cessé d'utiliser les signets dans votre navigateur lorsque NTFS est arrivé? Cela peut sembler une comparaison absurde, mais seulement si vous pensez que les raccourcis ne sont que des indicateurs de fichiers - ce n'est tout simplement pas le cas.
Luaan

Réponses:

106

Un certain nombre de raisons, je suppose

  1. Vous pouvez stocker différents niveaux de compatibilité avec différents raccourcis 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. Certaines d'entre elles 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 permettre de démarrer :) - Il existe un lien fourni par @grawity ici qui vous donnera des informations supplémentaires sur certaines parties de ce sujet.

Jonno
la source
2
De plus, les raccourcis de fichiers mettent en cache certaines métadonnées sur la cible et leur interprétation au niveau du shell permet au shell de mettre à jour les raccourcis si la cible a été déplacée, ce qui serait plus difficile avec des liens symboliques. En général, voir Old New Thing à nouveau pour diverses choses intéressantes sur les fonctionnalités de raccourci.
Grawity
5
@grawity Y aurait-il un avantage majeur à ce que ces systèmes soient gérés par le système de fichiers? J'aurais pensé que les fichiers .lnk ont ​​une marge de manoeuvre infinie pour se développer, si nécessaire, tout en conservant une compatibilité ascendante, sans trop de charge mémoire. Le déplacer dans le système de fichiers serait un peu trop élaboré, peut-être? Je ne suis cependant nullement un expert du fonctionnement interne des systèmes de fichiers.
Jonno
3
Certes, le service de mémoire lui-même n’aurait aucune utilisation de la plupart de ces informations - de nombreuses fonctionnalités de .lnk étant réellement spécifiques à l’explorateur, tout stocker comme un point d’analyse au lieu d’un fichier serait excessif.
Grawity
3
Je voulais juste souligner que les fichiers LNK ne peuvent pas, à ma connaissance, être utilisés pour cibler des URL (hyperliens). Vous pouvez utiliser la même fonction de création de raccourci sous Windows pour créer un raccourci vers une URL, mais le résultat final est un fichier .URL (texte brut, essentiellement un fichier INI) et non un fichier .LNK (binaire).
Michael Becker
3
Ou start http://superuser.comqui choisit le navigateur par défaut, comme le ferait un véritable raccourci vers une URL. Cela dit, vous pouvez faire en sorte que les fichiers .LNK pointent vers des URL. En fin de compte, ce sont des "monikers COM sérialisés" et le système COM peut être étendu avec de nouveaux types de moniker.
MSalters
6

Un lien symbolique n'est rien d'autre qu'un chemin encapsulé dans une très petite quantité de magie du système de fichiers. Cela peut devenir invalide de plusieurs manières, 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 immunisés contre la plupart des bris car ils suivent leurs cibles indépendamment de leur trajectoire. 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 physiques pour cela (dans une certaine mesure), mais ces liens ont un certain nombre de propriétés compliquées qui les rendent inutilisables pour les consommateurs. 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 (ce 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 probablement aussi noter que "résoudre" des liens durs 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.)

Kevin
la source