web-dev-qa-db-fra.com

Pourquoi 'uton' n'est-il pas orthographié "UNION"?

Je me demande s'il y a une raison historique ou pratique pour laquelle la commande umount n'est pas unmount.

65
uloBasEI

Cela remonte à la toute première édition d'UNIX , où tous les noms de fichiers standard n'étaient que au plus 6 caractères (pensez passwd), même si cette version a pris en charge une whooping 8 caractères dans un nom de fichier . La plupart des commandes avaient un fichier source associé se terminant par .c (par exemple. umount.c), qui n'a laissé que 6 caractères pour le nom de base.

Une limitation de 6 caractères peut également être une hausse d'une version de développement antérieure, ou héritée d'un système IBM à l'époque actuel qui a eu une limitation de 6 caractères. (Les implémentations précoces sur une limite de 6 caractères sur les identifiants - des identificateurs plus longs ont été acceptés, mais le compilateur n'a examiné que les 6 premiers caractères, alors foobar1 et foobar2 étaient la même variable.)

(Je pensais que je me suis souvenu d'une page umount manche qui énumère l'orthographe comme un bogue d'origine inconnue, mais je ne peux pas le trouver maintenant.)

Il semble qu'il y ait eu une mauvaise information assis ici depuis un moment maintenant.

La dernière raison de la commande umount ayant le nom abrégé est qu'elle découle du nom de l'appel du système qu'il utilise: umount().

La raison probable que l'appel du système "non souligné" ayant le nom umount() est parce que les premiers liants ont limité la longueur des identificateurs externes à seulement 6 caractères (d'un seul cas) sur certains types de systèmes (et il a fait Sens de maintenir la compatibilité avec de tels outils à l'époque) et "uton" est une forme logique d'abréviation pour "démonter". Voir page 179 de la première édition de Le langage de programmation C Pour une liste des caractéristiques d'identifiant externe de divers systèmes d'intérêt au moment de la publication.

Remarque également que les compilateurs C anticipé ont traité les 8 premiers caractères d'un identifiant comme des identifiants significatifs, mais ont permis d'être des identifiants pour être plus longs. (K & R Page 33)

Notez que la longueur des identificateurs dans les tables de symboles a rien Que ce soit à faire directement avec la longueur du nom de fichier, au moins pas dans UNIX (Tables de symboles UNIX, car v1, avoir 8 caractères pour les identificateurs, bien que ce soit noté dans le manuel V1 que l'assembleur " génère des symboles d'au plus 7 octets" ).

8
Greg A. Woods