Pourquoi "umount" ne s'écrit-il pas "démonter"?


64

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

Réponses:


79

Cela remonte à la toute première édition d'Unix , où tous les noms de fichiers standard ne comportaient que 6 caractères au maximum (pensez passwd), même si cette version supportait 8 noms dans un nom de fichier . La plupart des commandes avaient un fichier source associé se terminant par .c(par exemple umount.c), qui ne laissait que 6 caractères pour le nom de base.

Une limitation à 6 caractères peut également provenir d'une version de développement antérieure ou héritée d'un système IBM alors en vigueur comportant une limitation à 6 caractères. ( Les premières implémentations C avaient une limite de 6 caractères sur les identificateurs - identificateurs plus longs ont été acceptés , mais le compilateur seulement regardé les 6 premiers caractères, donc foobar1et foobar2. Étaient les mêmes variables)

(Je pensais me souvenir d'une umountpage de manuel répertoriant l'orthographe en tant que bogue d'origine inconnue, mais je ne la trouve pas maintenant.)


21
Nom de commande à 6 caractères + .c(ou .s) extension = limite de nom de fichier à 8 caractères.
geekosaur

@geekosaur: Ah, oui, le fichier source. Si vous écrivez une réponse, je supprimerai la mienne.
Gilles, arrête de faire le mal. »

5
Enh, annotez-le si vous voulez.
geekosaur

@geekosaur: J'ai aussi pensé à la page de manuel, mais V1 ne comportait pas de commande man (et l'une des pages de manuel s'appelle directory, ce qui n'aurait pas été adapté pour le moment). Je me demande donc pourquoi a passwdété tronqué à 6 caractères (il n'y avait pas passwdencore de commande, juste /etc/passwd).
Gilles 'SO- arrête d'être méchant'

2
Peut-être est-ce à cause du suffixe grec ", qui signifie" pas ", cela expliquerait aussiurandom
Anthony Garcia

8

Il semble y avoir eu des informations erronées depuis un moment.

La raison la plus probable pour la umountcommande ayant le nom abrégé est parce qu'il suit du nom de l'appel système qu'il utilise: umount().

La raison probable pour laquelle l'appel système "démonté" porte ce nom umount()est que les premiers linkers ont limité la longueur des identifiants externes à 6 caractères (sur un seul cas) sur certains types de systèmes (et qu'il était logique de maintenir la compatibilité avec de tels outils à l’époque) et "umount" est une forme logique d’abréviation de "unmount". Voir page 179 de la première édition du langage de programmation C pour une liste des caractéristiques des identificateurs externes de divers systèmes présentant un intérêt au moment de la publication.

Notez également que les premiers compilateurs C considéraient les 8 premiers caractères d’un identifiant comme significatifs, mais autorisaient des identifiants plus longs. (K & R page 33)

Notez que la longueur des identifiants dans les tables de symboles n'a rien à voir directement avec la longueur du nom de fichier, du moins pas sous Unix (les tables de symboles Unix, depuis la V1, ont 8 caractères pour les identifiants, bien que l'assembleur indique " génère des symboles d'au plus 7 octets " ).


-1

4
Nan. Le regret dans la citation que vous citez est parce qu'ils auraient pu ajouter le 'e' même si la limite de 6 caractères a été débattue dans l'autre réponse. Il n’ya vraiment aucune bonne raison pour qu’il soit tronqué, contrairement à umount.
Warren Young

Je suppose qu'à cette époque, il était de tradition de tronquer les lettres si vous le pouviez.
Shadur
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.