Virtual OS/2 International Consumer Education
VOICE Home Page: http://www.os2voice.org
May 2003

[Newsletter Index]
[Previous Page] [Next Page]
[Feature Index]

editor@os2voice.org


Virtual PC - Now We Can Have It All!

By Mark Szkolnicki© May 2003

For me, as a consultant and power user, the holy grail for OS/2 - eComstation (eCS) has always been to run all the programs, utilities and all the hardware I require from the same desktop at the same time.

I've always preferred OS/2 for it's power, stability and crash protection; however, while many native applications under OS/2 can substitute for native Windows applications in the same niches, almost all my clients use Windows and the latest native Windows applications for their operations.

OS/2 (and now eCS) only support Windows 3.1 programs out of the box. The ODIN project has achieved great success in allowing some native Windows applications to be run under OS/2 - eCS, but many critical business applications are still unsupported. I was therefore being forced to boot to the dreaded (and more crash-prone) Windows partitions more and more frequently to maintain compatibility with my client needs.

Suddenly, nirvana has nearly been reached with the arrival of Virtual PC for OS/2 (VPC/2).

Virtual PC (VPC) is not an operating system. Rather, it is a subsystem which operates under OS/2 - eCS, and allows other "virtual" operating systems to be installed and operated on the desktop. Applications are installed to the virtual operating system, and are run from a window on the desktop, or can be run full screen.

The OS/2 product is produced by Innotek, a company located in Germany. It is a licenced product based on the Virtual PC product created by Connectix Corporation, for Windows and other operating systems.

The original port of Virtual PC for OS/2 was released at the beginning of 2002, based on version 4.2 of the Connectix product. At the time of writing, the current update is based on VPC Version 5.1.

System Requirements

The best way to describe system requirements for Virtual PC is "more is better".

Virtual PC can be very CPU intensive. The Virtual PC documentation lists a minimum requirement of a 400 MHz CPU on the system, with 600 MHz recommended. Having tested Virtual PC on a 400 MHz and a 600 MHz system, I would definitely recommend a faster CPU, as operations within the Virtual PC window can occur very slowly on a slower machine. Having tested VPC on a Pentium III 1.2 Ghz system, and using it on an AMD 1800+ 1.54 Ghz system, I can say that a faster CPU is definitely an asset.

Using the faster CPU's, program operation in the Virtual PC 5.1 window occurs as fast as programs run under the Host OS.

With version 5.1, Innotek has also indicated that VPC/2 officially supports multi-CPU (SMP) based systems in addition to single processor based systems.

Virtual PC is also very memory intensive. A guest OS will require a minimum of between 32 Mb and 256 Mb of on-board memory to run correctly, depending on the operating system to be installed. While the Guest OS is running, this memory will not be available to the Host OS.

Virtual PC also has the ability to run multiple guest operating systems simultaneously on the desktop. As each OS will use a specified amount of memory, a system with a small amount of memory installed will quickly run out of resources.

VPC also requires a large amount of hard disk space. In addition to space required for the installation of the Virtual PC program, most guest operating systems will require an additional 2 Gb per guest for the virtual hard disk where the guest operating system is installed. Running multiple guest operating systems under VPC will require a significant amount of hard disk space.

Installation

Virtual PC for OS/2 comes with its own installation program, and installation is simple and straight forward. The program can be installed to any drive. Due to the virtual machine space requirements described previously, it is recommended that the virtual machines be installed to a partition or volume with lots of free space.

When the program is first started, the PC Setup Wizard will run, allowing you to create your first virtual machine. A virtual machine is the equivalent of a "virtual computer", where the guest operating system will be installed (also known as the Guest OS). The program actually creates a file with the extension ".vhd" (virtual hard disk) which will contain all the operating system and program information. A separate virtual machine must be created for each operating system to be used.

Virtual PC for OS/2 can run various operating systems as Guest OS's including all versions of Windows, Linux, BSD, Netware, Solaris and DOS. Other versions of OS/2 (Warp 3 and 4) and eCS may also be installed as Guest OS's.

