Pourquoi les répertoires / usr et / tmp pour Linux manquent-ils les voyelles dans leur orthographe?

34

J'ai souvent commencé à réfléchir à cela, mais je n'ai jamais trouvé de réponse satisfaisante. Pourquoi ces deux répertoires Unix ne sont-ils pas /useret à la /tempplace?

Tous les autres répertoires ci-dessous rootsemblent être exactement ce que l'on pourrait les deviner, mais ces deux semblent étranges, je les aurais toujours devinés au fur useret à mesure temp.

Y at-il une raison historique pour les orthographes?

Lazer
la source
2
Quelque chose me dit que c'est un report d'Unix. Sur cette hypothèse, je suppose que la plupart de ces troncatures sont basées sur des syllabes importantes.
Ken
17
Une fois, on a demandé à Ken Thompson s'il ferait quelque chose de différent s'il modifiait Unix, et il a répondu ""
J'épelerais
3
"Tous les autres répertoires sous root semblent être exactement ce que l'on pourrait les deviner" -> Cela ne me semble pas vrai. Sauf pour boot, home, mediaet roottout le reste est raccourci. mntmanque aussi de ses voyelles.
Phunehehe
7
Je pensais que tu étais une voyelle ...
Mr. Shickadance
1
@M. Shickadance: c'est ça.
0xC0000022L

Réponses:

49

Yup il y avait des raisons. Ils sont prononcés utilisateur et temp. passwd est similaire, tout comme resolv.conf. Unix est un système d’exploitation antagoniste convivial pour les experts.

J'étais étudiant lorsque 300 modems Baud étaient la norme. J'étais l'envie de mes camarades étudiants, car j'avais un terminal Silent 700 de Control Data où je travaillais. Vous pouviez voir le délai entre la saisie de chaque caractère et l'attente de son écho. Chaque personnage a compté; Je le vois aussi comme favorisant le début du discours leet.

Les hjkl de vi ont une histoire que peu de gens connaissent. vi a été développé par Bill Joy alors qu’il était étudiant à UCB au cours de ces mêmes années. Les terminaux ADM 3a à Cory Hall avaient des touches fléchées au-dessus de ces lettres

Tom Murphy
la source
22
Je ne pense pas que lors de la conception, l'idée d'être "amical envers les experts, antagoniste des utilisateurs" faisait partie de l'objectif. Au lieu de cela, tous les utilisateurs étaient des experts, il n'y avait donc pas de distinction significative.
Mattdm
7
LOL "Experty amical, antagoniste des utilisateurs". Ça a fait ma journée. +1!
Nico
5
Juste une petite note (pas une correction par tout moyen). Bien que parfois prononcé "utilisateur", / usr signifie "ressource système universelle" ou "ressource système unix". Quoi qu'il en soit, il a été perdu dans le brouillard de l'histoire ancienne de Unix :)
luis.espinal
21
Au moment où / usr a été inventé, sa signification était utilisateur et les répertoires personnels s'y trouvaient. ressource système unix / universal est en réalité un backronym.
Jlliagre
2
Quand Unix est sorti, 300 bps était luxuriant . Il existait des liaisons à 75 bps, gérées par des téléscripteurs électromécaniques lents et lents (souvent le Teletype® ASR-33).
Alexios
20

Ils sont conservés par Unix. La mémoire et l'espace disque étaient rares. Le piratage de quelques voyelles et autres abréviations a permis de réaliser de réelles économies. Quelques blocs de disque ou quelques octets peuvent faire toute la différence pour pouvoir exécuter un programme ou non. (J'ai déjà eu à couper un programme de 24 octets avant de l'exécuter.)

Aussi, comme Tom a noté, les vitesses des terminaux étaient lentes. 1200 bauds ont été introduits comme haute vitesse et c’était. J'ai travaillé avec un système qui utilisait un télétype demi-vitesse (55 bauds ou 5 unités par seconde) comme console.

Sur les systèmes exécutant des interfaces graphiques, cela n’a généralement pas beaucoup d’importance, car les utilisateurs moyens ne les fouilleront pas. Les répertoires sont généralement bien documentés dans la hierpage de manuel.

Passer à des noms plus longs causerait beaucoup de problèmes pour les programmes existants. Cela limiterait également la portabilité des scripts. Lier plusieurs noms aux mêmes répertoires serait probablement plus déroutant qu'utile.

EDIT: PDP-7 sur lequel Unix a été développé avait une configuration de base de 4KW de mémoire et un maximum de 32KW. Mots où 18 bits de large. La saisie étant un télétype, la vitesse était probablement de 110 bauds ou 10 cps, soit environ 100 mots, ce qui est nettement plus lent que la parole.

BillThor
la source
8
Je n’achète pas mmory nd dsk spc, mais des tltyps lents. Aussi longtemps que vous pouvez cnrer vos noms - pourquoi pas?
utilisateur inconnu
@user unknown: Vous êtes alors jeune et n'avez jamais à vous soucier de la mémoire ou de l'espace disque. Mon premier ordinateur a 30 ans maintenant - émerveillez-vous devant les spécifications.
1
Je n'ai jamais écrit ou inspecté un système de fichiers en profondeur, mais le nom d'un fichier / répertoire dans le système de fichiers occupe-t-il plus ou moins d'espace, en fonction d'un caractère? Les fichiers eux-mêmes occupent toujours un multiple d'une certaine taille - aujourd'hui 4k. Ainsi, la plupart des fichiers contenant un chemin vers / usr ou / tmp ne deviendront pas plus petits ou plus gros, en fonction d’un fichier unique e. Eh bien - parfois, ils le font, puis ils grandissent pour une taille de bloc complète, mais rarement. Et en RAM? Je ne sais pas.
utilisateur inconnu
1
et il aurait été plus ennuyeux de taper. "temporaire vs tmp" pouah ... pourquoi quelqu'un voudrait-il les garder plus longtemps?
Xenoterracide
4
Les répertoires Unix modernes ont des entrées de longueur variable. De retour dans Research Unix, une entrée de répertoire était fixée à 16 octets: 14 pour le nom de fichier, 2 pour le numéro d'inode. Et il aurait pu être plus petit lorsque / usr etc. ont été canonisés.
Geekosaur
5

