Dlaczego w katalogach / usr i / tmp dla systemu Linux brakuje samogłosek w pisowni?

34

Często zaczynałem o tym myśleć, ale nigdy nie znalazłem dobrej odpowiedzi. Dlaczego te dwa katalogi uniksowe nie są, /usera /tempzamiast tego?

Wszystkie pozostałe katalogi rootwydają się dokładnie takie, jak można by się domyślać, ale te dwa wydają się dziwne, zawsze bym odgadł je jako useri temp.

Czy jest jakaś historyczna przyczyna pisowni?

Lazer
źródło
2
Coś mi mówi, że to przeniesienie z Uniksa. Przy takim założeniu domyślam się, że większość takich skrótów opiera się na wyraźnych sylabach.
Ken
17
Pewnego razu Ken Thompson został zapytany, czy zrobiłby coś innego, gdyby przeprojektował Unixa, i odpowiedział „„ przeliterowałbym twór za pomocą e ”.
mattdm,
3
„Wszystkie inne katalogi w katalogu głównym wydają się dokładnie takie, jak można by się domyślać” -> Nie wydaje mi się to prawdą. Z wyjątkiem boot, home, mediaa rootwszystko inne jest skrócony. mntbrakuje też samogłosek.
phunehehe
7
Myślałem, że „u” to samogłoska…
Pan Shickadance,
1
@Pan. Shickadance: tak jest.
0xC0000022L,

Odpowiedzi:

49

Tak, były powody. Są wyraźne użytkownika i temp. hasło jest podobne, podobnie jak resolv.conf. Unix to przyjazny dla użytkownika, antagonistyczny system operacyjny.

Byłem studentem, gdy 300 modemów Baud było normą. Zazdroszczę moim kolegom, ponieważ miałem terminal Silent 700 z Control Data, w którym pracowałem. Można było zobaczyć opóźnienie w wpisaniu każdej postaci i oczekiwaniu na jej powtórzenie. Każda postać się liczyła; Uważam też, że sprzyja to początkowi mówienia.

Hjkl z vi ma historię, którą niewielu zna. vi został opracowany przez Billa Joya, gdy był studentem UCB w tych samych latach. Terminale ADM 3a w Cory Hall miały klawisze strzałek nad tymi literami

Tom Murphy
źródło
22
Nie sądzę, że kiedy został zaprojektowany, pomysł bycia „przyjaznym dla ekspertów, antagonistyczny wobec użytkownika” był częścią celu. Wszyscy użytkownicy byli raczej ekspertami, więc nie było znaczącego rozróżnienia.
mattdm,
7
LOL „Przyjazny dla ekspertów, antagonistyczny dla użytkownika”. To sprawiło, że mój dzień. +1!
nico,
5
Tylko mała nuta (bez żadnej korekty). Chociaż czasami jest wymawiane jako „użytkownik”, / usr oznacza „uniwersalny zasób systemowy” lub „uniksowy zasób systemowy”. Cokolwiek to jest, zaginęło wśród mgły starożytnej historii Uniksa :)
luis.espinal
20
W momencie ukrycia / usr miało to znaczenie dla użytkownika i tam znajdowały się katalogi domowe. Zasób systemowy unix / universal to tak naprawdę backronym.
jlliagre
2
Kiedy ukazał się Unix, 300 bps było bujne . Było tam 75 bitów na sekundę, obsługiwanych przez niewygodne, powolne, elektromechaniczne teletypewritery (często Teletype® ASR-33).
Alexios,
20

Są pozostałością po Uniksie. Brakowało pamięci i miejsca na dysku. Wykrawanie kilku samogłosek i innych skrótów dało prawdziwe oszczędności. Kilka bloków dysku lub kilka bajtów może oznaczać różnicę w możliwości uruchomienia programu lub nie. (Kiedyś musiałem przyciąć program o 24 bajty, zanim się uruchomi).

Również, jak zauważył Tom, prędkości terminalu były wolne. 1200 bodów wprowadzono jako dużą prędkość i tak było. Pracowałem z jednym systemem, który używał teletypu o połowie prędkości (55 bodów lub 5 cps) jako konsoli.

