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

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

editor@os2voice.org


A First Look at Virtual PC for OS/2

By Mike Snyder © June 2002

Like many people who hang out on OS/2 mailing lists, eCS news groups, and similar places, I use a computer at work and at home. Also like many of them, I am forced to work in a world dominated by software written for Windows. Most commercial software companies don't seem to think that there is a market for OS/2 software. My office LAN connects 15 computers, 13 of which run some flavor of Windows. Fortunately, my own and the router that runs In-Joy Firewall, Weasel and a few other things run on OS/2 or eCS. I'm able to do almost all of my work for the company with MR/2 ICE, WordPro, Lotus 123, PM Fax, Home Page Publisher, PMView, and a host of other OS/2 software. I do use Paradox 5 as my database, because I've had it for years and it works well in a WinOS/2 session.

Unfortunately, the principal software program for our business is Point for Windows, by Calyx Software. Point is a mortgage loan origination program that's basically a database manager with lots of forms. When you apply for a mortgage loan in the U.S., there's a fairly good chance that the forms you sign were generated by Point. Until about two years ago, Calyx wrote Point to run even on Windows 3.0 systems, so it performed well in a WinOS/2 session. Recent versions, however, are 32 bit and use Install Shield 6 as their installer. Since the nature of the business requires yearly or more frequent changes to the software, I've been stuck using an older version for quite a while. As I provide support to people who use the newer version, that's become increasingly more difficult. I long for the day when all Windows software will install and run on OS/2 or eCS with Odin, but we're not there yet.

Several months ago Kim Cheung and the guys at Serenity Systems announced that they were working with Connectix, the authors of Virtual PC (VPC) for everything else, and Innotek, a well known OS/2 software company based in Germany, to produce VPC/2. Innotek are the guys who ported Flash 4 and 5 to OS/2. They also make a redundant server software system of interest to wealthy businesses. If you haven't seen VPC before, it's a software program that lets your operating system be the host of a guest OS that runs entirely within a window on your desktop while your primary OS is running. Connectix sells versions for several operating systems, but OS/2 was not one of them until recently. You start the Virtual PC and then start one or more of several operating systems you may have installed within it.

Because of my need to run a Windows program and my obstinate refusal to go over completely to the Dark Side, I've eagerly anticipated the release of Virtual PC for OS/2. I've been reading the Innotek Support Fora for VPC/2 for months, and bought the program as soon as someone listed it for sale on their web site. The first I found was Mensys, so they got my cash. Others may get more of it after I'm convinced that it helps me.

You probably want to know everything about VPC/2. This article won't answer all of your questions. It offers my initial impressions about what VPC/2 does and how well, or not, it may work for you. If you want more, spend some time at http://ubb.innotek.de/cgi-bin/ultimatebb.cgi?ubb=login. You'll have to register, but that's relatively painless. You'll have access to the questions of many users and the answers of both more experienced users and the authors of the program. One of the nicest things about the OS/2 community is the ability to talk with software authors. Most of them are eager for feedback, and accept even negative comments if politely made. In a world of mostly genuinely nice people, the guys at Innotek are among the best. Additionally, their support site is one of the most pleasant I've used. It does require a web browser, but it's easy to use and relatively fast.

Getting the program:

Vendors will eventually sell a shrink-wrapped box with CD and manual. Right now, you buy the software and download it. It's about a 10 MB download. In my case, with a cable connection, that was entirely painless. If you're at the end of a long phone line in the country, it may take longer, or you may want to wait for the CD. Mensys emailed me the key and the download instructions.

I had to pay for the program to try it. Innotek has announced plans to release a demo version, which may be time-limited or crippled. That's not a bad thing to get if only to see whether your hardware will support VPC/2. It could save you 199 Euros just to find out that you can't run it on your system.

Installing the Program:

Once you unzip the download file, you simply run the installer. In seconds you make a few choices about where you want to put it, and of course read and agree to the license, and you're done, almost. You will be presented with a screen that offers to install a Virtual Switch. The default is NOT to install it. If you wish to install it, and you do, you have to click on the name of your LAN adapter in the window AND click on the "Change" button beside the window. Just clicking on the LAN adapter is not sufficient to tell the installer to install the Virtual Switch. I think that this part of the installer could be improved. But once that's done, VPC/2 will have a folder on your desktop. You must reboot to activate the program, because it requires a device driver. The Virtual Switch also makes changes to your protocol.ini file.

