Protected Mode

Protected Mode

Der Begriff protected mode (englisch; deutsch: geschützter Modus oder Schutzmodus), bezeichnet einen speziellen Betriebsmodus der IA-32-Architektur (auch als x86-Architektur bekannt) von Intel, der seit dem 80286er Prozessor vorhanden ist. Er erlaubt die Begrenzung von Speicherzugriffsrechten für verschiedene Software, außerdem erhöhte sich mit ihm der direkt zugreifbare Speicher auf 16 MB Hauptspeicher (16-Bit Protected Mode). Mit dem 80386er und dem 32-Bit Protected Mode wurde der lineare Zugriff auf bis zu 4 GB Hauptspeicher möglich. Der Protected Mode wird von allen modernen PC-Betriebssystemen (bei Microsoft seit Windows NT 3.1, bzw. für Consumer seit Windows 95, von Apple seit Umstellung auf die Intel-Plattform, also mit OSX 10.4.4) verwendet.

Inhaltsverzeichnis

Hintergründe und Idee

Ursprünglich existierte nur der Real Mode auf der 8086-Architektur, der aus Kompatiblitätsgründen immer noch bei aktuellen x86 32-bit Prozessoren der Startmodus ist, so dass ältere Betriebssysteme wie DOS lauffähig sind.[1] In diesem Modus gab es keine Speicherschutzmechanismen oder Policies, das Betriebssystem oder auch jedes Programm, konnte jederzeit sowohl lesend wie schreibend auf jede Speicheradresse zugreifen. Dies bedeutet die unrealistische Anforderung der völligen Fehlerfreiheit an Software, da schon ein einziger fehlerhafter Zugriff auf eine Adresse einer anderen Software (z. B. des Betriebssystem) zu Datenverlust oder Instabilität des gesamten Systems führen kann.

Um diese Situation zu entschärfen wurden Mechanismen eingeführt mit denen die Zugriffsrechte von Programmen auf verschiedene Speicherbereiche feingranularer einzustellen und zu vergeben sind, um also Speicherschutz zwischen verschiedener Software zu erzeugen.

Konzept und Charakteristika

Aus Kompatiblitätsgründen entschied sich Intel für die virtuelle Speicherverwaltung als Methode, da hier jedem Programm durch die MMU weiterhin ein vollständiger Adressraum wie im Real-Mode vorgegaukelt werden kann. Jedes Programm wird in seiner eigenen, von anderer Software abgeschotteten Kopie des physischen Adressraums ausgeführt. Betriebssystembereiche (typischerweise im oberen Bereich des Adressraums 2 bis 4 GiB) können mit einer höheren Befugnisstufe ausgestattet sein (engl. „privilege level“). Dies ermöglicht unter anderem die Unterscheidung zwischen Kernel-Modus und Benutzer-Modus, welche in modernen Betriebssystemen umgesetzt ist.

Im Protected Mode unterstützt die CPU sowohl Segmentierung (ab 286er) als auch Paging (ab 386er) sowie den namensgebenden Speicherschutz mit vier verschiedenen Schutzebenen auf Segmentebene und zwei Schutzebenen auf Page-Ebene. Die vier verschiedenen im x86-Schutzmodus existierenden und als Ringe bezeichneten Schutzebenen bzw. Befugnisstufen (engl. „privilege level“) gewähren den darauf ablaufenden Codesegmenten unterschiedliche Rechte. Dadurch wird verhindert, dass fehlerhafte oder böswillige Anwendungsprogramme das Betriebssystem überschreiben und somit verändern oder zum Absturz bringen können, oder Daten anderer Programme ausspähen können, was auf dem 8086er-Prozessor noch ohne weiteres möglich war und nicht verhindert werden konnte. Ein Prozessor schaltet in den Protected Mode um, indem das Protection Enable (PE) bit im Control Register 0 (CR0) gesetzt wird.[2] Ferner gibt es im Protected Mode einen Sondermodus, den Virtual 8086 Mode (Virtual Real Mode), der zur Ausführung von Real-Mode-Programmen im Protected Mode eingebaut wurde.

16-Bit Protected Mode

Beim 286er wurde der so genannte „16-Bit Protected Mode“ eingeführt. In diesem Modus können maximal 16 MB physischer Hauptspeicher über 2 Tabellen mit jeweils 8192 Segmenten zu je maximal 64 KB angesprochen werden. Damit steht ein theoretischer Speicherraum von 1 GB zur Verfügung. Der Zugriff auf diese Segmente erfolgt über sogenannte Segmentdeskriptortabellen, welche vom Betriebssystem angelegt und verwaltet werden. Es ist möglich, mehr virtuelle Adressen anzusprechen, als physischer Arbeitsspeicher vorhanden ist. Über eine virtuelle Speicherverwaltung können einzelne Segmente beispielsweise auf Festplatte ausgelagert werden und anschließend in der Deskriptortabelle als „nicht vorhanden“ gekennzeichnet werden. Sobald ein Lese- oder Schreibzugriff auf so ein Segment erfolgt, löst der Prozessor eine „Segment not present“-Ausnahme aus, die vom Betriebssystem abgefangen wird, um das angeforderte Segment wieder zu laden und das Programm fortzusetzen.

Der 16-Bit-Protected-Mode wurde unter anderem von Digital Research Concurrent DOS 286 (1985), FlexOS 286 (1986/1987), IBM 4680 OS (1986), OS/2 1.x (1987) und MS Windows 3.x (im sogenannten „Standardmodus“) verwendet.

32-Bit Protected Mode

