Virtualisierung mit 32 und 64 bit Windows

Hier dürfen auch unregistrierte Gäste posten.
Virtueller

Virtualisierung mit 32 und 64 bit Windows

Beitragvon Virtueller » So 19. Aug 2018, 21:23

Gegenwärtig nutze ich ein CPU-lastiges DOS-Programm unter Windows 7 32 bit mit ntvdm und bin mit der Performance zufrieden. 64-bit Windows kennt kein ntvdm. Würde eine Virtualsierung von Windows 7 (32 bit) auf Windows 10(64 bit) z.B. mit VirtualBox einen spürbaren CPU-Performanceverlust bringen?
lambda
Solitärspieler
Beiträge: 13
Registriert: Do 9. Aug 2018, 09:17
Wohnort: seit 2017: östlichste Stadt Deutschlands
Kontaktdaten:

Re: Virtualisierung mit 32 und 64 bit Windows

Beitragvon lambda » Mo 20. Aug 2018, 11:58

Virtueller hat geschrieben:Würde eine Virtualsierung von Windows 7 (32 bit) auf Windows 10(64 bit) z.B. mit VirtualBox einen spürbaren CPU-Performanceverlust bringen?


Läßt sich schwer sagen, was spürbar ist und was nicht. Bevor ich allerdings ein ganzes Win7 virtualisiere, würde ich nur irgendein DOS Deiner Wahl virtualisieren. Wozu das Win7 mitschleppen?
God SAVE "THE QUEEN",8,1
JSR $FCE2
Osmodia

Re: Virtualisierung mit 32 und 64 bit Windows

Beitragvon Osmodia » Di 21. Aug 2018, 21:03

Oder einfach DOSBox verwenden?
lambda
Solitärspieler
Beiträge: 13
Registriert: Do 9. Aug 2018, 09:17
Wohnort: seit 2017: östlichste Stadt Deutschlands
Kontaktdaten:

Re: Virtualisierung mit 32 und 64 bit Windows

Beitragvon lambda » Mi 22. Aug 2018, 11:25

Osmodia hat geschrieben:Oder einfach DOSBox verwenden?


Es war von "CPU-lastig" und "Performance" die Rede, da ist DOSBox die allerschlechteste Wahl überhaupt.
God SAVE "THE QUEEN",8,1
JSR $FCE2
Benutzeravatar
Roman78
BIOS-Flasher
Beiträge: 373
Registriert: Di 6. Jan 2015, 11:38

Re: Virtualisierung mit 32 und 64 bit Windows

Beitragvon Roman78 » Mi 22. Aug 2018, 14:56

Warum nicht DOS emulieren in W10?

Virtualisierung ist immer Langsamer wie Nativ auf der Hardware. Allerdings ist die Hardware schon immer schneller geworden.
Schaut doch mal in meinem Blog vorbei.
virtueller

Re: Virtualisierung mit 32 und 64 bit Windows

Beitragvon virtueller » Do 23. Aug 2018, 21:54

[quote="lambda"][quote="Virtueller"]Würde eine Virtualsierung von Windows 7 (32 bit) auf Windows 10(64 bit) z.B. mit VirtualBox einen spürbaren CPU-Performanceverlust bringen?[/quote]

Läßt sich schwer sagen, was spürbar ist und was nicht. Bevor ich allerdings ein ganzes Win7 virtualisiere, würde ich nur irgendein DOS Deiner Wahl virtualisieren. Wozu das Win7 mitschleppen?[/quote]

"Spürbar" wäre bei komplizierten cpu-lastigen Berechnungen etwa 13 Minuten statt 10 Minuten Wartezeit bis zum Ergebnis . Reine DOS-Virtualisierung wäre natürlich möglich, aber bei WINDOWS7/32 lasse ich auf einem Mehrkernprozessor auch gerne mal 4 Instanzen von ntvdm gleichzeitig laufen, das funktioniert prima.
lambda
Solitärspieler
Beiträge: 13
Registriert: Do 9. Aug 2018, 09:17
Wohnort: seit 2017: östlichste Stadt Deutschlands
Kontaktdaten:

Re: Virtualisierung mit 32 und 64 bit Windows

Beitragvon lambda » Fr 24. Aug 2018, 04:16

