Antworten:
Unix-Runlevel sind orthogonal (im Sinne "nicht verwandt", "unabhängig von" - siehe Kommentare) zu Schutzringen.
Runlevels sind im Grunde genommen Laufzeitkonfigurationen / -zustände des gesamten Betriebssystems. Sie beschreiben, welche Dienste verfügbar sind ("für den Benutzer") - wie SSH-Zugriff, MTA, Dateiserver, GUI.
Ringe sind ein hardwareunterstütztes Konzept, das eine genauere Kontrolle über die Hardware ermöglicht (wie auf der Wikipedia-Seite erwähnt, auf die Sie verlinken). Beispielsweise kann Code, der in einem höheren Ring ausgeführt wird, einige CPU-Anweisungen möglicherweise nicht ausführen.
Linux auf der x86-Architektur verwendet normalerweise Ring0 für den Kernel (einschließlich Gerätetreiber) und Ring3 für Userspace-Anwendungen (unabhängig davon, ob sie von root oder einem anderen normalen oder privilegierten Benutzer ausgeführt werden).
Daher kann man nicht wirklich sagen, dass ein Runlevel in einem bestimmten Ring ausgeführt wird - in Ring3 und im Kernel (Ring0) werden immer 1 Userspace-Anwendungen (mindestens PID 1 - the init
) ausgeführt.
1 Wie immer bedeutet "immer" wirklich "fast immer", da Sie "normale" Programme in Ring0 ausführen können, aber es ist unwahrscheinlich, dass Sie dies im wirklichen Leben sehen (es sei denn, Sie arbeiten an HPC).
Die beiden Konzepte sind völlig unabhängig voneinander. Die Systemausführungsebene bezieht sich auf die Gruppe von Diensten, die auf dem System ausgeführt werden, z. B. ob die GUI-Desktop-Umgebung ausgeführt wird oder nicht. Ringebenen sind ein Hardwareschutzmechanismus auf Intel x86-Prozessoren, der Code in verschiedene Berechtigungsstufen unterteilt. Linux verwendet nur die Ringe 0 und 3 für den Kernel- bzw. Benutzermoduscode. Somit werden alle Prozesse im Benutzermodus, die ausgeführt werden, wenn sich das System in einer beliebigen Ausführungsebene befindet, in Ring 3 ausgeführt, bis sie einen Aufruf des Kernel-Codes ausführen, der die CPU auf Ring 0 umstellt.
Von Ihrem eigenen Link:
In einem monolithischen Kernel wird das Betriebssystem im Supervisor-Modus und die Anwendungen im Benutzermodus ausgeführt. Andere Arten von Betriebssystemen, wie z. B. solche mit einem Exokernel oder Mikrokernel, teilen dieses Verhalten nicht unbedingt.
Einige Beispiele aus der PC-Welt:
Linux und Windows sind zwei Betriebssysteme, die den Supervisor / User-Modus verwenden. Um spezielle Funktionen ausführen zu können, muss der Benutzermoduscode einen Systemaufruf in den Supervisor-Modus oder sogar in den Kernelbereich ausführen, in dem vertrauenswürdiger Code des Betriebssystems die erforderliche Aufgabe ausführt und an den Benutzerbereich zurückgibt.
Ihre Antwort wäre also 2. Der Supervisor (0) und der Benutzer (1).