Benutzerraum und Kernelraum

Ein moderner Computer Betriebssystem Normalerweise getrennt virtueller Speicher hinein Benutzerraum und Kernelraum.[a] In erster Linie dient diese Trennung dazu, bereitzustellen Gedächtnisschutz und Hardwareschutz vor böswilligem oder fehlerhaftem Softwareverhalten.

Kernelraum ist streng für die Ausführung eines Privilegierten reserviert Betriebssystem Kernel, Kernel -Erweiterungen und die meisten Gerätetreiber. Im Gegensatz dazu ist der Benutzerraum der Speicherbereich, wo Anwendungssoftware Und einige Fahrer führen aus.

Überblick

Der Begriff Benutzerraum (oder Userland) bezieht sich auf alle Code, die außerhalb des Kernels des Betriebssystems ausgeführt wird.[1] Der Benutzerraum bezieht sich normalerweise auf die verschiedenen Programme und Bibliotheken dass das Betriebssystem verwendet wird, um mit dem Kernel zu interagieren: Software, die ausgeführt wird Input-Output, manipuliert Dateisystem Objekte, Anwendungssoftware, etc.

Jeder Benutzerraum Prozess Normalerweise läuft für sich virtueller Speicher Raum und, sofern nicht ausdrücklich zulässig ist, können nicht auf den Speicher anderer Prozesse zugreifen. Dies ist die Grundlage für Gedächtnisschutz In den heutigen Mainstream -Betriebssystemen und einem Baustein für Privilegentrennung. Ein separater Benutzermodus kann auch verwendet werden, um effiziente virtuelle Maschinen zu erstellen - siehe Popek- und Goldberg -Virtualisierungsanforderungen. Mit genügend Privilegien können Prozesse den Kernel anfordern, einen Teil des Speicherraums eines anderen Prozesses auf seinen eigenen zuzuordnen, wie dies der Fall ist Debugger. Programme können auch anfordern geteilte Erinnerung Regionen mit anderen Prozessen, obwohl auch andere Techniken zur Verfügung stehen, um zuzulassen Interprozesskommunikation.

Verschiedene Schichten innerhalb von Linux, die auch eine Trennung zwischen dem zeigen Userland und Kernelraum
Benutzermodus Benutzeranwendungen verprügeln, Libreoffice, Gimp, Mixer, 0 a.d., Mozilla Firefox, ...
Systemkomponenten Init Dämon:
OpenRC, starte es, systemd...
Systemdämonen:
Polkitd, SMBD, sshd, Udevd...
Fenstermanager:
X11, Wayland, Oberflächenflinger (Android)
Grafik:
Mesa, AMD -Katalysator, ...
Andere Bibliotheken:
Gtk, Qt, Efl, SDL, Sfml, Fltk, Gn .p, ...
C Standardbibliothek fopen, execv, Malloc, memcpy, Ortszeit, pthread_create... (bis zu 2000 Unterroutinen)
Glibc Ziel ist schnell, schnell zu sein, Musl Ziel ist es, leicht zu sein, UCLIBC Ziele eingebettete Systeme, bionisch wurde geschrieben für Androidusw. alle zielen darauf ab zu sein Posix/Sus-kompatibel.
Kernelmodus Linux Kernel Stat, spleißen, DUP, lesen, offen, ioctl, schreiben, MMAP, nah dran, Ausfahrtusw. (ca. 380 Systemaufrufe)
Der Linux -Kernel Systemanrufschnittstelle (SCI), zielt darauf ab, zu sein Posix/Sus-kompatibel[2]
Prozessplanung
Teilsystem
IPC
Teilsystem
Speicherverwaltung
Teilsystem
Virtuelle Dateien
Teilsystem
Netzwerk
Teilsystem
Andere Komponenten: Alsa, Dri, Evdev, Klibc, LVM, Geräte -Mapper, Linux -Netzwerkplaner, Netfilter
Linux -Sicherheitsmodule: Selinux, Tomoyo, Apparmor, Klatschen
Hardware (Zentralprozessor, Haupterinnerung, Datenspeichergeräte, etc.)

Implementierung

Die häufigste Art der Implementierung a Benutzermodus getrennt von Kernelmodus beinhaltet das Betriebssystem Schutzringe. Schutzringe werden wiederum mit Verwendung implementiert CPU -Modi. Normalerweise laufen Kernel -Raumprogramme in Kernelmodus, auch genannt Supervisor -Modus; Normale Anwendungen im Benutzerbereich im Benutzermodus.

Viele Betriebssysteme sind Einzeladressraum Betriebssysteme-Sie haben einen einzelnen Adressraum für alle Benutzer-Mode-Code. (Der Kernel-Mode-Code kann sich im gleichen Adressraum befinden oder sich in einem zweiten Adressraum befinden). Viele andere Betriebssysteme verfügen über einen Adressraum pro Prozess, einen separaten Adressraum für jeden Benutzer-Modus-Prozess.

Ein anderer Ansatz in experimentellen Betriebssystemen besteht darin, einen einzelnen zu haben Adressraum Für alle Software und verlassen Sie sich auf die Semantik einer Programmiersprache, um sicherzustellen Verweise auf die Objekte, auf die sie nicht zugreifen dürfen.[3][4] Dieser Ansatz wurde in umgesetzt Jxos, Unununium sowie Microsoft's Singularität Forschungsprojekt.

Siehe auch

Anmerkungen

  1. ^ Ältere Betriebssysteme wie z. DOS und Windows 3.1xVerwenden Sie diese Architektur nicht.

Verweise

  1. ^ "Userland, n." Das Jargon -Datei. Eric S. Raymond. Abgerufen 2016-08-14.
  2. ^ "Admin -Handbuch Readme". git.kernel.org.
  3. ^ "Unununiumssystem Einführung". Archiviert von das Original Am 2001-12-15. Abgerufen 2016-08-14.
  4. ^ "uuu/docs/system_inTroduction/uuu_intro.tex". UUU -Systemeinführungshandbuch. 2001-06-01. Abgerufen 2016-08-14.

Externe Links