Aus Wikipedia:.Speichersegmentierung auf modernen Betriebssystemen: Warum benötigen Sie 4 Segmente?
„Segmentation nicht auf x86-Prozessoren ausgeschaltet werden kann, so viele Betrieb Systeme eine flache Speichermodell zu make Segmentierung unmerklich zu Programmen verwenden Zum Beispiel setzt die Linux Kernel up nur 4 Segmente“
ich seit Schutz bedeuten bereits Pflege durch den virtuellen Speicher-Subsystem genommen wird (PTEs einen Schutz Bit haben), warum würden Sie brauchen vier Segmente (statt 2: dh Daten/Code mit DPL 3 seit Sie können ausführen te code, der sich in einem Segment mit niedrigerer Priorität befindet)?
Danke.
Das beantwortet meine Frage nicht. Die Art und Weise, wie die Segmentierung im geschützten Modus implementiert wird, ist eine Indirektionstabelle (dh die GDT/LDT), so dass Sie immer noch 2 Segmente einrichten können und 2 Register auf denselben Eintrag in der Tabelle zeigen ... –
Sie müssten extra arbeiten arbeiten Sie, um die impliziten Segmentverweise zu vermeiden, wenn Sie nicht für alle gültige Konfigurationen hatten 4. Wenn Sie nur CS und DS eingerichtet hätten, müssten Sie ein Segment-Override-Präfix für die Anweisungen verwenden, in denen SS und ES implizit verwendet werden. Es ist also viel einfacher, alle 4 identisch einzurichten. Dann können Sie vergessen, dass eine Segmentierung existiert. Ich bin auf meinem x86 so rostig, dass ich wahrscheinlich einen Fall vermisse, in dem selbst die Verwendung von Override-Präfixen mehr Probleme verursachen würde. Warum diese Dose Würmer überhaupt öffnen? Welche Schwierigkeit ist es, alle 4 einzurichten? –