/ usr /, zakładam, że jest użytkownikiem komputera.
Blisko.
Unix zaczynał jako system operacyjny dla wielu użytkowników, więc nie jest to „użytkownik”, to „ użytkownicy ” w liczbie mnogiej.
Przed wydaniem AT&T Unix System V Release 4 (SVR4) w 1988 r. Z narzędziami zarządzania użytkownikami domyślnie tworzącymi katalogi domowe użytkowników /home
, konwencjonalna lokalizacja to /usr
.¹ Twój $HOME
katalog mógł znajdować /usr/jfw
się w pudełku Systemu III .
/usr
również zawarte, wtedy jak i teraz /usr/bin
, /usr/lib
itp Doświadczenie wykazało, że segregacji katalogów domowych była dobra praktyka zarządzania systemem, więc ze /home
zmianą polityki w SVR4, to pozostawił wszystko, co obecnie uważamy za przynależności /usr
.
/usr
wciąż miał dobry powód, by trzymać się tej nazwy: pozostały tylko pliki, które nie musiały być dostępne, dopóki system nie uruchomił się wystarczająco daleko, by obsługiwać normalne interaktywne użytkowanie. Oznacza to, że pozostały zorientowane na użytkownika części systemu operacyjnego. Oznaczało to, że /usr
może on znajdować się na innym woluminie fizycznym, co było dobrą rzeczą w czasach 92 MB dysków twardych wielkości pralek .
Wczesne systemy uniksowe /usr
starały się unikać podstawowych plików systemu operacyjnego, aby nadal można było uruchomić system w trybie pojedynczego użytkownika², nawet jeśli z /usr
jakiegoś powodu wolumin był niemożliwy do zamontowania . Wolumin główny zawierał wystarczające narzędzia do przywrócenia /usr
woluminu online.
Kilka smaki Unix teraz pominąć tę starą zasadę konstrukcyjną, ponieważ nawet małe systemy wbudowane mają wystarczająco dużo miejsca zarówno dla tradycyjnych plików głośności korzeń i wszystko /usr
na jednym volume.³ Red Hat Enterprise Linux, Solaris i Cygwin dowiązanie symboliczne /bin
do /usr/bin
i /lib
aby /usr/lib
tak, że nie ma dłuższa różnica między tymi katalogami.
... / local / ... oczywiście oznacza lokalny komputer ...
Tak. Odnosi się do faktu, że pliki poniżej /usr/local
powinny być specyficzne dla tego pojedynczego systemu. Pliki, które są w jakikolwiek sposób ogólne, powinny znajdować się gdzie indziej.
Ma to również swoje korzenie w sposobie, w jaki systemy Unix były powszechnie używane dekady temu, kiedy wszystko to zostało znormalizowane. Ponownie, dyski twarde w tamtych czasach były nieporęczne, naprawdę drogie i mało przechowywane według dzisiejszych standardów. Aby zaoszczędzić pieniądze i miejsce na dyskach, laboratorium komputerowe pełne skrzynek Unix często /usr
dzieliło większość z NFS lub innego sieciowego protokołu udostępniania plików, więc każde pudełko nie musiało mieć własnej nadmiarowej kopii. Pliki specyficzne dla pojedynczego pole pójdzie pod /usr/local
, co byłoby oddzielnym tomem od /usr
.
To historyczne dziedzictwo jest powodem, dla którego większość programów uniksowych innych firm jest instalowana /usr/local
ręcznie. Większość takiego oprogramowania pozwala zainstalować pakiet w innym miejscu, ale nie dokonując wyboru, otrzymujesz bezpieczne ustawienie domyślne, które nie koliduje z innymi popularnymi lokalizacjami instalacji o bardziej szczegółowych celach.
Istnieją dobre powody, aby zamiast tego instalować oprogramowanie w innym miejscu. Zespół Apple MacOS robi to, gdy buduje, powiedzmy, bash
z kodu źródłowego GNU Bash . Używają /
jako prefiksu instalacji, zastępując /usr/local
domyślny, więc Bash kończy się w /bin
.
Innym przykładem jest sposób, w jaki starsze systemy Linux segregowały swoje oprogramowanie GUI /usr/X11R6
, aby oddzielić je od tradycyjnego wiersza poleceń i curses
oprogramowania opartego na oprogramowaniu. Dokonano tego po prostu nadpisując domyślny /usr/local
przedrostek za pomocą /usr/X11R6
.⁵
A co to jest / bin?
Jest skrótem od „binarny”, co w tym kontekście oznacza „plik, który nie jest zwykłym tekstem”. Większość takich plików to pliki wykonywalne w systemie Unix, więc te dwa terminy stały się synonimami w niektórych kręgach. („Proszę, zbudujcie mnie plik binarny dla RHEL 7, Fred.”)
Pliki tekstowe na polu Unix żyć gdzie indziej: /etc
, /usr/include
, /usr/share
, itd.
Dawno, dawno temu nawet skrypty powłoki - które są zwykłymi plikami tekstowymi - były trzymane poza bin
katalogami, ale ta linia również się zacierała. Dziś bin
katalogi zazwyczaj zawierają dowolny plik wykonywalny, czy to ściśle „binarny”, czy nie
Przypisy i dygresje :
Prymitywna natura narzędzi do zarządzania użytkownikami przed SVR4 oznaczała, że HOME=/usr/$NAME
schemat został jedynie udokumentowany jako konwencja, a nie domyślnie wymuszony przez narzędzia programowe.
Możesz to zobaczyć na str. 4-8 „ Podręcznika administratora systemu AT&T Unix System V Release 3.2 : tutaj AT&T zaleca stary /usr/$NAME
schemat ostatniej ostatniej wersji Unixa przed wydaniem SVR4.
W starszych systemach uniksowych administratorzy systemu dość często wybierali inny schemat, który był dla nich bardziej sensowny. Ludzie będący ludźmi oznaczali, że wymyślono wiele różnych schematów.
Jednym ze schematów, z którym się zetknąłem, /home/$NAME
stał się standardem /u/$NAME
.
Inny system użyłem na początku 1990 mieliśmy tak wielu użytkowników, którzy nie mogli dopasować wszystkie katalogi domowe na jednym tomie fizycznej, dlatego stosowany schemat podobny /u1/$NAME
, /u2/$NAME
i tak dalej, o ile pamiętam. To, na którym dysku skończył się Twój katalog domowy, było po prostu kwestią tego, który z nich miał miejsce w momencie tworzenia konta.
Możesz uruchomić system macOS w trybie pojedynczego użytkownika, przytrzymując go Cmd-Spodczas uruchamiania. Puść, gdy ekran zmieni kolor na czarny i zobaczysz jasnoszary tekst. To tak, jakby działało pod terminalem, ale przejmuje cały ekran, ponieważ GUI jeszcze się nie uruchomił.
Uważaj, biegniesz jak root
.
Wpisz „exit” w monicie użytkownika root, aby wyjść z trybu jednego użytkownika i kontynuować uruchamianie w trybie GUI dla wielu użytkowników.
Uniksowe systemy operacyjne, które nadal wydają się utrzymywać krytyczne pliki trybu pojedynczego użytkownika, /usr
mogą w rzeczywistości tego nie robić. Kiedyś sprawiłem, że pudełko FreeBSD 9 nie uruchamia się, przechodząc /usr
na wolumin ZFS. Zapomniałem, że funkcje ZFS-on-root nie wylądowały aż do FreeBSD 10, tworząc Catch 22 : system operacyjny potrzebował plików /usr
do zamontowania /usr
!
To było wystarczająco złe, ale gdyby FreeBSD 9 nadal /usr
nie pozwalał na uruchomienie jednego użytkownika , mógłbym to naprawić. Ponieważ nie uruchomiłby się nawet w trybie pojedynczego użytkownika, ponieważ nie można go /usr
było zamontować, jasne jest, że tradycja została w jakiś sposób naruszona. Musiałem uruchomić komputer z ratunkowej płyty CD, aby ponownie uruchomić system.
Tutaj też otrzymujemy /usr/share
: segreguje pliki, które mogą być współużytkowane nawet między skrzynkami Unix z różnymi typami procesorów. Zwykle pliki tekstowe: strony podręcznika, słownik itp.
„X11R6” odnosi się do wersji systemu X Window, która stanowiła podstawę graficznych interfejsów systemu Linux w czasie, gdy ta konwencja była powszechna. Systemy Linux generalnie przestały segregować oprogramowanie GUI w momencie, gdy X11R6 zostało zastąpione X.Org .
Oryginalne systemy uniksowe zachowały swoje podstawowe skrypty powłoki /etc
, aby uniknąć mieszania ich z prawdziwymi plikami binarnymi /bin
.