[an error occurred while processing this directive]

  Linux Letter 02

Hello again, and welcome to another Linux Letter.  Today I’m working up in the mountains of central Idaho with my notebook, so I don’t have a high speed Internet connection to surf with.  In fact, I don’t have any Internet connection at all, so I’m using my notebook computer, which forces me to use Windows 98.

Now I should start off by pointing out that, unlike a vocal group of Linux advocates, I don’t think that “98” is the number of the beast and I’m pretty sure that Bill Gates isn’t Satan, or even a lesser demon.  The operating systems that we use are just tools to get a job done, and like the tools in your garage, some do a better job at certain things than others.   You wouldn’t use a hammer to remove a screw, would you?

So I run Windows 98 on my notebook computer and that’s because there are some proprietary features on it that only Windows supports.  And I’m OK with that.  In fact, there are a number of programs that I use that just don’t have a Linux analog.  Quicken is one.   NetXRay, the network scanning software that I use to maintain our network also doesn’t have a Linux version.  The bug tracking software that I use at work is a Windows-only product.

I suppose that means that I have to either have two computers on my desk or dual boot one and reboot it several times a day.

Of course, you know that the answer is that there are other options, or else this would be a very short column.  In fact, there are a couple of methods of running Windows programs within Linux.  

The two approaches are emulation and virtual machines.  Emulators, such as Wabi and WINE allow you to run most Windows programs by providing the dynamically linked libraries (DLLs) that the programs expect to see from Windows.  They “fool” the program into thinking that it is running under Windows, when, in fact, it is not.   Virtual machines actually create a completely separate environment within the host operating system that allows you to physically install the Windows operating system, almost like an island in the middle of the ocean.   Each has its strengths and weaknesses.

Emulators tend to be fast.  They don’t require much more CPU power than the program itself, but they can be limited in the number of programs that they can run.  If a particular program requires a special library that hasn’t been ported to Linux, then it will not run.  Virtual machines tend to be slower, but because they actually run the Windows operating system, there is almost no limit to the number of programs that will run.

My choice is to use a virtual machine to run my Windows programs.  VMware produces a virtual machine software package that not only lets you install any version of Windows on your Linux system, but also allows you to install and run DOS, FreeBSD and just about any version of Linux.  Linux within Linux?  It makes sense if you are trying to develop a new software product and only have one computer to use.  Rather than risk crashing your development system, you can create another Linux computer within it, so that all of the damage from a crash is contained within that virtual machine.

Now, as I said earlier, a solution like this takes some power.  The recommended system is a Pentium II 266 with 96MB of RAM.   I installed VMware on a Pentium II 300 with 96MB.  The performance, while not the equivalent of Windows 95 running on a PII 300, was still very good after I installed VMware’s Windows toolkit.

The toolkit provides SVGA drivers to allow super VGA resolution in high color.  It also accelerates the display, improving the virtual machine’s performance tremendously.  The toolkit is a free download from the VMware web site.

Speaking of downloading, I was able to install networking under Windows in the virtual machine.  It works just as you would expect networking to work under Windows.  DHCP provided the IP address, as it does for the rest of the systems on my network.  From there, it was a simple matter to open Internet Explorer and download the VMware toolkit.  In fact, networking works very well.  You can see a demonstration by pointing your browser to http://virtual.nospin.org.  That will connect you to a very simple web page served by the virtual machine running Windows 95.

I installed a fairly wide variety of software on the virtual machine, including Microsoft Office 97, Microsoft Publisher and Quake II.  Office and Publisher worked well, but because VMware only implements DirectX 3, Quake II’s performance suffered.  Nonetheless, everything that I installed worked.

You can use up to four IDE devices, the mouse, printers, serial ports, sound, two floppy drives, and up to 2GB of memory.  At this point in the software’s development, hard drives must be actual IDE devices, but CD-ROM drives can be IDE or SCSI.  The virtual machine will see them as IDE CD-ROM drives.

VMware is commercial software.  You can download a 30 day trial version, then purchase a key online to continue using it.  Support is provided via the web and newsgroups.

Also, because you must install a copy of another operating system within the virtual machine, licensing issues may need to be dealt with.

Next week, we’ll talk about the other way to run Windows applications: emulators.  We’ll take a look at WINE, the Windows Emulator.

Keep those questions and comments coming to: LinuxLetter@nospin.org.


The Hot Tip of the Week!

Has this happened to you?  You’ve successfully installed RedHat Linux 6.0, but realized that the kernel is just a few revisions out of date.  So, you go to http://www.kernel.org and download the latest kernel sources.  After compiling the kernel and updating lilo, you start seeing errors like this:

Warning: /boot/System.map has an incorrect kernel version

Everything seems to work correctly, but that error really bugs you.   Here’s what happened:

In the pre-RedHat 6.0 days, System.map was either copied from /usr/src/linux to /boot, or was a soft link to /usr/src/linux/System.map.  In RedHat 6.0, System.map is a soft link to /boot/System.map-2.2.5-15.  Change the link like this:

su to root

rm System.map

ln –s /usr/src/linux/System.map System.map

Your error messages will be gone!


Happy Computing!

Drew Dunn


Get your free email account...  TODAY!!!


The Power


[an error occurred while processing this directive]