If you read any of the trade magazines, you already know that Linux is hot. Choosing Linux as a server operating system is almost a no-brainer, given that UNIX, from which it is patterned, has a long history in the server market and with TCP/IP-based networking. There is a virtual cornucopia of software available to enhance Linuxs server capability. And Linux, like UNIX, has a reputation for bulletproof reliability.
The same characteristics of stability and reliability that make Linux useful at the server level are equally desirable at the workstation level. Add to these attributes the fact that Linux has much more modest memory and CPU requirements than that other PC operating system, and its no wonder that Linux is starting to make headway in the desktop arena.
Of course, a PC isnt useful because it runs an operating system. Its useful because it runs applications, which happen to need an operating system to execute. And this is where some would argue that Linux falls short of the mark. IBM had this problem with its OS/2 operating system. Unlike OS/2, which is proprietary to IBM, Linux has the advantage of being open source; no one really owns it. All that creator Linus Torvalds owns is the trademark. Many software companies have noticed the rising interest in the open source model and either have already ported their software to Linux or are planning to do so in the near future. Thus, the relative dearth of commercial software that plagued OS/2 is not really a problem with Linux. Furthermore, with so many programmers hammering out code for Linux, you can find a work-alike for most of the packages that you currently use, and much of this software lacks the bugs present in commercial packages.
If the picture is so rosy, then what is the purpose of this article? Its simple: Every Windows user has a favorite software package thats available only for Windows. Either thats the case or there is a software package that you have to use thats available only for Windows. Im in the latter camp, and, for me, that package is IBMs Operations Navigator (OpsNav) for the AS/400. Its not that I couldnt live without it (I prefer command lines to GUI interfaces), but IBM has chosen to make it impossible to configure some aspects of the AS/400 without it. (Thanks, guys.) Because I manage a number of AS/400s, I have to be able to configure them. So Im stuck with OpsNav. IBM has indicated that it plans on creating a Java version of the complete utility, but, until it comes to fruition, Im going to have to endure a Windows PC. The purpose of this article, then, is to show how you can
have the best of both worldshow you can use Linux as your primary desktop operating system and take forays into the Windows world only when you need to run one of those gotta-have programs.
Dual Boot
The least convenient method of accessing your Windows programs from Linux is simply not to access them from Linux. Linux comes with a program called Linux Loader, or LILO. This program, which is equivalent to OS/2s Boot Manager or the Windows NT Boot Loader, permits a single computer to bootstrap one of any number of operating systems that may be loaded simultaneously on a single PC. I know the title of this article implies it is about accessing Windows programs while running LinuxIll get to some options to do that shortlybut I have to mention this alternative because it provides a method for you to play with Linux while retaining the production environment you currently enjoy (if you do). In fact, the easiest way to start experimenting with Linux is to add a secondary hard drive, load Linux on that, and use LILO to boot your existing operating system or Linux. Linux is capable of reading or writing FAT or FAT32 (VFAT) partitions, so it can share existing data partitions with the Windows 9x operating systems. It also can read NT File System (NTFS) or high-performance file system (HPFS) partitions, so it has limited (read-only) access to native Windows NT and OS/2 partitions. Work is currently underway to provide read/write access to NTFS partitions, but not quite ready for prime time. If you need infrequent access to one or more Windows-based programs, then a multiboot system may be your best, or at least easiest, option.
Remote (Sacrificial) PC with VNC
Occasionally, I dedicate one communal PC to running Windows (and the gotta-have programs) and then accessing it remotely from a Linux X-Windows session. Through the magic of a project called Virtual Network Computing (VNC), you can do thatfor free. The scope, performance, and completeness of the software available through this project blows my hair back, and it does so at a rock-bottom price (free).
The package comes in two parts: the VNC server, which gets loaded on the PC to be remotely controlled, and the VNC client, which gets loaded on any machine that will remotely control the server. So far, there are two servers writtenone for Windows and one for various UNIX versions and UNIX clones, such as Linux. On Windows, the server can be run as a service, to the extent that you can log onto the Windows box remotely. If the server is running Windows NT, you can even lock and unlock it by sending it the Ctrl- Alt-Delete key combination. And yes, access to the VNC server is password-protected, and the whole session can be directed through a secure shell for encryption in transit across the network.
The VNC client, which is referred to as the VNC viewer, is written in Java. Just about any machine with a Java Virtual Machine (JVM) will be capable of connecting to a server, either directly through the client program or via a Java applet embedded in an HTML page. Believe it or not, theres even a VNC client available for 3Coms Palm series of personal digital assistants (PDAs).
Unlike Terminal Server, VNC does not make your Windows box a multiuser machine, so there is only one connection available at a time. But other than that limitation, this is a truly handy program with many uses, such as allowing you to control many computers with one. In addition, any client can control any server, regardless of the operating systems on each. So a Windows box can control another Windows box, and so on.
Virtual Networking Computers is a project of AT&T Laboratories Cambridge. For further information, visit the VNC home page at www.uk.research.att. com/vnc.
The DOS Penalty Box (DOSEMU)
Admit it. Somewhere in your software library you have a DOS-based program that you find handy and that youd still like to run. You can do that if youre running Windows. And you can do it if youre running Linux. The program youll need is titled DOSEMU, which is short for DOS Emulator. Its included in almost all distributions of Linux. The phrase DOS emulator is somewhat of a misnomer because its not DOS but the hardware that is emulated. DOSEMU provides a virtual machine in which you can run most recent versions of DOS. Basically, you create a bootable floppy diskette and use it to create a DOS drive image that will be used by DOSEMU. There are some configuration options that you can set to make available the mouse, serial and parallel ports, and even the Linux file system. Ive had no problems using DOSEMU to run Quicken for DOS Version 8. I can even connect to CheckFree (via modem) from within Quicken without trouble.
If youre really adventurous, you can run some Windows 3.1 programs using DOSEMU. To accomplish that, youll need to run the version of Windows that comes with OS/2the one that made OS/2 a better Windows than Windowsbecause the patches that IBM made to allow it to run as a client of OS/2 enable it to run under DOSEMU.
DOSEMU has the advantage of being rather straightforward to set up, and it is my choice for the one or two DOS programs I still run. Youll need a copy of DOS to use it. If you are one of the few individuals who doesnt have at least one copy of DOS in your archives (indicating your age to be under 10), you can substitute it with FreeDOS. For further information on DOSEMU, point your browser to www.dosemu.org. Links to FreeDOS are available at the same URL.
Getting Drunk on Wine
A more ambitious project to allow Linux boxes to run DOS and Windows programs is called Wine, which presumably is short for Windows emulator. But Wine isnt an emulator. Its a program loader that executes Windows binaries. Its also a set of libraries that implements Windows APIs using UNIX and X11 equivalents.
To accomplish this magic, Wine creates an environment into which it loads the Windows program and any Dynamic Link Libraries (DLL) imported by it. The code within the program is then executed directly by the CPU. Wines only involvement, then, is to emulate any Win32 APIs that the Windows program may call.
Wine has been designed to emulate the complete Win32 API, so it does not require any form of Windows to operate. Unfortunately, the package is not yet complete, and many APIs have been implemented only as stub code, so nothing actually happens when they are called. If you happen to have set up your computer as a dual-boot system in which one of the partitions contains Windows, you can mount that partition and make it available to Wine, which then will use native DLLs to fill in some of the gaps. DLLs provided by software vendors can be used in either configuration.
Complete and accurate documentation about the Windows API is almost as scarce as snowfall in the Amazon. Available documentation can charitably be called incomplete, so what the Wine developers have ascertained has been done through reverse engineering and experimentation. The downside is that, anytime Microsoft desires, it can change some of the APIs, thus thwarting developers. This is the predicament in which IBM found itself with OS/2. IBM had the source for Windows 3.1 and did a splendid job of fixing the bugs embedded in it. The result was an operating system that could run Windows 3.1 programs quite well. Once Microsoft released the Win32 API, which IBM didnt have the source to, the capability of OS/2 to run Windows programs started to deteriorate. IBM had a tough time keeping up with the adjustments that Microsoft frequently introduced.
The upside to reverse engineering is that no Microsoft code is included in the package. This keeps the project unencumbered with copyright issues. And, as the Wine home page (www.winehq.com) mentions, reverse engineering ensures bug for bug compatibility.
Wine is a work in progress, like so many open source projects, and the documentation states that it is alpha software and shouldnt be used in a production environment. That may be true, but consider that, besides running Windows software, the Wine Win32 API library can be used to port existing Windows code to Linux. Corel (www.corel.com) has already used a version of Wine to port WordPerfect Office 2000 to Linux. The port appears to have been successful, so that should give you an idea of the codes maturity level.
If you have even the slightest interest in running Windows programs under Linux, you need to check out the Wine home page, where youll find the programs specifics. There is also a database of applications that already have been tested under Wine, including an important one to many users in corporate Americathe Lotus Notes client for Windows Version 4.6.
Keeping Windows in Jail with VMware
Up to now, all of the Windows-from-Linux solutions Ive discussed have been free. Thats a price we all like to pay. Actually, you are investing what real estate people call sweat equity. The product may be free, but you have to put your time in to get things installed and working properly. If you would rather invest money than invest time, then commercial software is in order. And the ultimate commercial solution has to be VMware.
If you are familiar with SSP running as a guest operating system of OS/400, then you already know VMwares function. VMware creates one or more virtual machines that run in an X-Windows session. When you need one of your Windows programs, you simply start a VMware session, click the power on button, and the guest operating system boots up within this virtual environment. Operating systems that can be a guest of VMware include DOS, Windows 9x, Windows NT, Windows 2000, and various flavors of Linux and UNIX. If youd like to try Linux and you currently run Windows NT or Windows 2000, you can acquire a version of VMware that runs on one of these operating systems. You can then load Linux in one of these virtual systems. Figure 1 shows my GNU Network Object Model Environment (GNOME) desktop with one window running Windows NT 4.0.
Setup of VMware couldnt be easier. For my Red Hat system, I acquired the Red Hat Package Manager (RPM) file for VMware and installed it with a simple command. I then ran the configuration script and answered a short series of questions that configured VMware for my system. Next, I started a VMware session and was immediately introduced to the set up wizard, which, through a few more questions, determined my desires for network access, disk configuration and capacity for the virtual machine, and a few other small details. The last step was to insert my Windows NT CD and click the power on button. The virtual machine booted exactly as a personal computer would, complete with a memory test. The NT CD then booted, and installation proceeded just as though VMware werent even involved.
Although I found the installation and execution to be flawless, there are a couple of caveats I need to mention about VMware. The technology that VMware represents is quite remarkable, but its only practical if you have the horsepower to run it. Linux is well known for its modest hardware requirements. Windows is known for the opposite. So if you plan on running Windows using VMware, ensure that you have a machine up to the task of running Windows all by itself. Ive read different comments indicating that the guest operating system runs at approximately 80 percent of the speed that it achieves natively. My testing confirms this. So a little overkill in host system resources will go a long way to making the experience pleasant. Also, VMware is not free and, indeed, may be considered a bit pricey depending on your budget. The company does have several pricing schemes, including a student license, so costs will vary. You can try it before you buy it and draw your own conclusions. For further information or to download the trial product, visit www.vmware.com.
Windows Optional
Ive demonstrated a number of ways in which you can continue to use your Windows software as you migrate your desktop to Linux. As time goes on, the need to do this will diminish as more vendors jump on the Linux bandwagon. Its even rumored that, internally, Microsoft has a group porting its productivity suite to Linux, although Ill believe that when I see it. Meanwhile, until your favorite Windows program is ported, you do have a number of options available. Which one you choose depends upon the fullness of your wallet and the depth of your patience.
REFERENCES AND RELATED MATERIALS
AT&T Virtual Network Computing Web site: www.uk.research.att.com/vnc
DOSEMU Main Page Web site: www.dosemu.org
VMware Web site: www.vmware.com
Wine Development HQ Web site: www.winehq.com
Figure 1: You can run Windows NT in a VMware virtual machine.
LATEST COMMENTS
MC Press Online