Without the Virtual Switch, VPC/2 allows the "guest" operating system (the one you're going to install later) to share folders on the host machine by means of its "Shared Folders" feature. This doesn't use netbeui, tcpbeui, TCP/IP, or any other networking protocol, but is proprietary. It's also excruciatingly slow. You do not want to use this feature unless you just can't install netbeui on your host system. Without Virtual Switch, the guest PC can still access your network through your current LAN adapter. It just uses TCP/IP only. That will be enough if all you need is to use Internet Explorer, for example.

If you have to share files on a peer LAN like mine, you need the Virtual Switch. With the Virtual Switch installed, VPC/2 switches your LAN adapter into "promiscuous mode", in which it receives everything and lets the operating system sort out what it wants. That allows you to establish a "separate identity", with your own computer name and IP address, for each guest PC, so that you can use the network protocol that your LAN uses if it's not exclusively TCP/IP. The same physical computer could be several different computers on your LAN at the same time or at different times depending on how many guests you want to run.

Once you've installed VPC/2 with the Virtual Switch (Yes, I'm obsessed with this.), you reboot and start the program to enter your key.

Setting up a Virtual PC:

Setting up a guest OS on VPC/2 is simplicity itself. You start by clicking on the New PC button in the main window. You will be asked whether you want to use an existing disk image or to create a new one. Connectix sells disk images with the OS of your choice already installed on them, so you can use one if you have it. Just tell the program where you put it. If you've already created a guest OS, you can move it to a different machine. That's possible no matter what kind of hardware the two machines actually have because the guest OS is installed not on your real hardware but on the Virtual PC, which is always the same.

Setting up a VPC

Let's assume that you have no disk image and need to create one of your own. Just pick a name for it. I created a directory to put it in just to keep track of it, but you can put it on any drive (volume if you're using eCS, WSeb, or MCP) in any directory in your real PC. Let VPC/2 guide you. It will suggest the amount of memory you should allocate to the guest OS based on which one you want to install. The amount of memory it wants to install is more than what you may be using to run that OS on a separate computer. For example, it suggests that you use 64 MB for a Windows 98 system. The guest PC emulates an entire computer in memory, as well as running the guest OS, so don't try to cheat it out of memory. To run a guest, your computer must have enough RAM to run OS/2 or eCS plus the amount of RAM you allocate to the guest PC. That may be a limitation for you. I wouldn't consider trying to run VPC/2 without 128 MB installed on the box. The system I use at work actually has 512 MB, because I beefed it up when RAM was cheap in anticipation of VPC/2. RAM is not so cheap as it was a couple of months ago, but it's still cheaper than a complete PC, so don't scrimp on the RAM.

You want to make sure that the new PC is set to use the Virtual Switch. You may have to change the address of your printer port. VPC doesn't always seem to recognize that you have a printer port, and may not pick the right address for it. If the setup doesn't show the printer port with its correct address, just change the setting with the pull-down menu. You're probably not going to want to print directly to the port anyway, but the guest OS needs to think that it has a parallel port to install a printer.

LPT1 setting in VPC/2

When you've finished the brief configuration, the guest OS will attempt to start. Since there's no OS there yet, you'll get a disk error. Put in whatever is needed to start the installation of the guest OS. If that's Windows 95 or 98, it's a floppy. My copy of 98SE has a bootable CD, so I put that in. Installing the OS is pretty much identical to installing it on a real computer. Except it's slower. You will be installing to a machine that has an S3 video card and an Intel NIC. They were recognized in both Win 98 and Win2K. My initial problem was the parallel port, but that can be solved by making sure that VPC/2 has the parallel port set up before you start the guest OS installation.

After considerable time and the usual number of reboots and scans for hardware, you will have a working OS. Depending on what type of network you have, you will have to set up the networking. Our LAN grew as a two-box replacement for a sneaker net, using things that come with Windows, so it uses tcpbeui and TCP/IP. I like knowing the address of each box for troubleshooting, so they have fixed addresses. Install networking, be sure that your workgroup name is correct, assign the guest OS an IP address or tell it to use DHCP, and you should be in business. Reboot and use your LAN just as if you had added a physical PC to it.

When the installation has finished and your guest system starts in a window on your desktop, the first thing you'll probably notice is how small the window is. I grabbed a corner of the guest window and tried to increase the size, but it wouldn't move. Unless you're a surgeon who's used to operating on abdomens through small incisions in navels, you will want more room. The solution is simple. The window of the guest changes as you change the screen resolution of the guest. VGA produces the small window that you first see, while 800X600 produces a window of the size you see on my screen shot. I didn't try anything bigger than that, because I only use one desktop. If you have Object Desktop or use the Page Mage feature of XWorkplace, you could put an high resolution window of a Windows guest in one of those desktops by itself.

VPC for OS/2 running Windows98