W systemach z interfejsami graficznymi na ogół nie ma to większego znaczenia, ponieważ przeciętny użytkownik nie będzie się w nich bawił. Katalogi są zwykle dobrze udokumentowane na hierstronie man.

Zmiana na dłuższe nazwy spowodowałaby wiele problemów dla istniejących programów. Ograniczyłoby to również przenośność skryptu. Łączenie wielu nazw z tymi samymi katalogami byłoby bardziej mylące niż pomocne.

EDYCJA: PDP-7, na którym opracowano Uniksa, miał podstawową konfigurację pamięci 4KW i maksymalnie 32KW. Słowa o szerokości 18 bitów. Wprowadzono typ teletekstu, więc prędkość prawdopodobnie wynosiła 110 bodów lub 10 cps, około 100 słów, co jest znacznie wolniejsze niż mowa.

BillThor
źródło
8
Nie kupuję mmory i dsk spc, ale powolne tltyps. Jak długo używasz skrótów - dlaczego nie?
użytkownik nieznany
@ użytkownik nieznany: jesteś młody i nigdy nie musiałeś się martwić o pamięć lub miejsce na dysku. Mój pierwszy komputer ma teraz 30 lat - zachwycam się specyfikacją.
1
Nigdy nie pisałem ani nie sprawdzałem systemu plików dogłębnie, ale czy nazwa pliku / katalogu w systemie plików zajmuje więcej lub mniej miejsca, w zależności od 1 znaku? Same pliki zawsze zajmują wielokrotność pewnego rozmiaru - dziś 4k. Tak więc większość plików zawierających ścieżkę do / usr lub / tmp nie będzie skutecznie zmniejszać się ani powiększać, w zależności od jednego e. Cóż - czasami będą, a potem rosną przez cały blok, ale rzadko. A w pamięci RAM? Nie wiem
użytkownik nieznany
1
i pisanie byłoby bardziej denerwujące. „tymczasowe vs tmp” ugh ... dlaczego ktokolwiek miałby ich chcieć dłużej?
Xenoterracide
4
Nowoczesne katalogi uniksowe mają wpisy o zmiennej długości. Po powrocie do Research Unix pozycja katalogu zawierała stałe 16 bajtów: 14 dla nazwy pliku, 2 dla numeru i-węzła. Być może był mniejszy, gdy kanonizowano / usr itp.
geekozaur
5

Dziwi mnie, że nikt jeszcze nie skomentował /user. Ten jest oczywisty: ponieważ nie jest to „użytkownik”, jest to „Universal System Resources”.

Jeśli chodzi o /tmpto, jest po prostu krótszy i łatwiejszy do pisania. Programiści C mają zwyczaj używania krótkich nazw, gdy jest to możliwe, ponieważ często wpisują je w programie. Bardzo często stosuje się zmienną tymczasową o nazwie „tmp” zamiast „temp”. Z tego samego powodu używasz „i” i dla indeksu w pętli for zamiast „index” lub „counter”.

Shawn J. Goff
źródło
22
W momencie ukrycia / usr miało to znaczenie dla użytkownika i tam znajdowały się katalogi domowe. Zasób systemowy unix / universal to tak naprawdę backronym.
jlliagre
3
@jlliagre Awesome. Znalazłem inny wątek, który faktycznie ma wiarygodne źródło tego. us.generation-nt.com/answer/…
Shawn J. Goff
2
Większość wczesnych programistów C była pierwszymi programistami FORTRAN. Sposób wpisywania liczb całkowitych w Fortran IV polegał na uruchomieniu identyfikatora znakiem od „i” do „n”, wszystko inne było PRAWDZIWĄ liczbą. Zatem indeksy pętli były zwykle i, j lub k; co było wystarczające dla matryc, które my, programiści naukowi, wówczas manglowaliśmy.
Tom Murphy,
@TomMurphy, większość ludzi, którzy zaczynali od C, byli prawdopodobnie programistami asemblerowymi, a może użytkownikami BCPL lub B. RATFOR został wymyślony dla biednych dusz, które nie miały pod ręką przyzwoitego języka. Książka Kernighan and Plaugher „Narzędzia programowe” została napisana w (i zawiera pełny preprocesor) RATFOR. Nadal bardzo warte przeczytania.
vonbrand
1
/usrnie było „Universal System Resources”, to naprawdę był użytkownik . Zobacz Youtube: Archiwa AT&T: System operacyjny UNIX (wyprodukowany około 1982 r.), W którym około 13 minut i 35 sekund /usr/bwkjest wyraźnie wymówiony jako „user-bwk” i /usrjest wymawiany jako „slash-user” przez Briana W. Kernighana . Sugeruje się również, że / usr jest lokalizacją zawierającą katalogi domowe na schemacie po 13min 30sek. Nie sądzę, że można uzyskać znacznie więcej autorytetów niż to.
CVn
4