As a first step, you are required to enter a unique name "PC Name" for the virtual machine in the first screen of the PC Setup Wizard.

At the second screen, you are required to choose "Configuration Options" for the virtual machine. At this point, you can choose to have the wizard guide you through settings optimized for various operating systems, create a default PC by modifying settings manually, or duplicating an existing PC (ie. an existing ".vhd" file). I've found that using the "Guide Me" option is the simplest and easiest method, especially if you are unfamiliar with creation of a virtual machine.

The guided option goes to a screen which asks which operating system will be installed on the virtual machine. A drop down menu allows you to choose the appropriate operating system.

The next screen allows you to choose the amount of memory to allocate to the virtual machine while it is running. A default value is provide by the wizard, based on the operating system which is to be installed. This memory will be used to run the virtual machine, and will be unavailable to the host system while the virtual machine is running. The amount of memory to be allocated can also be adjusted on this page.

On the next page of the guided option you will be asked whether to use an existing hard disk image or to create a new hard disk image. Creating a new hard disk image will create a .vhd file with the PC Name specified on the first screen of the guided option.

After exiting the wizard, a miniature image representing the virtual machine will be created in the Virtual PC window. Clicking this image is the equivalent of turning the power switch on for your computer.

The first time a new virtual machine is started, no operating system will be present. You will be required to install the operating system to the virtual machine in the same way that you would install an operating system to a new computer.

Pre-installed OS Packs (.vhd files with an operating system installed) are also available directly from Connectix for various operating systems, and may be installed using the procedures I described above. I did not choose this option, as I found the price for an OS Pack from the distributor to be prohibitively expensive in Canadian dollars (approximately $400.00 for one OS Pack)

Virtual machines under Virtual PC have a "standard hardware" configuration which is part of the program, and which will be detected by the operating system as it is being installed. The "virtual"configuration (eg. BIOS, video card, sound card, network card) in the virtual machine will probably not match the hardware of your actual PC, but this does not matter - the program interfaces with the actual equipment on your host system to run any programs present on your virtual machine.

After operating system installation, and after the virtual machine is rebooted, you will now have a version of the operating system running on your desktop.

The next thing that is required is to install the Virtual PC Additions into the operating system. The Virtual PC Additions for Windows and DOS come as ISO disk images in a Virtual PC subdirectory, which may be mounted to the virtual machine, or accessed from the top menu bar when a guest OS is running.

The Additions act like an additional installation disk, and are used to enhance the Guest operating system which was installed, to allow it to work seamlessly with the host OS/2 - eCS system.

I have used the Additions exclusively on Windows based Guest OS's and they work very well. With the most recent edition of Windows VPC additions, the virtual machine window can be resized on the desktop, or operated in full screen. Full integration of the mouse cursor with the desktop is also available, similar to the behavior of the mouse under WIN-OS/2-eCS, where the mouse pointer changes and is fully useable whenever the pointer is over the virtual machine window. The Additions also provide other enhancements to improve useability when running VPC.

Based on information I've discovered in various forums and newsgroups, Additions are available for Windows, DOS and OS/2 Guest OS's, although the Additions for OS/2 guest OS's (ie. running Warp 3, Warp 4 or another copy of eCS under the OS/2 - eCS Host OS) do not come with the VPC/2 product, and must be purchased separately, or bundled with the Windows host product.

It seems that unsupported Additions with limited function exist for Linux and BSD Guest OS's, which have been developed by a user, but no official version of the these additions, or for other Guest OS's could be found. This would limit the amount of seamless integration of the Guest OS with the desktop, but would most likely still allow programs run on these Guest OS's to function in a normal manner within the VPC window.

Other programs and applications which are specific to the operating system in the virtual machine may now be installed, allowing many programs which could not previously be run directly on the OS/2 - eCS desktop to now be run under VPC.

Operation