Most of us want to use the files we already have in applications we run on the VPC. There are two ways to do that. VPC/2 has a concept called "shared folders". This should not be confused with file and print sharing AKA netbeui or tcpbeui. Access to these shared folders is VERY slow. Don't even think about using that feature unless you cannot install any other method of sharing files between the host and the guest. That's why I insisted so much on your installing the Virtual Switch. Make sure that you have shared the drive/volume/folder on your host PC that you want to be able to see from the guest OS. You will have to make sure that you create a user with the same name as the one you gave to the user on your guest OS, and (on eCS) give that user permission to access those shares. I had not shared my data drives with anyone else on the LAN, but in eCS (and Warp 4 if you choose to use the feature) it's easy to share a resource with only the users you want to see it. This is different from Windows 9x, and requires some attention if you're accustomed to the typical Doze file and print sharing.

The shared folders feature of VPC/2 is intended to give you a way to share a folder on your host machine with your guests. The idea is to allow you to do something like view a Power Point presentation you get attached to an e-mail with Power Point on your VPC/2 guest. If you share a folder with it, it should be a very small folder with a very small directory tree. I'd make a folder directly off of the root directory of a drive, and put very few files into it at a time. The problem, as the guys at Innotek have explained it to me, is that VPC/2 takes a very long time to find the files. It moves them, when you want it to, fairly quickly. Just don't use it to share an entire drive, or you'll be disappointed.

Installing Applications:

Fresh from my triumphant creation of the guest PC and installation of the OS, I couldn't wait to install the application. I had used VPC/2's shared folders, and wanted to install the application on one of them and point it to another of them for the data it needed. I started the installation program. Believe it or not, 8 hours later it was still copying files. The installation never crashed, it just hadn't finished. Having seen slow installs before, I decided to copy the CD to one of my partitions that was shared with VPC/2 and run the installation from there. This time I let it run for 24 hours. It still hadn't finished.

My astonishment that anyone would attempt to sell something that worked this badly produced a couple of intemperate messages to Innotek that were answered with surprising grace by the authors. I can't emphasize enough how cooperative these guys are. They explained the deficiency of the shared folder mechanism of VPC/2, and suggested that I try a different way of sharing the resources. I bit the bullet and shared my data drive with the workgroup, but only gave access to it to the VPC/2 guest. Then I unmounted the VPC/2 shared folders and mounted the resources with Windows' file and print sharing. To say that access to the resources seemed a bit snappier would be the understatement of this young century.

I started the installation over again, and decided to install everything to the guest OS. With Point, that's not much of a problem because it uses an .ini file in the \windows directory to tell it where to look for its resources. After the installation, I knew that a minute with a text editor would have it pointed where I wanted it for data files and templates. This time the installation finished in 40 minutes. For perspective, the program usually installs to a Win 9x system in about 10 minutes. That's acceptable to me for this type of application, as I don't expect to install it very often.

Finishing the application, I rebooted the guest, edited the VPC's c:\windows\winpoint.ini file so that Point would know where my data folders really were, and launched the application. To my surprise and gratification, it ran just like it does on the Win 9x PCs, but much more slowly. It's usable if I don't try to access all 35 or so data folders, but just. It felt as if my K6 III-450 had magically turned into a 386.

I asked myself how this could have happened. I built this system myself especially to run Warp 4. It was never cutting edge, because I'm cheap, but it runs eCS very smartly. We are spoiled by using an OS that's mature and fairly undemanding of its processor. Many of us have experienced satisfactory performance on 486 processors. This system has the best socket 7 processor ever made, and the disk subsystem is Ultra2 SCSI with two fairly fast LVD drives. The CDs run on a separate channel. However, with VPC/2, it becomes a dog.

The answer is fairly obvious. VPC/2 puts an extremely heavy load on the processor. Sadly, my beloved K6 III just won't cut it any more. I explained the situation to my boss, a longtime thrall of Microsoft. He was astonished to see Windows 98 boot in a window on my PC, and even more surprised to see Point load. I told him that I needed new hardware to run it satisfactorily, and got the green light to go shopping.

What happened then?:

Having spent slightly more than $200 of my boss' cash to supply myself with an Athlon XP 1700+ and a board to hold it, and installed them in my box, I bid a fond farewell to a faithful servant and fired up the new system. There's quite a bit of difference between a K6 anything and an Athlon XP.