virtueller hat geschrieben:"Spürbar" wäre bei komplizierten cpu-lastigen Berechnungen etwa 13 Minuten statt 10 Minuten Wartezeit bis zum Ergebnis . Reine DOS-Virtualisierung wäre natürlich möglich, aber bei WINDOWS7/32 lasse ich auf einem Mehrkernprozessor auch gerne mal 4 Instanzen von ntvdm gleichzeitig laufen, das funktioniert prima.
Im ersten Posting war es noch ein CPU lastiges DOS Programm, jetzt sind es 4 Instanzen, die scheinbar parallel ausgeführt werden können. Und was genau funktioniert prima? Um das zu klären, wären folgende Präzisierungen hilfreich:

1. Was genau ist an der Berechnung kompliziert? Datenaustausch oder was anderes?

2.Was auf einem 32bit System der vorletzten Generation 10 oder 13 Minuten dauert, sollte auf einem 64bit System der folgenden Generation deutlich schneller ausgeführt werden können, auf welche Art virtualisiert, ist erfahrungsgemäß nachrangig.

Es wäre hilfreich, wenn Du näher erläutern würdest, was genau Dein Programm macht.
God SAVE "THE QUEEN",8,1
JSR $FCE2
Benutzeravatar
Dosenware
DOS-Gott
Beiträge: 3597
Registriert: Mi 24. Mai 2006, 20:29

Re: Virtualisierung mit 32 und 64 bit Windows

Beitragvon Dosenware » So 26. Aug 2018, 09:48

Was auf einem 32bit System der vorletzten Generation 10 oder 13 Minuten dauert, sollte auf einem 64bit System der folgenden Generation deutlich schneller ausgeführt werden


Eine 16Bit Anwendung bleibt eine 16 Bit Anwendung - 64Bit sind da egal, das bremst sogar ein wenig da das 64Bit OS ein 16Bit Subsystem mitschleppen muss damit die 16Bit Programme noch laufen. Auch werden neue Prozessoren eher auf 64 Bit optimiert, 16Bit Befehle werden - wenn überhaupt - somit vmtl. langsamer ausgeführt (so etwas ähnliches gabs beim Pentium Pro) - Pauschale Aussagen sind also schlecht möglich.

Präzisierung wäre dennoch Hilfreich - immerhin wissen wir jetzt, dass es um mehrere unabhängige Prozesse geht die das gleiche machen und aus nur einem Thread bestehen (weshalb die Mehrfachausführung etwas bringt, ein Prozess pro Prozessorkern)

Und zu 1. Datenaustausch wirds nicht sein, der würde von der Mehrfachausführung nicht so einfach profitieren - da limitiert eher die Bandbreite und die wird auch nicht besser wenn sich auf einmal mehrere darum streiten...

PS. //siehe EDITs//und die Virtualisierung der ntvdm funktioniert nicht, 64Bit Prozessoren können im 64Bit Mode keine 16Bit Befehle mehr ausführen - die werfen einfach eine Exeption.\\siehe EDITs\\ Zumal die aktuellsten Prozessoren vermutlich ohnehin kein 16 Bit mehr unterstützen.

EDIT: Virtual Box emuliert anscheinend den 16Bit Befehlssatz.
EDIT2: OK. der Virtual 8086 Mode - den nutzt die ntvdm - wird im 64Bit Mode nicht unterstützt, die Virtualisierung (z.b. per Virtual Box) umgeht dieses Problem - war etwas widersprüchlich was sich dazu finden ließ.

EDIT3: und hier alles etwas genauer:

"Mit der schwindenden Bedeutung des Betriebssystems DOS ist auch der VM86-Modus heutzutage eher als historisch anzusehen und wird daher kaum noch verwendet, auch wenn er in jeder aktuellen x86-kompatiblen CPU noch verfügbar ist. Im "Compatibility Mode" der AMD64-Architektur – welcher verwendet wird, um ein 16- oder 32-Bit-Programm auf einem 64-Bit-Betriebssystem auszuführen – wird der Virtual86 Mode nicht mehr unterstützt. Allerdings existieren Software-Emulatoren wie DOSBox, die eine 8086-kompatible CPU incl. PC-typischer Hardwareumgebung komplett in Software emulieren können. Außerdem ist er noch im "Legacy Mode" (32-Bit-Modus) verfügbar sowie in jeder virtuellen Maschine mit 16 oder 32 Bit.

