Speicherschutz
# Speicherschutz

Speicherschutz ist die Eigenschaft von Betriebssystemen, den verfügbaren Arbeitsspeicher so aufzuteilen und laufende Programme so voneinander zu trennen, dass ein Programmierfehler oder Absturz eines einzelnen Programms nicht die Stabilität anderer Programme oder des Gesamtsystems beeinträchtigt. Programme werden daran gehindert, versehentlich oder absichtlich auf den Speicherbereich anderer Programme zuzugreifen oder das Betriebssystem anders als durch standardisierte Schnittstellen („Eingänge“) zu benutzen. Hardwareseitig kann eine Speicherverwaltungseinheit (MMU) oder eine einfachere Speicherschutzeinheit (MPU) den Speicherschutz unterstützen. Es sind aber auch reine softwaretechnische Lösungen möglich. Versucht ein Programm, auf einen geschützten Adressraum zuzugreifen, so kommt es zu einer Schutzverletzung.

Alle modernen Multitasking-Betriebssysteme haben einen Speicherschutz-Mechanismus. Betriebssysteme, auf denen nur einzelne Applikationen laufen, zum Beispiel in eingebetteten Systemen, benötigen dies meist nicht.

In einer zweiten Bedeutung wird der Begriff Speicherschutz auch verwendet, um innerhalb eines Prozess-Adressraums zu verhindern, dass auf Speicherbereiche, die Daten enthalten, als Code zugegriffen werden kann, sowie umgekehrt, dass Speicherbereiche, die Code enthalten, nicht (mit Daten) überschrieben werden können. Dies soll verhindern, dass z. B. durch Pufferüberlauf Code verändert werden kann oder über die Eingabe spezieller Daten Code eingeschleust werden kann (NX-Bit, Von-Neumann-Architektur).

## Beispiele

### Betriebssysteme ohne Speicherschutz

* (fast) alle Disk Operating Systeme
* Mac OS (bis 7.5.5)
* AmigaOS 1 bis 3
* MS-DOS und PC DOS und die meisten kompatiblen DOS
* VxWorks
* OS-9

### Betriebssysteme mit eingeschränktem Speicherschutz

* Mac OS (7.6 bis 9.2.2)
* Windows 9x (DOS-basiertes Windows): Windows 95/98/Me
* MorphOS, AmigaOS 4

### Betriebssysteme mit vollem Speicherschutz

* Windows NT: ab Windows NT 3.1, 3.5/3.51 bis 4.0, Windows 2000, Windows XP, Windows Vista, Windows 7, Windows 8/8.1, Windows 10
* alle auf Windows NT basierenden Server-Versionen
* fast alle Unix-artigen Systeme
   * AT&T UNIX, die Berkeley Software Distribution und darauf basierende (kommerzielle) Unix-Varianten
   * Weiterentwicklungen der Berkeley Software Distribution: FreeBSD, NetBSD, OpenBSD, Darwin
   * macOS, iOS und weitere auf Darwin basierende Apple-Betriebssysteme (Weiterentwicklungen von NeXTStep/OPENSTEP)
   * Linux und darauf basierende Systeme, etwa Android
* PikeOS
* OS/2
* MVS, OS/390, z/OS
* VMS
* Symbian OS
* BS3
