Perché le directory / usr e / tmp per Linux mancano di vocali nelle loro ortografie?


34

Ho spesso iniziato a pensarci ma non ho mai trovato una buona risposta. Perché queste due directory Unix non sono /usere /tempinvece?

Tutte le altre directory sotto rootsembrano essere esattamente ciò che si potrebbe immaginare, ma queste due sembrano strane, le avrei sempre immaginate come usere temp.

C'è qualche motivo storico per l'ortografia?


2
Qualcosa mi dice che è un riporto da Unix. Su questa ipotesi, immagino che la maggior parte di questi troncamenti siano basati su sillabe importanti.
Ken

17
Una volta, a Ken Thompson fu chiesto se avrebbe fatto qualcosa di diverso se avesse ridisegnato Unix, e lui ha risposto ""
Scriverei

3
"Tutte le altre directory sottostanti sembrano essere esattamente ciò che si potrebbe immaginare che siano" -> Non mi sembra vero. Fatta eccezione per boot, home, mediae roottutto il resto si accorcia. mntmancano anche le sue vocali.
phunehehe,

7
Pensavo che fossi una vocale ...
Mr. Shickadance,

1
@Sig. Shickadance: lo è.
0xC0000022L

Risposte:


49

Sì, c'erano delle ragioni. Sono pronunciati user e temp. passwd è simile, così come resolv.conf. Unix è un sistema operativo antagonista user friendly.

Ero uno studente quando 300 modem Baud erano la norma. Ero l'invidia dei miei compagni di studio, dato che avevo un terminale Silent 700 di Control Data dove lavoravo. Potresti vedere il ritardo nel digitare ogni personaggio e aspettando che venga ripetuto. Ogni personaggio contava; Lo vedo anche come incoraggiare l'inizio del discorso leet.

L'hjkl di vi ha una storia che pochi conoscono. vi è stato sviluppato da Bill Joy quando era studente universitario presso la UCB in quegli stessi anni. I terminali ADM 3a di Cory Hall avevano i tasti freccia sopra quelle lettere


22
Non penso che quando è stato progettato l'idea di essere "amichevole per gli esperti, antagonista dell'utente" facesse parte dell'obiettivo. Piuttosto, tutti gli utenti erano esperti, quindi non c'era distinzione significativa.
Mattdm,

7
LOL "Esperto amichevole, antagonista dell'utente". Ha dato un senso alla mia giornata. +1!
nico,

5
Solo una piccola nota (non una correzione in alcun modo). Sebbene talvolta sia pronunciato "utente", / usr sta per "risorsa di sistema universale" o "risorsa di sistema unix". Qualunque cosa sia, è andata perduta nella nebbia della storia antica di Unix :)
luis.espinal

21
Al tempo / usr è stato coniato, il suo significato era user e home directory erano localizzate lì. la risorsa di sistema unix / universal è in realtà un backronym.
jlliagre,

2
Quando Unix è uscito, 300 bps erano lussureggianti . C'erano collegamenti a 75 bps là fuori, gestiti da ingombranti, lenti, teletypewriter elettromeccanici (spesso Teletype® ASR-33).
Alexios,

20

Sono holdover da Unix. La memoria e lo spazio su disco erano scarsi. L'hacking di alcune vocali e altre abbreviazioni ha permesso di ottenere risparmi reali. Alcuni blocchi del disco o pochi byte potrebbero significare la differenza nella possibilità di eseguire un programma o meno. (Una volta ho dovuto tagliare un programma di 24 byte prima che potesse essere eseguito.)

Inoltre, come notato da Tom, la velocità dei terminali era bassa. 1200 baud fu introdotto come alta velocità e lo fu. Ho lavorato con un sistema che utilizzava un teletipo a mezza velocità (55 baud o 5 cps) come console.

Sui sistemi che eseguono interfacce grafiche, in genere non ha molta importanza in quanto gli utenti medi non si prenderanno cura di loro. Le directory sono generalmente ben documentate nella hierpagina man.

Passare a nomi più lunghi causerebbe molti problemi ai programmi esistenti. Limiterebbe anche la portabilità degli script. Collegare più nomi alle stesse directory sarebbe probabilmente più confuso che utile.

EDIT: PDP-7 su cui è stato sviluppato Unix aveva una configurazione di base di 4KW di memoria e un massimo di 32KW. Parole in cui 18 bit di larghezza. L'input era un teletipo, quindi la velocità era probabilmente di 110 baud o 10 cps, circa 100 parole che è significativamente più lenta del parlato.


8
Non compro mmory nd dsk spc, ma tltyps lento. Finché credi che i cronimi siano - perché no?
utente sconosciuto

@utente sconosciuto: allora sei giovane e non devi mai preoccuparti della memoria o dello spazio su disco. Il mio primo computer ora ha 30 anni - meraviglia delle specifiche.

1
Non ho mai scritto o ispezionato in profondità un filesystem, ma il nome di un file / directory nel filesystem occupa più o meno spazio, a seconda di 1 carattere? I file stessi occupano sempre un multiplo di alcune dimensioni, oggi 4k. Quindi la maggior parte dei file che contengono un percorso a / usr o / tmp non diventeranno effettivamente più piccoli o più grandi, a seconda di un singolo e. Bene - a volte lo faranno, e poi cresceranno per un intero blocco, ma raramente. E nella RAM? Non lo so.
utente sconosciuto

