Der Martin: Begriff erklären

Beitrag lesen

Moin,

GDT und LDT sind Mechanismen des Intel 286, um den Speicher zu verwalten. Ein Prozess bekommt eine eigene LDT, und das OS vermerkt darin die Speichersegmente, die ihm gehören. Das OS, nicht der Compiler! Compiler und Linker bestellen lediglich die Segmente mittels Einträgen im EXE.

... Mechanismen seit Einführung des Protected Mode bei Intel-Prozessoren und kompariblen.

Die Hervorhebung des "seit" ist gut. Tatsächlich funktioniert das meines Wissens immer noch so. Gut, das Adressierungsschema hat sich seither von einer Generation zur nächsten immer wieder etwas geändert, das grundlegende Konzept ist aber AFAIK immer noch das gleiche.

Und selbstverständlich ist es eine Sache der Hardware und nicht erst des Betriebssystems.

Beides! Die Hardware (also die CPU) stellt die Möglichkeiten zur Verfügung, und das OS verwendet und verwaltet sie. Das OS nimmt beispielsweise Wünsche der Applikation nach Arbeitsspeicher entgegen, versucht sie zu erfüllen, trägt passende Werte in die entsprechenden Descriptor-Tabellen ein und gibt der Applikation dann die Rückmeldung: Hier, nimm das.
Es ist dann der Hardware (CPU) überlassen, Speicherzugriffe abzublocken ("Protection Fault"), die nicht zu den Grenzen (Adressbereich) oder Privilegien (z.B. Schreibzugriff) passen. Das OS hat wiederum seine Handler-Funktionen, die in diesem Fall aufgerufen werden und geeignet reagieren, z.B. die meuternde Anwendung rauskicken oder den Debugger anwerfen.

Es ist also Sache der fest eingeprägten Microprogrammierung.

Das Zusammenspiel beider Ebenen macht erst etwas Brauchbares daraus.

Ciao,
 Martin

--
Ich stamme aus Ironien, einem Land am sarkastischen Ozean.