Beim AMD-Ryzen-Prozessor (Mitte 2017) ist die Implementierung der Virtual Mode Extensions (VME) fehlerhaft, so dass Software, die diese Erweiterung benutzt, nicht stabil läuft. Aufgrund der geringen Bedeutung des Virtual-8086-Modus heutzutage entschied sich AMD dazu, den Bug nicht zu fixen, sondern lediglich die Unterstützung für VME zu deaktivieren, so dass der Bug nicht mehr zum Tragen kommt.[1] " - https://de.wikipedia.org/wiki/Virtual_8086_Mode

auf einem Ryzen wirds wohl auch mit Virtualisierung nicht funktionieren...
Virtueller

Re: Virtualisierung mit 32 und 64 bit Windows

Beitragvon Virtueller » Fr 14. Sep 2018, 20:47

Vielen Dank, Dosenware, hat mir sehr geholfen. Werde mir ein WINDOWS10/32 Bit auf einem Rechner mit 8-Kern Prozessor installieren, keinesfalls auf einem AMD-Ryzen - eher auf einem preiswerten AMD fX-83xx.
Benutzeravatar
Dosenware
DOS-Gott
Beiträge: 3597
Registriert: Mi 24. Mai 2006, 20:29

Re: Virtualisierung mit 32 und 64 bit Windows

Beitragvon Dosenware » Fr 14. Sep 2018, 21:26

Wie in den Edits geschrieben: Virtualisierung scheint das Problem des nicht nutzbaren V86 Modes im x64 Mode umgehen zu können, nur der Ryzen unterstützt den V86 Mode überhaupt nicht mehr.

Sprich: solange du keinen Ryzen nutzt, wirst du mit einem Virtualisierer - wie z.b. VirtualBox - auch unter W64 16Bit Anwendungen nutzen können, inkl. V86 Mode.
Gast

Re: Virtualisierung mit 32 und 64 bit Windows

Beitragvon Gast » So 16. Sep 2018, 07:54

Wobei es hier auch ein paar Feinheiten gibt.

a) Ryzen hat Probleme mit dem "erweiterten" V86, der mit dem Pentium eingeführt wurde.
Der normale V86 des 386/486 funktioniert noch. Nur ergiebt sich daraus folgendes Problem:
Moderne Programme, wie z.B. Windows XP, erwarten einen 586er, sodass möglichweise der
ein vorhandender, alternativer Fall-Back Code für 386er/486er bzw. normalen V86 nicht richtig funktioniert,
da die Entwickler nichtmehr ernsthaft mit seiner Nutzung gerechnet haben (außer Cyrix?/Nexgen?/etc. konnten alle 586+
den erweiterten V86).
Siehe "The Pentium's Enhanced v86 Mode" : http://www.rcollins.org/ddj/Jan98/Jan98.html

b) Virtual PC 2007 und co. unterstützen optional Hardware-basierte Virtualisierung ala Intel-VT/AMD-V.
Falls ein Prozessor das nicht kann bzw. die Option deaktiviert ist, wird der Real-Mode bzw. V86 bei Bedarf emuliert.
Das Problem ist aber ggf. auch hier, das ein System wie Windows XP den erweiterten V86 erwartet, da es anderst als
z.B. Win98SE keinen Fall-back für 386er/486er mit normale V86 mehr hat.

c) Win16-Programme ansich benötigen kein V86, da sie nur normalen 16-Bit code mit 64K Segmenten verwenden.
Rein technisch funktionieren sie sowohl im Real-Modus, im 16-Bit Protected Modus (286er), im 32-Bit Protected Modus mit V86 (386er) und im Long-Mode des 64-Bit Protected Modus (ist kompatibel zu 16-Bit Protected Mode code).
Das Problem ist hier das Win3.1-Subsystem von Windows NT. Auf Alpha/Mips lief es noch in Emulation,
bei AMD64 hat MS aber "keine Lust" mehr gehabt, einen Emulator (basierend auf SoftPC) einzubauen.
Stattdessen schiebt man die Schuld einfach auf das fehlende V86 im Longmode.

d) Für Win16/DOS-Programme unter Windows x64 gibt es einige Tools.
WineVDM, Boxedwine, MS-DOS Player, DOSBox, et. und normale Emus wie PCem/86Box/ Qemu natürlich.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste