WINE and Emulators

Running Windows and Macintosh Programs In Linux

Read Chapter 5, Accessing and Running Applications, Running Windows, DOS and Macintosh Applications, in the Red Hat Linux Bible.

Lots of software is available pre-compiled to run on Linux. Almost any UNIX-compatible program for which source code is available can be compiled, if packages aren’t already available. But what if you need to cross platforms?

  • DOS
  • Windows: older Win32
  • Windows: NT and later
  • Macintosh

 

DOS Emulators

Emulators “imitate” another environment. See http://rpmfind.net/ for an excellent resource for emulators (and a lot of other software). On that site, perform a search for these DOS-specific emulators:

  • dosemu
  • xdosemu

These packages are updated constantly; use the ones highest on the displayed lists. Keep in mind that you want the .i386 versions, not the .src versions (unless you want to compile them yourself). The dosemu package is more generally compatible; if you want to use xdosemu you’ll need to check your distro’s X library and glibc compiler for compatibility.

Download the .rpm package. Depending on system configuration, this file will arrive in your home directory or on your desktop if you’re running Gnome/KDE. The easiest way to perform this process is from the GUI; I’ll assume this is your working environment for this example.

Double-click the .rpm, and confirm all defaults as they’re offered.

When this process is complete (and it won’t give you much notice that it is), you can run:

whereis dosemu

If you installed as root, dosemu will be installed in /usr/bin/dosemu. Call it directly from that directory:

/usr/bin/dosemu

dosemu will be configured to run in /root/dosemu.

TAKE NOTE OF THE MESSAGE ABOUT SHUTTING DOWN DOSEMU:

YOU MUST COMMAND:

exitemu

TO LEAVE DOSEMU!

Now, let dosemu start. You can run:

dir

to see a listing of files in your “virtual” C: drive. Try:

edit config.sys

to see the familiar edit interface. Note that you have mouse support for the graphical menus.

Note that dosemu will often want access to your floppy drive. Normally only root and the floppy group can access it. Command:

chmod 666 /dev/fd0

to make it more widely available. Do be aware of the security considerations of doing this.

 

WINE (Wine Is Not an Emulator)

Be aware, this gets political: WINE truly is not an emulator. It is a Windows compatibility layer.

Go to http://winehq.org/ to learn more about WINE, particularly to check application compatibility. Follow the links to get pre-compiled packages for your distro.

Note that some packages are available in both i386 and i686 versions. Generally either will work for post-Pentium Pro-generation processors. See the WikiPedia entry for more discussion of i-numbering schemes.

You can get a commercial (and supported) version called WineX from Transgaming. If you’re specifically out to run Microsoft Office, you’ll need the commercial CrossOver Office package from CodeWeavers. But if your intent is to run games or mostly non-Microsoft applications for Windows, WINE by itself usually does the job.

You can install WINE from a Red Hat/Fedora GUI environment in the same way as dosemu: just double-click the .rpm and let it install.

Configuration files will be placed in /etc/wine/, and a pseudo-C: drive will be created in /usr/share/wine-c.

 

WINE Drive Mappings: Drive Letters to Linux Directories

You should know the default drive mappings WINE is going to use:

Name
Drive Letter
Linux Directory
Device
Floppy A: /mnt/floppy /dev/fd0
Hard Disk 1 C: /usr/share/wine-c
CD-ROM D: /mnt/cdrom /dev/cdrom
Temp Dir E: /tmp
Home F: /home/username ( $HOME )
File system root Z: /

 

A Demo Installation Under WINE

This example assumes you have a connection to obtain two files: either a shared partition on a dual-boot machine, or a Windows share you can reach via Samba (smbclient), a floppy disk, a web site containing these files – any method available to you.

1. Get mspaint.exe.

2. Copy it to your /bin directory.

3. Run WINE. Command:

wine /bin/mspaint.exe

4. Note the message you receive.

5. Copy the DLL WINE tells you that you need. You’ll need it to be in the same place on your pseudo-C: drive that it would be under Windows: the C:/windows/system folder. Under WINE, this is at:

/usr/share/wine-c/windows/system

6. Now try to run Paint again.

 

Other Emulators

There are two other emulation environments of which you should be aware.

The first is the mtools. Generally, these are DOS-like tools and commands that have the letter “m” added to the front. See Chapter 5 of the Red Hat Linux Bible for details. The important thing to know as you get started with mtools is that they operate as if your current working directory is the floppy drive (/def/fd0 or “A:”.) If you don’t have a floppy drive, or don’t have a disk in that drive, or your user doesn’t have permissions to access that drive, you’re in difficulty immediately. They’re worth exploring, but generally are useful only for dealing with a floppy disk you’re going to pass back and forth from Windows to Linux.

The second is ARDI. This is called an “executor” rather than an emulator, strictly speaking, because like WINE it is actually an application compatibility layer. NOTE that for most terminal-based UNIX software that’s compiled for Mac, you can get source code and compile that software for Linux. You’ll do the usual compilation dance (get used to it):

./config

make

make install

However, if you want to run Mac GUI apps, ARDI is your tool. See http://www.ardi.com/executor.php for extensive details, including lists of compatible applications.