Mit dem 386er wurde der Protected Mode auf 32 Bit erweitert, mit dem man bis zu 4 GB physischer Hauptspeicher in 8192 Segmenten zu je maximal 4 GB ansprechen kann. Hierfür sind die Deskriptortabellen erweitert worden, so dass bisher reservierte Bits für die Erweiterungen genutzt werden.

Außerdem gibt es ab dem 386er die Möglichkeit, Seitenverwaltung (Paging) zu aktivieren, welche der Segmentierung nachgeschaltet ist.

64-Bit-Modus

Mit der Einführung der AMD64-Architektur im K8-Prozessor von AMD, welche später auch von Intel unter dem Namen EMT64 (später IA 32e, jetzt Intel 64) übernommen wurde, wurde ein neuer Betriebsmodus bei x86-Prozessoren eingeführt, der sich von dem bisherigen Protected Mode grundlegend unterscheidet. In diesem Modus gibt es de facto keine Segmentation mehr (mit einer Ausnahme, siehe weiter im Text). Die Basisadresse der Segmente ist fest auf 0 gesetzt. Der Deskriptor für das Codesegment wird nur noch zur Ermittlung des Sub-Modus (64-Bit „Long Mode“ oder 32-Bit „Compatibility Mode“, der bei der Ausführung von 32-Bit-Programme unter einem 64-Bit-Betriebssystem benutzt wird), der "Default Operation Size" und der Privilegienstufe (engl. „privilege level“) des in diesem Segment ausgeführten Codes verwendet. Einzig die Segmentregister FS und GS können vom Ring-0 aus über spezielle Maschinenbefehle direkt (ohne auf Segmentdeskriptoren zuzugreifen) eine 64-Bit-Segmentbasisadresse erhalten.

Für Systemsegmente wurde das Format der Segmentdeskriptoren erweitert, so dass sie 64-bittige Basisadressen bzw. Offsets enthalten. Diese Deskriptoren belegen damit effektiv 2 Einträge in den Deskriptortabellen.

Paging und Speicherauslagerung

Die meisten modernen Betriebssysteme für x86-Rechner, wie zum Beispiel Windows, Linux oder Mac OS X, arbeiten im Protected Mode. Dabei wird heute zur Realisierung des Speicherschutzes im Wesentlichen nur noch das Paging eingesetzt, während die Segmentierung nicht mehr benutzt wird. Mit diesem Mechanismus kann jedem Prozess in einem Betriebssystem ein eigener, von den anderen Prozessen getrennter virtueller Adressraum bereitgestellt werden. Gleichzeitig lassen sich dadurch aber auch die gemeinsame Speichernutzung zwischen Prozessen, Copy-On-Write-Mechanismen oder Speicherauslagerung sowie eine klare Trennung in Kernel- und Benutzeradressraum realisieren (Speicherschutz des Kernels vor Fehlern von Anwendungsprogrammen). Dieses Flat Memory Model ist nicht sicher vor Pufferüberläufen.

Siehe auch

Weblinks

Einzelnachweise

  1. 3.2 Modes of Operation. In: Intel 65 and IA-32 Architectures Software Developer’s Manual, S. 59, Denver, Colorado: Intel May 2005
  2. Robert Collins (2007): Protected Mode Basics (PDF). ftp.utcluj.ro. Abgerufen am 31. Juli 2009.

Wikimedia Foundation.

Игры ⚽ Поможем написать реферат

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Protected Mode —   [dt. »geschützter Modus«], eine Betriebsart von Intel Prozessoren ab 80286 und dazu kompatiblen Prozessoren, in der 16 MByte (80286) bzw. 4 GByte (ab 80386) RAM direkt addressiert werden. »Protected« bedeutet dabei den Schutz vor falschen… …   Universal-Lexikon

  • Protected mode — This article is about an x86 processor mode. For Internet Explorer Protected Mode, see Mandatory Integrity Control. x86 processor modes Mode First supported Real mode Intel 8086 8080 emulation mode NEC …   Wikipedia

  • protected mode —    In Intel processors, an operating state that supports advanced features. Protected mode in these processors provides hardware support for multitasking and virtual memory management, and it prevents programs from accessing blocks of memory that …   Dictionary of networking

  • protected mode — noun An operational mode of x86 compatible CPUs, in which software can use features such as virtual memory, paging, and safe multitasking …   Wiktionary

  • Protected Mode — bei i80x86 Prozessoren erweiterte Betriebsart …   Acronyms

  • Protected Mode — bei i80x86 Prozessoren erweiterte Betriebsart …   Acronyms von A bis Z

  • protected mode — condition of a processor in which a number of applications can work in parallel without conflicting with each other …   English contemporary dictionary

  • DOS Protected Mode Interface — In computing, the DOS Protected Mode Interface (DPMI) is a specification introduced in 1989 which allows a DOS program to run in protected mode, giving access to many features of the processor not available in real mode. It was initially… …   Wikipedia

  • DOS Protected Mode Services — (DPMS) is a set of extended DOS memory management services to allow DPMS enabled DOS drivers to load and execute in extended memory and protected mode. Not being a DOS extender by itself, DPMS is a minimal set of extended DOS memory management… …   Wikipedia

  • DOS Protected Mode Interface — DOS Protected Mode Interface, kurz DPMI, ist eine API zur Entwicklung von DOS basierten Anwendungen, die mehr als den sogenannten „konventionellen Speicher“ von 640 KB (655.360 Byte, siehe auch UMB) direkt nutzen, ohne Umwege über Bank… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”