Warum fehlen in den Verzeichnissen / usr und / tmp für Linux Vokale in der Schreibweise?

34

Ich habe oft darüber nachgedacht, aber nie eine gute Antwort gefunden. Warum sind diese beiden Unix-Verzeichnisse nicht /userund /tempstattdessen?

Alle anderen Verzeichnisse unter root scheinen genau so zu sein, wie man sie vermutet, aber diese beiden scheinen seltsam, ich hätte sie immer als userund erraten temp.

Gibt es einen historischen Grund für die Schreibweise?

Laser
quelle
2
Etwas sagt mir, dass es eine Verschleppung von Unix ist. Unter dieser Annahme würde ich vermuten, dass die meisten dieser Kürzungen auf prominenten Silben beruhen.
Ken
17
Einmal wurde Ken Thompson gefragt, ob er bei der Neugestaltung von Unix etwas anderes machen würde, und er antwortete: "Ich würde Creat mit einem E buchstabieren."
mattdm
3
"Alle anderen Verzeichnisse unter root scheinen genau so zu sein, wie man es vermutet" -> Das scheint mir nicht zu stimmen. Mit Ausnahme boot, home, mediaund rootist alles andere verkürzt. mntauch fehlen seine Vokale.
Phunehehe
7
Ich dachte, 'u' wäre ein Vokal ...
Mr. Shickadance
1
@Herr. Shickadance: das ist es.
0xC0000022L

Antworten:

49

Ja, es gab Gründe. Sie sind Benutzer und Temp ausgesprochen. passwd ist ähnlich wie resolv.conf. Unix ist ein expertenfreundliches, benutzerfeindliches Betriebssystem.

Ich war Student, als 300-Baud-Modems die Norm waren. Ich war der Neid meiner Kommilitonen, da ich ein Silent 700-Terminal von Control Data hatte, auf dem ich arbeitete. Sie konnten die Verzögerung feststellen, wenn Sie jedes Zeichen eingaben und darauf warteten, dass es wiedergegeben wurde. Jeder Buchstabe zählte; Ich sehe es auch als Starthilfe für leet speak.

Die hjkl von vi haben eine Geschichte, die nur wenige kennen. vi wurde von Bill Joy als Student an der UCB in den gleichen Jahren entwickelt. Die ADM 3a-Terminals in Cory Hall hatten Pfeiltasten über diesen Buchstaben

Tom Murphy
quelle
22
Ich glaube nicht, dass die Idee, "expertenfreundlich, benutzerfeindlich" zu sein, Teil des Ziels war, als es entworfen wurde. Vielmehr alle Benutzer waren Experten, so gab es keine sinnvolle Unterscheidung.
Mattdm
7
LOL "Experty friendly, benutzerfeindlich". Es hat mir den Tag versüßt. +1!
nico
5
Nur eine kleine Notiz (keine Korrektur auf jeden Fall). Obwohl es manchmal "user" ausgesprochen wird, steht / usr entweder für "universal system resource" oder "unix system resource". Was auch immer das ist, es ist im Nebel der alten Geschichte von Unix verloren gegangen :)
luis.espinal
20
Zu der Zeit, als / usr erfunden wurde, lautete seine Bedeutung user und dort befanden sich Home-Verzeichnisse. Unix / Universal System Resource ist eigentlich ein Backronym.
Juli
2
Als Unix herauskam, waren 300 bps üppig . Es gab 75-Bit / s-Verbindungen, die von schwerfälligen, langsamen, elektromechanischen Fernschreibern (häufig Teletype® ASR-33) verarbeitet wurden.
Alexios
20

Sie sind Überbleibsel von Unix. Speicher und Speicherplatz waren knapp. Das Heraushacken einiger Vokale und anderer Abkürzungen führte zu echten Einsparungen. Ein paar Plattenblöcke oder ein paar Bytes können den Unterschied bedeuten, ob ein Programm ausgeführt werden kann oder nicht. (Ich musste ein Programm einmal um 24 Byte kürzen, bevor es ausgeführt werden konnte.)

Auch wie Tom feststellte, waren die Terminalgeschwindigkeiten langsam. 1200 Baud wurde als Highspeed eingeführt und es war. Ich habe mit einem System gearbeitet, das einen Teletyp mit halber Geschwindigkeit (55 Baud oder 5 cps) als Konsole verwendet hat.