While operation of programs under the first version of VPC for OS/2 (v4.2) were quite slow, even on fast computers, use of version 5.1 of VPC, with the suggested hardware, has created a virtually seamless environment for running programs from other operating system environments on the OS/2 - eCS desktop.

The experience will not be much different for users who run WIN-OS/2-eCS sessions on a regular basis. Virtual machines on the OS/2-eCS desktop may be run as windowed or as full screen sessions. The windowed sessions may be resized, by pulling and dragging a corner of the window. Specific video resolutions may also be chosen, by adjusting the video resolution, using the appropriate procedure for the Guest OS being used.


Click on the above for a full size image.

With the additions installed, mouse cursors in windowed sessions function in the same way as windowed WIN-OS/2-eCS sessions - when the cursor moves into the windowed area occupied by the virtual machine, the cursor will change on the fly. This is a vast improvement from the original release of VPC, where the Right-Alt / Left mouse button combination was required to switch the cursor outside of the virtual machine window.

The removeable drives on the host system (eg. floppy, CD) may be used to transfer information or install programs into the virtual machine. If a disk were present in the drives when the virtual machine session is started, these disks may already be recognized by the Guest OS and be accessible. If not, you can use the "CD" or "Floppy" menu item at the top of the VPC window to release the host drive, or capture a new disk or drive into the virtual machine session. ISO based virtual disk images may also be captured in the same manner.

Items present in programs in the VPC window may also be copied, or cut and pasted into native OS/2-eCS program sessions, WIN-OS/2-eCS sessions, or other virtual machines which are also open at the same time.

VPC also has a settings page for each virtual machine, which may be accessed from the virtual PC window showing all the installed operating systems, or from the running virtual machine session by clicking on the EDIT - SETTINGS option on the Virtual PC menu bar. Changes to memory settings, identification of additional virtual disks, identification of serial ports and parallel ports and changes to network settings may all be made on the settings page for each virtual machine.


Click on the above for a full size image.

It should be noted that most of the settings cannot be changed when the virtual machine is running or in a saved state, as the settings will be "greyed" out. If you need to change the settings, you should shut down the virtual machine, using the "Turn Off PC" option, change the appropriate settings, and then restart the virtual machine.

Data may be stored within the virtual machine session, on the virtual disk which was created to install the operating system. Alternately, data or programs may be stored on up to two additional virtual disks which has been created using the Virtual Disk Setup Wizard. Additional virtual disks for storage can be identified to the virtual machine, by adding these virtual disks on the settings page, when the virtual machine is shut down.

It should be noted that various virtual machines can share virtual disks created for data or programs, if you want each operating system to access the same virtual data or program disks. However, Guest OS's which share the same virtual disks will not be able to be run on the desktop at the same time.

One other note about virtual data disks. The Virtual Disk Setup Wizard gives you the option of creating a dynamically expanding virtual data disk, or one of set size. Dynamically expanding disks will continue to grow, even if data or programs have been erased, and will eventually grow to encompass the size of the entire volume or partition on which the virtual disk has been placed.

According to the frequently asked questions section of the Innotek Forum, you have to NULL all the space in the filesystem that is not allocated, as a first step in shrinking the virtual disk. In order to do this, Innotek suggests that you should get DFSee, a hard disk utility created by Jan Van Wijk, which is available for OS/2, DOS and Window. DFSee contains a command called "ZEROFREE" that will do the job for you on FAT, FAT32, HPFS and NTFS drives. The "compact disk" option in the Virtual Drive Wizard can then be used to shrink the actual size of the virtual disk.

I have not tried this above mentioned procedure myself, so I have not assessed just how easy or difficult it may be to accomplish.

Data may also be stored on physical drives and directories of the host operating system. A "shared folder" on a physical drive may be identified on the settings page, which can be used to share data between the Guest OS and the Host OS; however, access to the folder identified in this way is extremely slow. The preferred method, which I have found to be the easiest and the quickest to use, is to install virtual switch networking, which also allows access to all shared resources on the network (see the Networking section below).

