Memory protection

Memory protection is the feature of operating systems, divide the available memory so and so to separate running programs from each other that a programming error or crash of a single program does not affect the stability of other programs or the entire system. Programs are prevented from accidentally or intentionally access the space from other programs or to use the operating system other than through standardized interfaces ( "Inputs" ). On the hardware side, a memory management unit ( MMU) or a simpler memory protection unit (MPU ) support memory protection. However, it is also possible pure software-based solutions. When a program tries to access a protected address space, so there is a protection violation.

All modern multitasking operating systems have a memory protection mechanism. Operating systems that can run only single applications, for example in embedded systems, this usually do not need.

In a second sense, the term memory protection is also used in order to prevent in a process address space, that memory areas containing the data can be accessed as a code, and, conversely, that the memory areas that contain the code, not overwritten ( data ) can be. This is intended to prevent, for example, buffer overflow code can be changed, or may be introduced via the input specific code data ( NX bits, Von Neumann architecture).

Examples

Operating systems without memory protection

  • Mac OS (up to 7.5.5 )
  • AmigaOS1 to 3
  • MS DOS
  • VxWorks
  • OS-9

Operating systems with limited memory protection

  • Mac OS (7.6 to 9.2.2 )
  • Windows 95, Windows 98, Windows ME
  • MorphOS, AmigaOS 4

Operating systems with full memory protection

  • Windows NT, Windows 2000, Windows XP, Windows Vista, Windows 7, Windows 8
  • All Windows Server
  • Almost all UNIX variants FreeBSD, NetBSD, OpenBSD
  • Darwin ( Mac OS X)
741204
de