[This originally appeared on the MacInTouch Web server,
The author graciously agreed to allow reprinting in the Washington
Apple Pi Journal.]
They Said It Couldn't Be Done
I spent this past weekend trying to do something that many experts said could not be done. By the end of the weekend they were speechless. I now have an Apple G3 Macintosh running a dual OS, dual-boot, Windows 95/Windows NT 4.0 Server partition, with the Windows NT environment running Sybase System XI SQL Server for NT, supporting full communication with Client applications also running in the same Windows NT space. First a little background and the benefits of this setup, primarily, funny enough, as a test bed for Windows work.
The foundation for this dual-OS, dual-boot environment is a stock 266 MHz G3 Power Macintosh (desktop case, with Zip drive) with a total of 64MB of RAM and a 4GB drive, running the Mac OS 8 that shipped with the machine, loaded with the normal Mac OS 8 extensions ("Mac OS 8.0 All" in the Extensions Manager). It is truly a stock machine, with just an additional 32MB of RAM above the 32 it ships with. I am running a 17 inch Sony 200ES monitor and the whole thing was purchased from CDW for about $3,150.00 including tax.
Next I installed Virtual PC from Connectix, which installs Windows 95 loaded onto a virtual C: drive along with the application. VPC costs $149.00, and includes a license for Windows 95. With Windows 95 running, I added a second virtual D: drive and assigned it a 511MB partition. I then installed Windows NT 4.0 from Microsoft Back Office on the D: drive, which automatically put a boot file on the C: drive, creating the dual boot environment. This boot file is run when I launch Virtual PC from the Mac desktop and allows me to choose which Windows operating system I want to run.
This is where the fun and real usefulness started. After getting NT installed, (no quick feat what with the multiple reboots, the disk checking, the conversion from FAT to NTFS, installing the latest Service Pack, etc., etc.), I was ready to install Sybase System XI for NT. At that point I paused. I had never installed NT before and I had somehow screwed up the first time with the conversion from FAT to NTFS, so this was my second time through already. I was satisfied with things so far, so I quit out of Virtual PC and made copy of the whole VPC folder, which between the VPC application, the Windows 95 virtual C: drive (384MB) and the Windows NT virtual D: drive (511MB) was almost 1GB. That took about 6 minutes via Control-D in the Finder. I put the copy aside and went back into Virtual PC which at that point had Windows NT Server 4.00 set as its default boot environment.
I then started to install Sybase. After it installed (there were some problems, but I had never installed Sybase, either, so I figured I would work on those later), I started installing the PowerSoft tools but about half way through I realized that they were installing on the C: drive. I didn't want this, because I was trying to keep the two environments separate. So after its was done, I quit from Virtual PC, threw away the folder I was working with, copied the original 'clean' C: and D: drives back to the VPC folder and tried again. Total time to restore to a 'clean' environment, about 10 minutes. No hassles with uninstall, no reinstallation of an OS, nothing. Just a Finder copy.
The Experts Cast Gloom
So, I went back in and installed Sybase again. I was having the same problems again, so I got a Sybase guru friend of mine on the phone to help me solve them. He ended up sending me a file I needed which fixed most of the problems but we still felt we needed some additional help, so he got an NT guru friend of his on the phone. After the introductions, I started explaining the situation to him. "Well, I've got this G3 Macintosh with NT running...," I said, and he interrupted me. "You can't run NT on a Macintosh." "Well, I'm running it inside an emulator called Virtual PC," I said. "An emulator? It will never work," he said, and began to lecture me about how NT was written to run only on very specific hardware, that you can't run it on just any old PC and that it interacts very closely with the hardware, getting 'very close to the metal' and that there was no way it would run in an emulator. I explained to him that it certainly looked like it was running, that I was looking right the desktop as I was speaking to him and that I could open windows, run programs, look at CD ROMS, floppies, etc.
That seemed to catch him short, so he started taking me through some administration programs, crowing all the way that they would surely show me where all my problems were, that they would not be solvable, and that they would indeed prove to me that NT could not run on a Mac. So we went through the various diagnostics, going through one by one and passing each time. I could tell that he was lapsing quickly into his NT world, asking me to check things, getting the responses from me, predicting on various occasions what the results for passed tests would be and being pleased when the machine indeed passed, etc. After a few minutes of this, after I was sure he had forgotten what machine we were working on and after it was looking good that the installation had been successful, I asked him, based on the speed of the responses I was giving, how fast he thought the machine was. He responded, "Oh, pretty fast, why?" and I said, "Like maybe somewhere between a Pentium 133 and 166?" He said, "That sounds about right," and I said, "It's running on a Macintosh." He responded with a very empty, "Oh, yea, I forgot."
The long and the short of it is that we got everything up and running. I was happily adding databases in Sybase, creating tables, inserting data, etc. The problem with the Sybase installation was a stupid one, typical when installing something like that for the first time. But by the end of the process, both of the gurus were very, very impressed with what I had accomplished and the speed of the machine, considering the layers of OS and emulation. The NT guy ended our conversation by saying to me, "Man you are way, way, way out there on the edge," and that he was really impressed with what I had done.
Why Do This?
Now, aside from a testimonial about the raw speed of the G3 and the capabilities of Virtual PC, there are some practical reasons for this type of an environment to be created and used regularly, as I said above, as a test bed for Windows programs. My experience with Windows machines (and, to be fair, in some cases with Macintosh applications as well), is that files and DLL's get scattered all over the place, sometimes interfering with one another. I am just not enough of a Windows expert to be able to diagnose these problems when they occur and I don't want to have to hire someone every time I want to install something new. My experience with the Uninstall option of most Windows programs is that they are spotty, at best, and often do not completely clean up after themselves. Typically, at least one thing or another is left broken.
As with my experience above, having to install Sybase a second time, it was a blessing to so easily roll back to a prior version of my environment without having to resort to uninstalling anything, reinstalling the OS or having to stitch back together old or modified DLLs. The ability to have the freedom to easily try an installation as many times as needed to ensure that it goes right, especially when the setup is complicated and has many parameters like a database product, is invaluable. In addition, once installations and settings have been done to my satisfaction, I have the ability, assuming that there is enough disk space available, to have multiple virtual machines available to run, each with its own configuration. So I might have a Sybase NT server, an Oracle NT server and an MS SQL Server, each ready to run at a given moment, each configured to my liking. No backing up to tape and restoring from backup, no one database product interfering with another, etc.
There is another plus. One feature of Virtual PC is that I can save the state of the virtual machine when I quit from the program. This saves a file to disk, varying in size from a few megabytes to over 20MB, which is the complete state of the machine as it existed when I left VPC, including any running programs, processes, services, etc. It basically places the Windows environment in a state of 'suspended animation,' waiting to be resumed again when I double-click on the 'Saved PC State' icon in the Finder. Depending on the size of the file, it takes from 10 to 30 seconds to come up, but there I am again, inside my Windows environment. It sure beats waiting for Windows NT Server to start up.
Finally, since VPC uses the memory assigned to it and then gives that memory space to the virtual PC it is running, by adding memory to the G3 Macintosh, you are adding available memory to your PC. When I first started this experiment, I had assigned 50MB to Virtual PC, resulting in a PC with 39MB of memory. At one point I reset the memory assigned to Virtual PC to 55MB (I am on a 64MB machine) and sure enough, the next time I booted my virtual NT Server, it showed 44MB of memory. This method sure beats those Pentium cards for the Macintosh where if you want to increase the RAM for the PC you have to add real RAM to the card and you are unable to take advantage of that extra memory on the Macintosh side. In one case since I did all this, we launched Virtual PC on a 288MB real-RAM UMAX clone, assigning 96MB to VPC , resulting in an 85MB PC.
I was able to put this weekend's worth of work to immediate advantage and was in fact the reason I attempted the whole process to begin with. I needed to make an on-site demo (the client is out of town) of a client/server application we were developing in Omnis Studio to go against a Sybase database. I didn't want to start with the whole hassle of making sure his server had a database established, the tables all created and populated with sample data etc. It was just too early in the process. I didn't want to have to travel out of town for a demo and I certainly didn't want to drag our server along. So, having established a folder that contained Virtual PC along with virtual C: and D: drives, I copied the whole folder to a Jaz cartridge and shipped it to the client, ready to run on his G3 or even another powerful Power Macintosh like an 8600 or 9600. He was able to run the whole demo off of the Jaz cartridge and everything went very well.
In conclusion, a G3 Macintosh running Virtual PC is just about fast enough for an everyday, production Windows machine. However, it is undoubtedly fast enough for testing, even intensive and drawn out testing; in fact no different than if one were to have an older Pentium box lying around as a test machine. Despite that, there are some clear advantages that a Virtual PC/G3 Macintosh has over even a native PC, fast or otherwise, and no matter which Windows operating system you are using. The ability to easily roll back to prior states of the machine I find to be invaluable, as is as the ability to have many PC's, each with their own configuration. And the ease with which one can save the state of the machine and restore it the next time is also a real time saver. Finally, the way that Virtual PC can save money with its dual memory usage certainly makes the whole combination a very cost effective solution.
David Ferri, President, Word Master, Inc. 320 Earls Ct. Deerfield, IL 60015 firstname.lastname@example.org
Return to electric pi
Revised January 3, 1998 lic
Washington Apple Pi