To support various clients, I currently have versions of Windows 98, Windows Me, and Windows 2000 installed as Guest OS's. Critical applications which I use such as Word 97, Word 2000 and CorelDraw 9 are operating flawlessly, using the same procedures that would be used from the actual Windows desktop.

On finishing a virtual machine session, you have the option of saving the virtual machine session in it's current state, or shutting down the operating system. If shutdown is chosen, the virtual machine will reboot the next time the virtual machine is started. Some network connections may be lost (eg. access to files on other machines on the network) when the saved state is restarted, but these connections may be reestablished, as required.

If an application does fail, or the virtual machine experiences problems, the virtual machine session may be shutdown and rebooted, without affecting the host system. This may also be done if a new application or driver has been installed and a reboot is required.

It should be noted that Virtual PC is not designed for gaming.

In the original tests I undertook, I decided to try installing a couple of mainstream, full blown games (eg. Diablo, Seven Kingdoms) as well, to see how they would function under VPC. I found that VPC was really optimized for mainstream business systems (which is really the reason it was created, of course). Most of the games froze at the beginning during resolution changes, or had menus or other items integral to the games which were inaccessible, making them essentially unplayable.

Networking

To integrate the virtual PC's into the network, a network driver called SWITCH.OS/2 must be installed into the Host OS. Virtual switch files are present in a subdirectory of the Virtual PC installation named VSwitch.

The Virtual Switch driver works by hooking between a physical Ethernet card driver and software protocols such as TCP/IP, IEEE 802.2 or NETBIOS. Using the switch, allows other physical computers to be seen and accessed by the virtual PC's and vice versa.

Currently the switch only supports Ethernet cards (and other cards such as WaveLAN 802.11b that use Ethernet frames). Token Ring is not supported at this time as it is fundamentally different from Ethernet and not compatible with how the Virtual Switch works.

The virtual switch requires a working network card driver for eCS or OS/2 to be installed on the host system and bound to the appropriate protocols. The virtual switch may be installed at the same time as the installation of Virtual PC, or may be installed later, through the Virtual PC setup program. In either case, appropriate changes will be made to the CONFIG.SYS and PROTOCOL.INI files. The Virtual switch may also be uninstalled, as required, through the same setup program.

Advanced setup options for MPTS and the Virtual Switch will need to be done manually, through Network Adapter and Protocol services. However, the documentation for Virtual Switch is well written, and easy to follow.

It should be noted that networking functions in the Guest OS must also be setup correctly, based on the type of network set-up used, in order for the virtual machine to be recognized correctly through VPC.

Each virtual machine which is running on the Host OS desktop is seen as another computer on a Local Area Network. Shared devices, directories, and files on the network are accessed in the same way as they would be if you were running the appropriate operating system on a another physical computer. The host system is also seen as a separate computer on the network.

On the settings page for each virtual machine, the virtual machine may be configured to determine how it communicates with the network and other virtual machines. By default, the Virtual Switch setting is used.

The Virtual Switch configuration may be set for "Local Only" (shared communications between virtual machines), "Local and Host" (shared communication with all virtual machines and the host) or "Local, Host and External" (free access to all virtual machines and computers on the network) or "External Only" (communications to external clients on the network only).

The settings page also allows configuration of the virtual machine for no network connectivity, or for sharing of the host computers IP address, if possible, dependent on the network configuration.

One bug is currently present in the v5.1 virtual switch driver. Directories and files on the host system are accessed extremely slowly from the guest OS, making usage of files stored on the host computer by programs running under Virtual PC extremely difficult. However, accessing files on other physical computers is unaffected.

Luckily, the problem lies in the SWITCH.OS/2 shipped with v5.1. Using the SWITCH.OS/2 shipped with v5.0 allows access to all shared resources on the host and other computers to proceed normally.

Sound

Support for sound is present in the current version of VPC/2; however, this support is turned off by default.

Many sound drivers for OS/2 have bugs, which can cause distorted sound, system traps, lock-ups and other unusual behavior, if sound is enabled under VPC. For most sound drivers, Innotek recommends that sound support is not turned on.