1
e sarebbe stato più fastidioso digitare. "temporary vs tmp" ugh ... perché qualcuno li vorrebbe più a lungo?
xenoterracide

4
Le moderne directory Unix hanno voci a lunghezza variabile. Indietro in Research Unix, una voce di directory era fissa di 16 byte: 14 per il nome file, 2 per il numero di inode. E potrebbe essere stato più piccolo quando / usr ecc. Sono stati canonizzati.
Geekosaur,

5

Sono sorpreso che nessuno abbia /userancora commentato . Questo è ovvio: poiché non è "utente", è "Risorse di sistema universali".

Per quanto riguarda /tmp, è semplicemente più breve e più facile da digitare. I programmatori C hanno l'abitudine di usare nomi brevi quando possibile perché finiscono per digitarli più volte in un programma. È molto comune avere una variabile temporanea denominata "tmp" anziché "temp" per lo stesso motivo, si utilizza "i" i per l'indice in un ciclo for anziché "index" o "counter".


22
Al tempo / usr è stato coniato, il suo significato era user e home directory erano localizzate lì. la risorsa di sistema unix / universal è in realtà un backronym.
jlliagre,

3
@jlliagre Awesome. Ho trovato un altro thread che in realtà ha una fonte autorevole di quello. us.generation-nt.com/answer/…
Shawn J. Goff

2
La maggior parte dei primi programmatori C erano i primi programmatori FORTRAN. Il modo in cui hai digitato numeri interi in Fortran IV è stato quello di avviare l'identificatore con un carattere da 'i' a 'n', tutto il resto era un numero REALE. Pertanto gli indici di loop erano tipicamente i, j o ​​k; che era sufficiente per le matrici che allora i programmatori scientifici stavano distruggendo.
Tom Murphy,

@ TomMurphy, la maggior parte delle persone che hanno iniziato con C erano probabilmente programmatori di linguaggio assembly, o forse utenti BCPL o B. RATFOR è stato inventato per le povere anime che non avevano un linguaggio decente a portata di mano. E il libro "Strumenti software" di Kernighan e Plaugher è stato scritto in (ed elenca un preprocessore completo per) RATFOR. Vale ancora la pena leggere.
vonbrand,

1
/usrnon era "Universal System Resources", era davvero l' utente . Vedi Youtube: AT&T Archives: il sistema operativo UNIX (prodotto intorno al 1982) dove, a circa 13 minuti e 35 secondi, /usr/bwkè chiaramente pronunciato "user-bwk" ed /usrè pronunciato "slash-user" da Brian W. Kernighan . / usr è anche implicito che sia la posizione che contiene le home directory nel diagramma a 13min 30sec. Non penso che tu possa diventare molto più autorevole di così.
un CVn

4

Un fattore che nessuno ha menzionato è che, data la tecnologia della tastiera dell'epoca, c'era un vantaggio sostanziale nell'uso di nomi brevi più facili da digitare. Stampa uservs. usr, anche su un teletipo 110-BPS, probabilmente non era un grosso problema; dover scrivere quella lettera in più era probabilmente più significativo.


1

Tutte le altre directory sottostanti sembrano essere esattamente ciò che si potrebbe immaginare,

C'è anche / var, / mnt e / opt;)

ma questi due sembrano strani, li avrei sempre immaginati come utente e temp.

Quasi lì. Come ha detto Shawn, "utente" sta per "Risorse di sistema universali" (anche se altre risorse secondo Google indicano che sta per "Risorse di sistema Unix").

C'è qualche motivo storico per l'ortografia?

Scorciatoie, abbreviazioni. Ricorda che i comandi in qualsiasi sistema operativo sono pensati per l'accesso sia interattivo che programmatico. In particolare per l'amministrazione dei sistemi in cui lo scripting veloce è una delle preoccupazioni principali, le abbreviazioni, i mnemonici sono altrettanto buoni (o persino migliori) della parola / comando di ortografia completa.

Inoltre, nel corso della giornata, se ti connettessi in remoto tramite un modem lento come melassa, radere un paio di vocali qui e là renderebbe la tua vita più facile (o meno infelice se fossi un amministratore di sistema cercando di scoprire cosa diavolo è sbagliato con una scatola remota.)

Come detto prima, non è univoco per / usr e / tmp (vedere / var, / mnt e / opt).

Inoltre, non è univoco per Unix. Prendi il DOS per esempio (chkdsk, per esempio.) I mnemonici in cui ti radi le vocali sono un concetto potente e pratico.

Anche nei linguaggi naturali (come i linguaggi semitici) esiste il concetto (dove la radice delle parole è universalmente e quasi inequivocabilmente identificata da gruppi di 3 consonanti). È un innato meccanismo umano per la gestione delle informazioni.


Il / var, / mnt e / opt sono arrivati ​​MOLTO più tardi. Tuttavia, / bin, / dev e / etc erano in UNIX molto presto e per lo stesso motivo la gente ha affermato - perché i tty erano lenti e non tutti erano CRT e spazio su disco. C'erano sistemi di avvio UNIX là fuori che utilizzavano nastro di carta, piccole unità (per quanto riguarda lo spazio) costose e persino floppy da 8 ". Lo spazio per quelli era un premio.
Arcege

1
Si potrebbe sostenere che le lingue semitiche in realtà non usano consonanti, ma sillabe con vocali indeterminate. Quindi, le sillabe di radice forniscono un significato semantico, mentre le vocali specifiche aggiungono un significato grammaticale.
ninjalj,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.