Crass Spektakel schrieb am 20. August 2013 21:30
> Doch den gibt es noch, nur das A20-Gate wurde abgeschafft.
Das A20-Gate wurde mit der Einführung von x86-64 nicht abgeschafft.
http://microsoft.wikia.com/wiki/X86-64
> Removal of older features: A number of "system programming" features of the
> x86 architecture are not used in modern operating systems and are not
> available on AMD64 in long (64-bit and compatibility) mode. These include
> segmented addressing (although the FS and GS segments are retained in
> vestigial form for use as extra base pointers to operating system
> structures), the task state switch mechanism, and
> Virtual 8086 mode.
> These
> features do of course remain fully implemented in "legacy mode," thus
> permitting these processors to run 32-bit and 16-bit operating systems
> without modification.
Diese prähistorische Form der Hardwarevirtualisierung war nunmal die
Grundlage der NTVDM und deshalb hat MS sie in den 64-Bit-Versionen
eben komplett entfernt. Im sog. "Legacy Mode" können nämlich nur
32-Bit-Betriebssysteme ausgeführt werden.
Das Problem was konkret OS/2 hat: Durch die komplett verbastelte
Architektur ist auch eCS eben genau auf diese oskuren Legacy-Features
aus den 80ern _angewiesen_. Es ist auch das einzige
PC-Betriebssystem, welches Ring 1 und Ring 2 nutzt, weshalb es
anfangs unmöglich zu virtualisieren war (inzwischen dank VT gelöst).
Auf moderne Hardware-Plattformen könnte man OS/2 nur bringen, indem
man es von Grund auf neu programmiert. Huch, das ist ja längst
passiert, das Ergebnis heißt Windows NT.
> Was Du meinst: Der Real-Mode läßt sich nicht mehr direkt vom Extended
> x64 Mode aus aktivieren. Dafür müßte man einen Zwischenschritt
> einlegen. DOSBOX macht genau das, sind etwa 30 Zeilen zusätzlicher
> Code.
DOSBox ist ein kompletter PC-Emulator inkl. Emulation einer 486-CPU.
Da werden überhaupt keine speziellen CPU-Features genutzt, denn dafür
bräuchte die Software nämlich ein Kernelmodul. Die Emulation läuft
allerdings komplett im Userspace und benötigt überhaupt keine
erhöhten Rechte.
> Was auch nicht mehr geht ist direkter Hardwarezugriff
Direkter Hardwarezugriff geht nur im Ring 0, also nur mit einem
Kernelmodul.
> aber auch da
> zeigt DOSBOX daß man das in einem virtualisiertem Adreßraum gut und
> einfach abfangen kann, das ist kaum mehr als 10kByte Code.
In einem Emulator muß man nichts "abfangen". Die darin ausgeführten
Programme werden vollständig von Software interpretiert, schon weit
moderne x86-CPUs viel zu schnell sind.
> Doch den gibt es noch, nur das A20-Gate wurde abgeschafft.
Das A20-Gate wurde mit der Einführung von x86-64 nicht abgeschafft.
http://microsoft.wikia.com/wiki/X86-64
> Removal of older features: A number of "system programming" features of the
> x86 architecture are not used in modern operating systems and are not
> available on AMD64 in long (64-bit and compatibility) mode. These include
> segmented addressing (although the FS and GS segments are retained in
> vestigial form for use as extra base pointers to operating system
> structures), the task state switch mechanism, and
> Virtual 8086 mode.
> These
> features do of course remain fully implemented in "legacy mode," thus
> permitting these processors to run 32-bit and 16-bit operating systems
> without modification.
Diese prähistorische Form der Hardwarevirtualisierung war nunmal die
Grundlage der NTVDM und deshalb hat MS sie in den 64-Bit-Versionen
eben komplett entfernt. Im sog. "Legacy Mode" können nämlich nur
32-Bit-Betriebssysteme ausgeführt werden.
Das Problem was konkret OS/2 hat: Durch die komplett verbastelte
Architektur ist auch eCS eben genau auf diese oskuren Legacy-Features
aus den 80ern _angewiesen_. Es ist auch das einzige
PC-Betriebssystem, welches Ring 1 und Ring 2 nutzt, weshalb es
anfangs unmöglich zu virtualisieren war (inzwischen dank VT gelöst).
Auf moderne Hardware-Plattformen könnte man OS/2 nur bringen, indem
man es von Grund auf neu programmiert. Huch, das ist ja längst
passiert, das Ergebnis heißt Windows NT.
> Was Du meinst: Der Real-Mode läßt sich nicht mehr direkt vom Extended
> x64 Mode aus aktivieren. Dafür müßte man einen Zwischenschritt
> einlegen. DOSBOX macht genau das, sind etwa 30 Zeilen zusätzlicher
> Code.
DOSBox ist ein kompletter PC-Emulator inkl. Emulation einer 486-CPU.
Da werden überhaupt keine speziellen CPU-Features genutzt, denn dafür
bräuchte die Software nämlich ein Kernelmodul. Die Emulation läuft
allerdings komplett im Userspace und benötigt überhaupt keine
erhöhten Rechte.
> Was auch nicht mehr geht ist direkter Hardwarezugriff
Direkter Hardwarezugriff geht nur im Ring 0, also nur mit einem
Kernelmodul.
> aber auch da
> zeigt DOSBOX daß man das in einem virtualisiertem Adreßraum gut und
> einfach abfangen kann, das ist kaum mehr als 10kByte Code.
In einem Emulator muß man nichts "abfangen". Die darin ausgeführten
Programme werden vollständig von Software interpretiert, schon weit
moderne x86-CPUs viel zu schnell sind.