Microsoft Virtual PC: Difference between revisions

From OSDev.wiki
Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content added Content deleted
No edit summary
No edit summary
Line 7: Line 7:
Summary: It is okay, but doesn't have an integrated debugger. Pretty fast though :)
Summary: It is okay, but doesn't have an integrated debugger. Pretty fast though :)


Pros/cons:
=== Pros/cons: ===
* '''PRO:''' It provides PCI configuration method 1 support and [[SMBIOS]] ([[Bochs]] seemingly does not)
* '''PRO:''' It provides PCI configuration method 1 support and [[SMBIOS]] ([[Bochs]] seemingly does not)
* '''PRO:''' Fixed size disk images are very easy to work with and can be shared by Virtual PC and Bochs :)
* '''PRO:''' Fixed size disk images are very easy to work with and can be shared by Virtual PC and Bochs :)
Line 17: Line 17:
* '''CON:''' No APM support and minimal ACPI support
* '''CON:''' No APM support and minimal ACPI support
* '''CON:''' Windows only; can't run it on non-windows operating systems
* '''CON:''' Windows only; can't run it on non-windows operating systems

=== Bug in Virtual PC ===
Virtual PC will throw an undefined opcode exception if a multibyte-nop (e.g. nopl (%eax,%eax,1)) is executed. Recent compilers will use them as an optimization and may cause your Kernel to not run on VPC.


[[Category:Emulators]]
[[Category:Emulators]]

Revision as of 17:13, 31 January 2012

Emulators
PC Emulators
PC Virtual Machine Monitors
PowerPC Emulators

Microsoft Virtual PC is Microsoft's release of a product line they acquired from Connectix in February 2003. It natively provides support for Windows operating systems, but, using the 'Other' option, it is possible to install and run pretty much any Operating System. (Tested with Linux and several hobbyist OSes.)

It has a very similar feel to the VMWare PC emulator, and provides most of the same functions, and is free. A free downloadable version of VPC is available from Microsoft's website.

Summary: It is okay, but doesn't have an integrated debugger. Pretty fast though :)

Pros/cons:

  • PRO: It provides PCI configuration method 1 support and SMBIOS (Bochs seemingly does not)
  • PRO: Fixed size disk images are very easy to work with and can be shared by Virtual PC and Bochs :)
  • PRO: Supports "dynamically expanding" disk images that start at a miniature size and expand when data is added.
  • PRO: If you integrate a simple debugger and serial I/O into your OS, you can debug it over a named pipe. Just enter \\.\pipe\yourpipename into the configuration page for COM1 or COM2, and connect your debugger (on the host PC) to the same pipe.
  • CON: 15- and 24-bit graphics modes aren't supported in the emulated S3 Trio (but they are in the real one), they screw up the display. It looks like some kind of 1980's computer with a defective CRT. Oddly enough, 32-bit color _is_ supported. See this post on Virtual PC Guy's MSDN blog.
  • CON: It only supports a minimal set of hardware - just enough for decent use. It doesn't support VBE 3.0 (the one with protected-mode access), BIOS32 for PCI (although that is easily implemented without the BIOS), or loopback mode for the serial UARTs.
  • CON: Apparently doesn't support 64-bit hardware. Tested on a machine with a Core 2 Duo (64-bit) and it triple-faulted..
  • CON: No APM support and minimal ACPI support
  • CON: Windows only; can't run it on non-windows operating systems

Bug in Virtual PC

Virtual PC will throw an undefined opcode exception if a multibyte-nop (e.g. nopl (%eax,%eax,1)) is executed. Recent compilers will use them as an optimization and may cause your Kernel to not run on VPC.