Some sound drivers (eg. the SoundBlaster Live! driver and UniAud driver created by Innotek for IBM) can handle small buffers and high interrupt rates. I have a Soundblaster Live! sound card, using the UniAud drivers on the system where VPC is installed, and have installed sound support using the following procedure:

  1. Go to a command line prompt, and change to the directory where VPC is installed.

  2. Type VPCSETUP /TWEAKVPC

Additional setup options are displayed for VPC. Check the box beside "Enable Sound in Virtual Machines". Close the setup menu.


Click on the above for a full size image.

On the next restart of VPC, your guest should have sound, if a SB16 sound driver in installed on your guest operating system. For Win9x, 2000 or XP, autodetection can be used to find the virtual SB16 card and install the driver.

Documentation

As I purchased the product as a download via the Internet, I did not receive a bound printed document with my purchase. However, a well written, comprehensive manual for Virtual PC, in PDF format, is available for download directly from Innotek.

Innotek also has a forum on their web site which provides support for OS/2-eCS Host OS questions, as well as questions related to usage of various Guest OS configurations under VPC/2. A newsgroup for discussion of VPC/2 is also present on news.ecomstation.nl (ecomstation.support.virtualpc).

Current Limitations

While many features are already implemented in VPC for OS/2, some features are currently unavailable.

Virtual PC currently does not support USB connections in a virtual machine session, although this functionality is planned for an upcoming release. Also, while CD's and DVD data files may be recognized and accessed, VPC does not provide functionality for DVD video playback within a VPC virtual machine, even if appropriate DVD playback software is installed in the session.

As mentioned previously, Additions for various guest operating systems (eg. Linux, BSD) are available in a limited state or are unsupported, limiting the availability of seamless integration with OS/2-eCS desktop. However, this would most likely not impair the function of program operation in the Guest OS window.

Summary

If you need the functionality of all your favorite business applications from various operating systems operating on one desktop, this is the program for you.

I'm impressed by the maturity of the product, as it's available to the OS/2-eCS market today with Version 5.1. For my firm, VPC provides seamless function for windows applications on the desktop, and I have noticed very few problems, after nearly 9 months of usage. Much time has been saved within the business by not having to reboot to other partitions continuously, or having to switch to another computer on the network merely to perform one function or run one program.

The power and stability of eCS-OS/2 on my business systems is now coupled with the versatility of running multiple programs from various operating systems in the same environment. I would heartily recommend Virtual PC for OS/2 to anyone who has these particular and peculiar needs for their business or personal use.

Postscript - Is There a Future for Virtual PC for OS/2?

As this article was being completed, important changes have occurred related to the Virtual PC line of products.

On February 20, 2003, Microsoft Corporation announced their intention to buy Connectix Corporation and their line of products, and integrate Virtual PC functions and code directly into various Windows operating system products, both at the server level and the client level.

Although the OS/2 based host product is produced by Innotek under licence from Connectix, and Innotek have indicated that Microsoft has announced continued development of the product for the transition period, it remains to be seen how this deal will affect future functionality or availability of this product, on host operating systems which compete with Windows for market share.

References:

Other links referenced:
   Connectix Web Site - http://www.connectix.com
   Innotek Web Site - http://www.innotek.de
   Innotek support forum - http://www.innotek.de/support/forums
   DFsee website - http://www.dfsee.com
   eComStation - http://www.ecomstation.com


Mark Szkolnicki has been an OS2 / eComstation user and enthusiast for 12 years.

He is owner and senior consultant of Paladin Environmental Consulting Services Ltd. http://www.paladinenvironmental.com, an environmental and emergency planning organization based in Sherwood Park, Alberta, Canada, which undertakes projects for organizations in Canada, the United States and Internationally.


[Feature Index]
editor@os2voice.org
[Previous Page] [Newsletter Index] [Next Page]
VOICE Home Page: http://www.os2voice.org