Czynnikiem, o którym nikt nie wspominał, jest fakt, że biorąc pod uwagę ówczesną technologię klawiatury, istniała znaczna zaleta w używaniu krótkich nazw, które łatwiej pisać. Drukowanie w userporównaniu usrz telegrafem 110 BPS prawdopodobnie nie było wielkim problemem; konieczność wpisania tej dodatkowej litery była prawdopodobnie bardziej znacząca.

Keith Thompson
źródło
1

Wszystkie inne katalogi w katalogu głównym wydają się dokładnie takie, jak można by się domyślać,

Istnieją również / var, / mnt i / opt;)

ale te dwa wydają się dziwne, zawsze zgadywałbym je jako użytkownika i temp.

Prawie na miejscu. Jak powiedział Shawn, „użytkownik” oznacza „Universal System Resources” (choć inne zasoby według Google wskazują, że oznacza „Unix System Resources”).

Czy jest jakaś historyczna przyczyna pisowni?

Skróty, skróty. Pamiętaj, że polecenia w dowolnym systemie operacyjnym służą do uzyskiwania dostępu zarówno interaktywnie, jak i programowo. W szczególności w przypadku administracji systemami, w których szybkie skrypty są jednym z głównych problemów, skróty, mnemoniki są równie dobre (lub nawet lepsze) niż pełne słowo / polecenie.

Również w przeszłości, jeśli łączysz się zdalnie za pośrednictwem modemu wolno-jak-melasowego, golenie kilku samogłosek tutaj i tam uczyni twoje życie łatwiejszym (lub mniej nieszczęśliwym, jeśli będziesz administratorem próbującym dowiedzieć się, co do cholery jest zły ze zdalnym urządzeniem).

Jak powiedziano wcześniej, nie jest on unikalny dla / usr i / tmp (patrz / var, / mnt i / opt).

Ponadto nie jest unikalny dla Uniksa. Weźmy na przykład DOS (na przykład chkdsk). Mnemoniki, w których golisz samogłoski, to potężna, poręczna koncepcja.

Nawet w językach naturalnych (takich jak języki semickie) istnieje koncepcja (gdzie rdzeń słów jest powszechnie i prawie jednoznacznie identyfikowany przez grupy 3-spółgłoskowe). Jest to wrodzony ludzki mechanizm zarządzania informacją.

luis.espinal
źródło
Opcje / var, / mnt i / opt pojawiły się DUŻO później. Jednak, / bin, / dev i / etc były w bardzo wczesnym UNIX-ie iz tego samego powodu ludzie mówili - ponieważ tty były wolne i nie wszystkie były CRT i miejscem na dysku. Istnieją systemy rozruchowe UNIX, które używają taśmy papierowej, małych (kosmicznych) drogich napędów, a nawet 8-calowych dyskietek. Miejsce na te były na wagę
złota
1
Można argumentować, że języki semickie w rzeczywistości nie używają spółgłosek, ale sylaby z nieokreślonymi samogłoskami. Tak więc sylaby źródłowe mają znaczenie semantyczne, a określone samogłoski dodają znaczenie gramatyczne.
ninjalj