Auf Systemen, auf denen grafische Oberflächen ausgeführt werden, spielt dies im Allgemeinen keine Rolle, da der Durchschnittsbenutzer nicht in ihnen herumstöbert. Die Verzeichnisse sind in der Regel gut dokumentierthier Manpage .

Das Umstellen auf längere Namen würde viele Probleme für bestehende Programme verursachen. Dies würde auch die Skriptportabilität einschränken. Das Verknüpfen mehrerer Namen mit denselben Verzeichnissen ist wahrscheinlich eher verwirrend als hilfreich.

EDIT: PDP-7, auf dem Unix entwickelt wurde, hatte eine Basiskonfiguration von 4 kW Speicher und maximal 32 kW. Wörter mit einer Breite von 18 Bit. Die Eingabe war ein Teletyp, daher lag die Geschwindigkeit wahrscheinlich bei 110 Baud oder 10 cps, was ungefähr 100 Wörtern entspricht und erheblich langsamer ist als Sprache.

BillThor
quelle
8
Ich kaufe keine mmory nd dsk spc, sondern langsame tltyps. Solange Sie die Cronyme nicht kennen - warum nicht?
Benutzer unbekannt
@user unknown: Dann bist du jung und musstest dich nie um Speicher oder Speicherplatz kümmern. Mein erster Computer ist jetzt 30 Jahre alt - bestaunen Sie die technischen Daten.
1
Ich habe noch nie ein Dateisystem ausführlich beschrieben oder untersucht, aber nimmt der Name einer Datei / eines Verzeichnisses im Dateisystem je nach 1 Zeichen mehr oder weniger Platz ein? Die Dateien selbst belegen immer ein Vielfaches einer Größe - heute 4k. Daher werden die meisten Dateien, die einen Pfad zu / usr oder / tmp enthalten, in Abhängigkeit von einer einzelnen Datei nicht effektiv kleiner oder größer e. Nun - manchmal werden sie, und dann wachsen sie für eine ganze Blockgröße, aber selten. Und im RAM? Ich weiß es nicht.
Benutzer unbekannt
1
und es wäre ärgerlicher gewesen zu tippen. "temporary vs tmp" ugh ... warum sollte jemand sie länger wollen?
Xenoterracide
4
Moderne Unix-Verzeichnisse haben Einträge mit variabler Länge. Zurück in Research Unix bestand ein Verzeichniseintrag aus festen 16 Bytes: 14 für den Dateinamen, 2 für die Inode-Nummer. Und es könnte kleiner gewesen sein, als / usr usw. heiliggesprochen wurden.
Geekosaurier
5

Ich bin überrascht, dass noch niemand dazu Stellung genommen /userhat. Dieser ist offensichtlich: weil es nicht "Benutzer" ist, ist es "universelle Systemressourcen".

Was /tmpist es einfach kürzer und leichter zu Art. C-Programmierer pflegen, wenn möglich, Kurznamen zu verwenden, da sie diese am Ende häufig in ein Programm eingeben. Es ist sehr üblich, eine temporäre Variable mit dem Namen "tmp" anstelle von "temp" zu verwenden. Aus demselben Grund verwenden Sie "i" i für den Index in einer for-Schleife anstelle von "index" oder "counter".

