In praktisch jedem UNIX-ähnlichen Betriebssystem wird heute zwischen Mehrbenutzer- und Einzelbenutzermodus unterschieden. Der Einzelbenutzermodus ist im Allgemeinen für die Systemwartung auf niedriger Ebene vorgesehen, die nicht durchgeführt werden kann, während das System normal läuft, selbst mit einem reduzierten Satz von Diensten (häufig Dateisystemwartung, die im Allgemeinen offline durchgeführt werden muss).
Allerdings musste offensichtlich jemand den ersten Code schreiben, um den Einzelbenutzermodus tatsächlich vom Mehrbenutzermodus zu unterscheiden.
Ich vermute, dass der Mehrbenutzermodus nach dem Einzelbenutzermodus kam, einfach weil der Mehrbenutzermodus mehr Dinge tut und es sinnvoll ist, das System zunächst im Einzelbenutzermodus zu starten und erst später in den Mehrbenutzermodus zu wechseln (und so macht es zumindest Linux; der Kernel arbeitet im „Einzelbenutzer“-Modus, wie sich zeigt, wenn Sie eg init=/bin/bash
an ihn übergeben, und wechselt dann effektiv init
in den Mehrbenutzermodus), aber meine Frage ist:wann und bei welcher Variante/Version wurde erstmals zwischen beiden unterschieden?
Antwort1
Unix machte diese Unterscheidung von Anfang an, also seit der Veröffentlichung von Version 1 im Jahr 1971.
Das System wurde im Mehrbenutzermodus gebootet (d. h. Benutzer waren mit den verfügbaren seriellen Schnittstellen verbunden, tty0
es tty5
wurde jedoch Vorsorge getroffen, vier weitere TTYs hinzuzufügen).
Unix v1-Handbuchheißt es zum Abschnitt 4, tty
Seite:
By appropriate console switch settings, it is possible to
cause UNIX to come up as a single—user system with I/O on
this device.
Beachten Sie, dass bei dieser ersten Unix-Version das Erstellen der Anmeldeprozesse für jede serielle Leitung fest codiert war und vom Init-Prozess selbst durchgeführt wurde. Die Auswahl des zu verwendenden Modus erfolgte vor dem Booten und das Umschalten in den Mehrbenutzermodus erfolgte durch Ändern der Schaltereinstellungen und Verlassen der Shell im Einzelbenutzermodus.
Später, mit Unix Version 7 (1979), wurde das System anstelle von Hardwareschaltern zuerst im Einzelbenutzermodus gebootet und nach dem Beenden der Einzelbenutzer-Shell in den Mehrbenutzermodus gewechselt.
Noch später wurde die Datei mit System III (1981) eingeführt inittab
. Damit war es möglich, mehrere Runlevel besser zu definieren und zu konfigurieren und den zu verwendenden auszuwählen. Runlevel 1 war Einzelbenutzer und Runlevel 2 Mehrbenutzer. Wenn die inittab-Datei fehlte, bootete das System im Einzelbenutzermodus.
Antwort2
Ursprünglich öffnete init im Einzelbenutzermodus eine Shell auf der Konsole und wenn diese Shell beendet wurde, öffnete sie das Login-Programm (eigentlich Getty) auf den seriellen Schnittstellen, mountete die restlichen Dateisysteme und startete alle Daemons, die für die Ausführung zu diesem Zeitpunkt konfiguriert waren.
Dies wurde alles durch die Einträge in /etc/inittab gesteuert.
Dies alles war in den PDP-11-Versionen von Unix in den frühen 1970er Jahren vorhanden, und ich glaube, schon davor.
Es gibt natürlich endlos viele Einzelheiten, aber das ist der Kern.
Antwort3
Der wahrscheinlichste Grund für die Verwendung der Begriffe „ single user
vs.“ multi user
ist, dass UNIX direkt nach dem Booten nur über ein schreibgeschütztes, gemountetes Root-Dateisystem verfügte.
Als nächstes wurde das Root-Dateisystem (ca. 1 MB) geprüft und schreibgeschützt neu gemountet.
/usr
Anschließend wurde das Dateisystem geprüft und gemountet.
Da sich Benutzer erst anmelden können, nachdem /usr/
gemountet wurde, ist UNIX ab diesem Zeitpunkt in der Lage, eine Mehrbenutzerumgebung zu unterstützen.