Je suis surpris que personne n'a encore commenté /user. Celui-ci est évident: parce que ce n'est pas "utilisateur", c'est "Ressources système universelles".

En ce qui concerne /tmp, c'est simplement plus court et plus facile à taper. Les programmeurs C ont l'habitude d'utiliser des noms abrégés lorsque cela est possible, car ils finissent par les saisir plusieurs fois dans un programme. Il est très courant d'avoir une variable temporaire nommée "tmp" plutôt que "temp" pour la même raison, vous utilisez "i" i pour l'index dans une boucle for au lieu de "index" ou "compteur".

Shawn J. Goff
la source
22
Au moment où / usr a été inventé, sa signification était utilisateur et les répertoires personnels s'y trouvaient. ressource système unix / universal est en réalité un backronym.
Jlliagre
3
@ jlliagre Génial. J'ai trouvé un autre fil qui a en fait une source faisant autorité. us.generation-nt.com/answer/…
Shawn J. Goff Le
2
La plupart des premiers programmeurs C ont été les premiers programmeurs FORTRAN. La manière dont vous avez tapé des nombres entiers dans Fortran IV a été de commencer l'identifiant avec un caractère de 'i' à 'n', tout le reste était un nombre REAL. Ainsi, les indices de boucle étaient typiquement i, j ou k; ce qui était suffisant pour les matrices que nous, les programmeurs scientifiques, manipulions à l'époque.
Tom Murphy
@TomMurphy, la plupart des personnes qui ont commencé avec C étaient probablement des programmeurs en langage assembleur, ou peut-être des utilisateurs de BCPL ou de B. La RATFOR a été inventée pour les pauvres âmes qui n’ont pas de langue convenable sous la main. Et le livre "Software tools" de Kernighan et Plaugher a été écrit dans (et répertorie un préprocesseur complet pour) RATFOR. Ça vaut toujours la peine d'être lu.
vonbrand
1
/usrn’était pas "Universal System Resources", c’était vraiment un utilisateur . Voir Youtube: Archives AT & T: Le système d'exploitation UNIX (produit vers 1982) où, vers 13 min 35 secondes, /usr/bwkse prononce clairement "user-bwk" et /usrse prononce "slash-user" de Brian W. Kernighan . / usr est également clairement impliqué comme emplacement contenant les répertoires de base dans le diagramme à 13min 30sec. Je ne pense pas que vous puissiez obtenir beaucoup plus d'autorité que cela.
un CVn
4

Personne n'a mentionné le fait que, compte tenu de la technologie du clavier de l'époque, l'utilisation de noms courts plus faciles à taper présentait un avantage considérable. L'impression usercontre usr, même sur un télétype de 110 BPS, n'était probablement pas une grosse affaire; avoir à taper cette lettre supplémentaire était probablement plus important.

Keith Thompson
la source
1

Tous les autres répertoires sous root semblent être exactement ce que l’on pourrait les deviner,

Il y a aussi / var, / mnt et / opt;)

mais ces deux semblent étranges, je les aurais toujours devinés comme utilisateur et temp.

Presque là. Comme Shawn l'a dit, "utilisateur" signifie "ressources système universelles" (bien que d'autres ressources selon Google indiquent qu'il représente "ressources système Unix").

Y at-il une raison historique pour les orthographes?

Raccourcis, abréviations. N'oubliez pas que les commandes, quel que soit le système d'exploitation, sont conçues pour accéder à la fois de manière interactive et par programme. En particulier pour l’administration système où le script rapide est une préoccupation majeure, les abréviations, les mnémoniques sont aussi bons (ou même meilleurs) que le mot / la commande épelé.

De plus, à l’époque, si vous vous connectiez à distance via un modem lent comme de la mélasse, vous raser quelques voyelles ici et là vous faciliterait la vie (ou moins, si vous étiez un administrateur système essayant de découvrir ce qui se passait. est faux avec une boîte distante.)

Comme indiqué précédemment, il n’est pas propre à / usr et à / tmp (voir / var, / mnt et / opt).

En outre, il n'est pas unique à Unix. Prenez DOS par exemple (chkdsk, par exemple.) Les mnémoniques dans lesquels vous débarrassez des voyelles sont un concept puissant et pratique.

Même dans les langues naturelles (comme les langues sémitiques), le concept existe (où la racine des mots est universellement identifiée et presque sans ambiguïté par des groupes de 3 consonnes). C'est un mécanisme humain inné de gestion de l'information.

luis.espinal
la source
Le / var, / mnt et / opt sont venus BEAUCOUP plus tard. Cependant, / bin, / dev et / etc étaient très tôt dans UNIX et pour la même raison, les gens ont déclaré: parce que les écrans étaient lents et que tous n'étaient pas CRT ni espace disque. Il existait déjà des systèmes d’amorçage UNIX utilisant du papier collé, de petits disques coûteux (de l’espace) coûteux et même des disquettes 8 ". L’espace pour ceux-ci était
rare
1
On pourrait faire valoir que les langues sémitiques n'utilisent pas de consonnes, mais des syllabes à voyelles indéterminées. Ainsi, les syllabes racines fournissent une signification sémantique, tandis que les voyelles spécifiques ajoutent une signification grammaticale.
Ninjalj