Wann wurde die Unterscheidung zwischen Einzelbenutzer- und Mehrbenutzermodus unter UNIX erstmals eingeführt?

Wann wurde die Unterscheidung zwischen Einzelbenutzer- und Mehrbenutzermodus unter UNIX erstmals eingeführt?

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/bashan ihn übergeben, und wechselt dann effektiv initin 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, tty0es tty5wurde jedoch Vorsorge getroffen, vier weitere TTYs hinzuzufügen).

Unix v1-Handbuchheißt es zum Abschnitt 4, ttySeite:

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 uservs.“ multi userist, 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.

/usrAnschließ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.

verwandte Informationen