Difference between revisions of "User:Petr-akhlamov/NTVDM"

From ReactOS Wiki
Jump to: navigation, search
(Starting)
(Current state)
Line 4: Line 4:
  
 
==Current state==
 
==Current state==
 +
As of [http://reactos.org/node/794 March 13, 2014] in NTVDM was implemented 486-compatible CPU-emulation, very basic video, basic memory management, basic sound, a 32bit BIOS, and 32bit DOS.
 +
 +
Quite a few things are still missing though, including in the previously listed features. For example, video support does not exist for VESA+ or EGA fonts. Sound only works [http://youtu.be/Mv8uQi_LKzE via the internal PC speaker], not through an emulated SoundBlaster. The CPU emulator also does not have a floating point unit.
 +
 +
One thing to note about ReactOS' NTVDM is that unlike Windows' version ReactOS' does not set the CPU into a 16bit emulated mode. This mode in theory reduces overhead compared to the emulation done by ReactOS, but CPUs these days are fast enough that performance should not be an issue. An advantage of ReactOS' approach though is that our NTVDM is usable on 64bit x86 processors and potentially ARM processors as well.
 +
 +
06.05.2014 NTVDM [http://github.com/reactos/reactos/commit/c32b8d2f39defb7a5577fb1428d5fb9758d2ac91 was merged] to trunk and since is being developed there.
 +
 
==Additional functions==
 
==Additional functions==
 
*17.04.2015 - mouse driver was added (<s>{{JIRA|9166}}</s>)
 
*17.04.2015 - mouse driver was added (<s>{{JIRA|9166}}</s>)

Revision as of 21:35, 18 December 2017

NTVDM (NT Virtual Dos Machine) is a virtual machine which together with WOW16 provide running 16-bit apps in modern Windows versions.

Starting

A long while this component was missing, till community member Aleksandar Andrejevic offered his help for implementation. 16.06.2013 for him was created separate branch, where he implemented basic NTVDM components.

Current state

As of March 13, 2014 in NTVDM was implemented 486-compatible CPU-emulation, very basic video, basic memory management, basic sound, a 32bit BIOS, and 32bit DOS.

Quite a few things are still missing though, including in the previously listed features. For example, video support does not exist for VESA+ or EGA fonts. Sound only works via the internal PC speaker, not through an emulated SoundBlaster. The CPU emulator also does not have a floating point unit.

One thing to note about ReactOS' NTVDM is that unlike Windows' version ReactOS' does not set the CPU into a 16bit emulated mode. This mode in theory reduces overhead compared to the emulation done by ReactOS, but CPUs these days are fast enough that performance should not be an issue. An advantage of ReactOS' approach though is that our NTVDM is usable on 64bit x86 processors and potentially ARM processors as well.

06.05.2014 NTVDM was merged to trunk and since is being developed there.

Additional functions

  • 17.04.2015 - mouse driver was added (CORE-9166)
  • 26.03.2015 - real support for DOS devices was added (CORE-9370)
  • 07.03.2015 - VDM Configuration Files was added (CORE-7832)
  • 06.07.2016 - VBE support was implemented
  • 28.08.2016 - VESA support was implemented

PIF

A program information file (PIF) defines how a given DOS program should be run in a multi-tasking environment, especially in order to avoid giving it unnecessary resources which could remain available to other programs.

PIF is created after creating of LNK-file of DOS app or changing his properties.