Shawn J. Goff
quelle
22
Zu der Zeit, als / usr erfunden wurde, lautete seine Bedeutung user und dort befanden sich Home-Verzeichnisse. Unix / Universal System Resource ist eigentlich ein Backronym.
Juli
3
@ jlliagre Super. Ich habe einen anderen Thread gefunden, der tatsächlich eine maßgebliche Quelle dafür hat. us.generation-nt.com/answer/…
Shawn J. Goff
2
Die meisten frühen C-Programmierer waren erste FORTRAN-Programmierer. Sie haben in Fortran IV ganze Zahlen eingegeben, indem Sie den Bezeichner mit einem Zeichen von 'i' bis 'n' begannen. Alles andere war eine WIRKLICHE Zahl. Somit waren Schleifenindizes typischerweise i, j oder k; Das war ausreichend für die Matrizen, die wir wissenschaftlichen Programmierer damals herunterschraubten.
Tom Murphy
@TomMurphy, die meisten Leute, die mit C angefangen haben, waren wahrscheinlich Assembler-Programmierer oder vielleicht BCPL- oder B-Benutzer. RATFOR wurde für die armen Seelen erfunden, die keine anständige Sprache zur Hand hatten. Und das Buch "Software tools" von Kernighan und Plaugher wurde in RATFOR geschrieben (und listet einen vollständigen Präprozessor für RATFOR auf). Immer noch sehr lesenswert.
Vonbrand
1
/usrwar nicht "Universal System Resources", es war wirklich Benutzer . Siehe Youtube: AT & T Archives: Das UNIX-Betriebssystem (hergestellt um 1982), bei dem bei ungefähr 13 Minuten und 35 Sekunden /usr/bwkdeutlich "user-bwk" und /usrvon Brian W. Kernighan "slash-user" ausgesprochen wird . / usr ist auch eindeutig der Speicherort, an dem sich die Basisverzeichnisse im Diagramm bei 13 Minuten und 30 Sekunden befinden. Ich denke nicht, dass man maßgeblicher als das werden kann.
ein CVn
4

Ein Faktor, den niemand erwähnt hat, ist, dass angesichts der damaligen Tastaturtechnologie die Verwendung von Kurznamen, die einfacher zu tippen sind, einen erheblichen Vorteil hatte. Das Drucken im userVergleich usrzu einem 110-BPS-Teletyp war wahrscheinlich keine große Sache. zu haben , geben Sie den Extra - Brief war wahrscheinlich mehr an Bedeutung.

Keith Thompson
quelle
1

Alle anderen Verzeichnisse unter root scheinen genau so zu sein, wie man es vermutet.

Es gibt auch / var, / mnt und / opt;)

aber diese beiden scheinen seltsam, ich hätte sie immer als Benutzer und Temp erraten.

Fast dort. Wie Shawn sagte, steht "user" für "Universal System Resources" (obwohl andere Ressourcen laut Google für "Unix System Resources" stehen).

Gibt es einen historischen Grund für die Schreibweise?

Abkürzungen. Denken Sie daran, dass Befehle in jedem Betriebssystem für den interaktiven und programmgesteuerten Zugriff vorgesehen sind. Insbesondere für die Systemadministration, bei der schnelle Skripterstellung ein Hauptanliegen ist, sind Abkürzungen und Mnemonics genauso gut (oder sogar besser) als das vollständige buchstabierte Wort / der Befehl.

Früher, wenn Sie sich über ein langsames Modem aus der Ferne verbinden würden, würde das Rasieren einiger Vokale hier und da Ihr Leben einfacher machen (oder weniger unglücklich, wenn Sie als Sysadmin versuchen würden, herauszufinden, was zum Teufel ist) ist falsch mit einer Remote-Box.)

Wie bereits erwähnt, ist es nicht nur / usr und / tmp (siehe / var, / mnt und / opt).

Auch ist es nicht nur für Unix. Nehmen Sie zum Beispiel DOS (zum Beispiel chkdsk). Mnemonics, bei denen Sie Vokale abschneiden, sind ein leistungsfähiges, praktisches Konzept.

Sogar in natürlichen Sprachen (wie in semitischen Sprachen) existiert das Konzept (bei dem die Wortwurzeln universell und fast eindeutig durch 3-Konsonanten-Gruppen identifiziert werden). Es ist ein angeborener menschlicher Mechanismus zur Verwaltung von Informationen.

luis.espinal
quelle
Die / var, / mnt und / opt kamen viel später. / Bin, / dev und / etc befanden sich jedoch in einem sehr frühen UNIX-Stadium, und aus dem gleichen Grund gaben die Leute an - weil ttys langsam und nicht alle CRT- und Festplattenspeicher waren. Es gab UNIX-Boot-Systeme mit Papierbändern, kleinen (platzsparenden) teuren Laufwerken und sogar 8-
Zoll-
1
Man könnte argumentieren, dass semitische Sprachen eigentlich keine Konsonanten verwenden, sondern Silben mit unbestimmten Vokalen. Die Wurzelsilben liefern also eine semantische Bedeutung, während die spezifischen Vokale eine grammatische Bedeutung hinzufügen.
Ninjalj