/ usr /, ich nehme an, ist der Benutzer des Computers.
Schließen.
Unix begann als Mehrbenutzer-Betriebssystem, es ist also nicht "der Benutzer", sondern "der Benutzer " im Plural.
Vor der Veröffentlichung von AT & T Unix System V Release 4 (SVR4) im Jahr 1988 mit seinen Benutzerverwaltungstools, in denen standardmäßig Benutzerverzeichnisse erstellt wurden /home
, war der herkömmliche Speicherort /usr
.¹ $HOME
Möglicherweise befand sich Ihr Verzeichnis /usr/jfw
auf einer System III- Box.
/usr
auch enthalten ist , damals wie heute /usr/bin
, /usr/lib
usw. Die Erfahrung hat gezeigt , dass die Home - Verzeichnisse war gut System - Management - Praxis Absonderungs, so mit der /home
Änderung der Politik in SVR4, es hinter sich gelassen alles denken wir jetzt , wie in angehören /usr
.
/usr
Es gab immer noch einen guten Grund, an dem Namen festzuhalten: Zurück blieben Dateien, die erst verfügbar sein mussten, wenn das System weit genug hochgefahren wurde, um die normale interaktive Nutzung zu unterstützen. Das heißt, was zurückblieb, waren die benutzerorientierten Teile des Betriebssystems. Dies bedeutete, dass es /usr
sich um ein anderes physisches Volume handeln könnte, was zu Zeiten von 92-MB-Festplattenlaufwerken in der Größe von Waschmaschinen eine gute Sache war .
Frühe Unix-Systeme haben darauf geachtet, dass die Kernbetriebssystemdateien nicht vorhanden sind, /usr
damit Sie immer noch in den Einzelbenutzermodus² booten können, auch wenn das /usr
Volume aus irgendeinem Grund nicht bereitgestellt werden konnte. Das Root-Volume enthielt genügend Tools, um das /usr
Volume wieder online zu stellen.
Mehrere Unix - Varianten außer Acht lassen nun dieses alte Prinzip Design , da selbst kleine eingebettete Systeme für genügend Platz sowohl für die traditionellen Root - Volume - Dateien und alle /usr
auf einem einzigen volume.³ Red Hat Enterprise Linux, Solaris und Cygwin Symlink /bin
auf /usr/bin
und /lib
zu , /usr/lib
so dass es keine länger keinen Unterschied zwischen diesen Verzeichnissen.
... / local / ... steht offensichtlich für den lokalen Computer ...
Ja. Es bezieht sich auf die Tatsache, dass Dateien unter /usr/local
für dieses einzelne System spezifisch sein sollen. Dateien, die in irgendeiner Weise generisch sind, sollten woanders abgelegt werden.
Dies hat auch Wurzeln in der Art und Weise, wie Unix-Systeme vor Jahrzehnten verwendet wurden, als dies alles standardisiert wurde. Wiederum waren Festplatten der damaligen Zeit sperrig, sehr teuer und nach heutigen Maßstäben wenig gelagert. Um Geld und Platz auf den Festplatten zu sparen, wurde in einem Computerraum mit Unix-Boxen häufig der größte Teil von /usr
NFS oder einem anderen Netzwerk-File-Sharing-Protokoll gemeinsam genutzt, sodass nicht für jede Box eine eigene redundante Kopie erforderlich war box würde untergehen /usr/local
, das wäre ein separates volumen von /usr
.
Dieses historische Erbe ist der Grund, warum die meisten Unix-Programme von Drittanbietern standardmäßig /usr/local
von Hand installiert werden. Mit den meisten derartigen Softwareprogrammen können Sie das Paket an einem anderen Ort installieren. Wenn Sie jedoch keine Auswahl treffen, erhalten Sie die sichere Standardeinstellung, die andere häufig verwendete Installationsorte für bestimmte Zwecke nicht beeinträchtigt.
Es gibt gute Gründe, die Software an einem anderen Ort installieren zu lassen. Das macOS-Team von Apple tut dies, wenn es beispielsweise bash
aus dem GNU Bash-Quellcode erstellt . Sie werden /
als Installationspräfix verwendet und überschreiben das /usr/local
Standardpräfix, sodass Bash in landet /bin
.
Ein weiteres Beispiel ist die Art und Weise, in der ältere Linux-Systeme ihre GUI-Software /usr/X11R6
von der herkömmlichen Befehlszeile und curses
-basierter Software getrennt haben. Dies wurde einfach durch Überschreiben des Standardpräfixes /usr/local
mit /usr/X11R6
.⁵ erreicht
Und was ist / bin?
Es ist die Abkürzung für "binär" und bedeutet in diesem Zusammenhang "eine Datei, die kein reiner Text ist". Die meisten dieser Dateien sind auf einer Unix-Box ausführbar , so dass diese beiden Begriffe in manchen Kreisen synonym sind. ("Bitte baue mir eine Binärdatei für RHEL 7, Fred.")
Text - Dateien auf einer Unix - Box anderswo leben: /etc
, /usr/include
, /usr/share
etc.
Es war einmal so, dass selbst Shell-Skripte - das sind reine Textdateien - aus bin
Verzeichnissen herausgehalten wurden, aber auch diese Zeile ist verschwommen. Heutzutage bin
enthalten Verzeichnisse normalerweise jede Art von ausführbarer Datei, ob rein "binär" oder nicht
Fußnoten und Exkursionen :
Der primitive Charakter der Benutzerverwaltungstools vor SVR4 bedeutete, dass das HOME=/usr/$NAME
Schema lediglich als Konvention dokumentiert und nicht standardmäßig von Softwaretools erzwungen wurde.
Sie finden dies auf Seite 4-8 des " AT & T Unix System V Release 3.2-Systemverwalterhandbuchs" : Hier sieht man, wie AT & T das alte /usr/$NAME
Schema in der letzten Hauptversion von Unix vor dem Erscheinen von SVR4 empfiehlt .
In älteren Unix-Systemen war es üblich, dass die Systemadministratoren ein anderes Schema auswählten, das für sie sinnvoller war. Menschen, die Menschen sind, das bedeutete, dass viele verschiedene Schemata erfunden wurden.
Ein Schema, auf das ich stieß, /home/$NAME
wurde zum Standard /u/$NAME
.
Ein anderes System habe ich in den frühen 1990er Jahren hatte so viele Nutzer , dass sie nicht alle Home - Verzeichnisse auf einem einzigen physischen Volumen passen könnte, so verwendet sie ein System wie /u1/$NAME
, /u2/$NAME
und so weiter, wie ich mich erinnere. Auf welcher Festplatte sich Ihr Home-Verzeichnis befand, war einfach eine Frage des Speicherplatzes, der sich zum Zeitpunkt der Erstellung Ihres Kontos darauf befand.
Sie können eine macOS-Box im Einzelbenutzermodus booten, indem Sie sie beim Booten gedrückt halten Cmd-S. Lassen Sie los, sobald der Bildschirm schwarz wird und Sie hellgrauen Text sehen. Es ist, als würde man unter dem Terminal laufen, aber es nimmt den gesamten Bildschirm ein, da die GUI noch nicht gestartet wurde.
Sei vorsichtig, du rennst als root
.
Geben Sie an der Single-User-Root-Eingabeaufforderung "exit" ein, um den Single-User-Modus zu verlassen und mit dem Booten im Multi-User-GUI-Modus fortzufahren.
Unixy OSes , die noch erscheinen kritische Einbenutzermodus Dateien aus halten zu /usr
dürfen, in der Tat zu tun in diesen Tagen so. Ich habe einmal eine FreeBSD 9-Box durch Verschieben /usr
auf ein ZFS-Volume nicht mehr bootfähig gemacht . Ich habe vergessen, dass die ZFS-on-Root-Funktionen erst mit FreeBSD 10 gelandet sind und einen Catch 22 erstellt haben : Das Betriebssystem benötigte Dateien, /usr
um zu mounten /usr
!
Das war schon schlimm genug, aber wenn FreeBSD 9 immer noch seine Single-User-Boot-Sachen raushielt /usr
, hätte ich das Problem beheben können. Da es nicht einmal im Einzelbenutzermodus booten würde, wenn es nicht /usr
einbindbar wäre, wurde diese Tradition offensichtlich irgendwie verletzt. Ich musste von einer Rettungs-CD booten, um das System wieder hochzufahren.
Hier bekommen wir auch /usr/share
: Es trennt Dateien, die sogar von Unix-Boxen mit verschiedenen Prozessortypen gemeinsam genutzt werden können. In der Regel Textdateien: Manpages, das Wörterbuch usw.
"X11R6" bezog sich auf die Version des X Window-Systems, die Linux-GUIs zu der Zeit untermauerte, als diese Konvention vorherrschte. Linux-Systeme hörten im Allgemeinen auf, die GUI-Software zu trennen, als X11R6 durch X.Org ersetzt wurde .
Die ursprünglichen Unix-Systeme behielten ihre Kern-Shell-Skripte bei, /etc
um zu vermeiden, dass sie mit den echten Binärdateien in verwechselt werden /bin
.