Running Windows Applications NOW
There are three methods of obtaining use of Microsoft (MS) Windows applications under Linux. They are:
Wine, available from ftp://tsx-11.mit.edu:/pub/linux/ALPHA/Wine/development/DOSEMU, available from ftp://tsx-11.mit.edu:/pub/linux/ALPHA/dosemu/DESQview/X (DV/X), available from QuarterDeck software
Wine is rather well-known, as is the excellent DOSEMU. While researching these methods, however, I discovered that there exists a wide misunderstanding of their current capabilities and status among Usenet readers. I certainly support the efforts of the Wine and DOSEMU crews to bring MS Windows applications to Linux, but the impression that either is “ready for prime time” only impedes their efforts. Annoyed users complain that the products are, as their developers themselves point out, very incomplete.
For instance, the file dosemu-0.60.2/dos/README.Windows contains this warning under the heading Windows 3.1 Protected Mode: WARNING!!! WARNING!!! WARNING!!! WARNING!!! WARNING!!! Danger Will Robinson!!! This is not yet fully supported and there are many known bugs! Large programs will almost certainly NOT WORK!!! BE PREPARED FOR SYSTEM CRASHES IF YOU TRY THIS!!!
The document goes on to list some of the problems; in short, it's not yet ready for serious use, such as most work environments. Take a moment to read that README completely before experimenting. I found it to be accurate.
Wine has a similar status: the release notes proclaim that Wine is currently for developers only, and you should not yet expect your applications to work. Thus, a Linux user is left with two choices: reboot the system with DOS or use the slower DV/X. Linux users isolated from a network tend to think that rebooting with DOS is Okay, but those needing network services or the power of Linux on a regular basis should consider using DV/X.
DV/X is probably unknown to most LJ readers, and the thrust of this article is to introduce you to it. The three possibilities above are listed in order of speed—Wine will certainly be the fastest when it'ss finished. They are listed in reverse order of “success”—DV/X is capable of running nearly every large MS Windows application now. Because I am willing to pay a speed penalty in exchange for access to other Linux services while running MS Word or MS Excel, I have been happily utilizing DV/X for months. I look forward to the day that Wine (or DOSEMU) allows me to run MS Word without the speed penalty.
DV/X is QuarterDeck's solution to bringing DOS to network computing (see ftp.qdeck.com:/pub or www.qdeck.com). QuarterDecki's DOS software line includes the well-known QEMM memory manager and DESQview, the best DOS multi-tasker. DESQview was expanded into a network program several years ago as DESQview/X. This software product brought Unix programs to DOS via an X Window interface and provided DOS programs to networked Unix hosts with X. One of the most interesting features of DV/X is its ability to provide MS Windows applications to networked X boxes. The software had some delays coming to market, probably due to the difficulty of creating a program to translate MS Windows and X. It is now available as version 2.0 and is much improved.
To run MS Windows applications such as Word 6.0, Excel 5.0, and PowerPoint with DV/X, you need a dedicated DOS computer in addition to your Linux box. I used an old system, a 386DX with 12 Megabytes of RAM, at home and a spare 486DX2 machine at work. A network connection is necessary; I had pairs of SMC Ultra and 3COM 3C503 Ethernet cards. The DOS system doesn't need a fast or powerful video card, as the X display on the Linux box will be where you control MS Windows. The DOS box needs at least 8 MB of RAM, since DV/X can easily use up 5 MB and MS Windows needs several more. QuarterDeck supplies networking software with DV/X as part of its base cost, but it'ss not TCP/IP-based. A Novell TCP/IP stack is available for an extra fee and has been offered several times at no cost as a purchase inducement.
Get your Linux system up with networking active (see the NET-2 HOWTO document). Install DV/X on the DOS box after installing the TCP/IP stack (you will need an ODI driver on the DOS side for a TCP/IP stack). Just follow the prompts (and DV/X manuals) and adjust per your network. On an isolated network, you may wish to allow access without passwords for easier use. Once Linux has networking running and DV/X is installed, run some ping checks to be sure that communications are working correctly. I get 1 to 2 millisecond ping times on either a dedicated two computer network or a crowded 10-BaseT hub. Try some large FTP transfers to accurately test the network; isolated networks should run hundreds of kilobytes per second when properly configured.
Once you think your “network computer” is ready, launch DV/X on the DOS box and bring up an Xterm on the Linux side. You will need a username besides root on the Linux side in order to simplify logins. Any username can have root's “power” by setting the UID and GID to 0—something that might be convenient for overriding protections during file transfers. Obviously, don't consider doing this if your network is connected in any way to the outside world. Also, if you do this, you are discarding all the file system and memory protections that protect you from damage caused by program bugs, viruses (none are documented to exist under Linux), and simple mistakes.
In the Linux Xterm, type:
$ xhost +dosboxname $ rsh dosboxname fileman
where dosboxname is the alias for the IP address for the DV/X DOS computer (you will need to have it in /etc/hosts on the Linux computer). After a few moments, you should get a new X-Window with the very useful DV/X File Manager. It's similar to the old Norton Commander, an interface whose look and feel has been duplicated countless times. With the DV/X File Manager, you can log into networked hosts, initiate multiple file transfers, or perform routine disk housekeeping tasks. If the File Manager doesn't work, take a look at whatever messages were displayed and check manuals, Usenet, friends, support lines, and maybe even the author...
Log into the Linux computer from the File Manager (under the Navigate radio button) as a user other than root. Work through the file system until you get to one of the directories in the font path for the X server (I used /usr/X386/lib/X11/fonts/misc). Note that File Manager doesn't show symbolic links, so you need the actual pathname. On the DV/X side, maneuver to the BDF subdirectory under the DVX directory. Copy all the font files over to the Linux side (unless you never want to run DOS remotely) with a binary transfer. Check that the file sizes come out identical on both sides of the File Manager dialog box. Once that's complete, you need to run mkfontdir in the Linux font directory you chose and restart the X server.
Now you can run remote DOS with:
$ rsh dosboxname dos
You might need to set up the xhost access list again. Without the transferred fonts, a remote DOS process might crash your X server. Now that you have these preliminary steps accomplished, you know that your “network computer” is working. Time for MS Windows. DV/X has a lot of interesting features, such as the Remote Program Launcher; spend some time exploring them.
Special Reports: DevOps
Have projects in development that need help? Have a great development operation in place that can ALWAYS be better? Regardless of where you are in your DevOps process, Linux Journal can help!
With deep focus on Collaborative Development, Continuous Testing and Release & Deployment, we offer here the DEFINITIVE DevOps for Dummies, a mobile Application Development Primer, advice & help from the experts, plus a host of other books, videos, podcasts and more. All free with a quick, one-time registration. Start browsing now...
- Hash Tables—Theory and Practice
- The Ubuntu Conspiracy
- A First Look at IBM's New Linux Servers
- Vigilante Malware
- Vagrant Simplified
- Disney's Linux Light Bulbs (Not a "Luxo Jr." Reboot)
- Science on Android
- System Status as SMS Text Messages
- Bluetooth Hacks
- Making a PHP Site on Linux Work with a Microsoft SQL Server Database