I booted the system and started VPC/2 and then a Doze 98 session. With this kind of horsepower, VPC/2 moves reasonably quickly, although booting the guest system is not blazingly fast. It is still Windows! Point should be able to access data files in 35 different directories on three PCs, one of which is mine. The three drives have been mounted in Doze 98 with tcpbeui. Access is much quicker, but Point still takes a long time to start because it has to find all of the directories on the network as it loads. It works about as fast as it would on a Pentium 166 system running Doze 98. The guest does not run Windows like it would run if you actually booted to Windows, nor does the program run as fast as it would run in a WinOS/2 session, if it would run in one like its older sibling, but it's quite usable.

Unsolved mysteries:

There were other problems, however. I noticed that I could not access the network shares from my host eCS system while the VPC was running. So I shut VPC down and tried again. You've all experienced what happens to OS/2 when you try to access a resource that the system thinks should be there but it isn't. Using VPC seemed to wipe out my access to network connections until I rebooted.

I puzzled over this for a while, and decided to try an experiment. Because I access a lot of network resources, drive letters are a precious commodity. Several months ago I bought NetDrive to solve that problem. One of its virtues is that you can mount all of the network connected drives as directories under only one drive letter, so I've been using it. Since most of the other boxes on the LAN are Windows, file and print sharing is done with tcpbeui. But I thought that maybe VPC/2 and NetDrive might have some incompatibility. I edited my startup.cmd so that it mounted the resources with net use \\computer\drive commands. When I started VPC/2 again, I was able to access the shared resources from both systems at the same time, and they stayed accessible after VPC was shut down or saved. Problem solved, but by sacrificing something I've also found useful.

I've tried this on another machine running NetDrive that only uses netbeui and TCP/IP rather than tcpbeui and TCP/IP. Not only do the network drives continue to be accessible to the host system, they are accessible to the guest system as well. I can't explain this, but if you have to use tcpbeui, you may have to do without NetDrive.

Then I noticed that my TCP/IP connection seemed much slower when I was using VPC/2. I did a series of tests at www.bandwidthplace.com. I won't reproduce the results here, but my conclusion is that from the time VPC/2 is started until a reboot of the host is done, something significantly lowers the throughput of TCP/IP networking. I sent those results to Innotek. I tried this, too, on the other system. While the speed tests on the Win 98 guest were about half of the speed of the host with the guest open and one third of the speed of the host with VPC/2 closed, speed was still a lot better than a modem, and the host wasn't affected after the guest was closed. This was something of a mystery to me. The systems are very similar hardware, and both run eCS FP1 with TCP/IP 4.3.2.

I solved the mystery by buying an Intel EtherExpress Pro 10/100 NIC. When I installed that in the system that I'd had the problem with, performance improved dramatically. The speed tests from within the Windows 98 VPC/2 session were still much slower than from the eCS session, and it too was slower with VPC running. But when I closed VPC/2, the speed of the eCS session went back to normal. The LinkSys LNE 100TX Version 2 is a good NIC if you run OS/2 or eCS, but it doesn't work right with VPC/2.

Conclusions:

Does this work? You're damned right it does. I've dreamed for quite a while about being able to use a MS Windows program without rebooting and while I was doing something else. You can definitely do that with VPC/2.

Will this work for you? It will if you have the hardware to support it. Innotek recommends a minimum of a K6 III or Pentium II or III, running at a minimum of 266 MHz, and recommends 500 MHz. It undoubtedly will run on a K6 III 450, but you won't like the way it performs unless all you need to do is run Internet Exploder. If you really need this to work well, treat yourself to something more modern.

Is this as good as Odin? That's hard to say. If your application will run properly under Odin, you will likely be able to run it without buying the hardware needed to run VPC/2. And it will probably run faster under Odin. If it doesn't run properly now, it probably will some day soon. How urgently do you need the program to run? Also, does the program you want to run have an installer that only works with a real Windows system?

VPC/2 is not really a competitor to Odin. Odin, after all, is intended to run Windows applications. If you need to run a Linux application and you don't like the way it runs on XFree86, you can always install a virtual PC running Linux and use it in that. Some day, Odin and Everblue may let us install and run every Win32 and Linux application directly on our OS/2 or eCS desktops. Today they don't. If you'd like to do something very near to that today, and don't mind investing in a little modern hardware, you should take at least a demo ride on VPC/2. My hat's off to the guys at Innotek for solving one of my more vexing problems, and someone will get more money from me, when I have it, for another copy or two of this marvel.

References:
Virtual PC for OS/2
Developer: Virtual PC for OS/2 web site - http://www.innotek.de/products/virtualpc/virtualpcgeneral.html
Price: Electronic delivery: $175.27 USD/199 Euros, retail boxed version: $207.14 USD/239 Euros

VPC/2 online support forums - http://www.innotek.de/products/virtualpc/virtualpcsupport.html


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