DOSEMU stands for DOS Emulation, and allows you to run DOS and many DOS programs, including many DPMI applications such as DOOM and Windows 3.1, under Linux.
What is dosemu, anyway?
To quote the manual, “dosemu” is a user-level program which uses certain special features of the Linux kernel and the 80386 processor to run MS-DOS/FreeDOS/DR-DOS in what we in the biz call a `DOS box.’ The DOS box, a combination of hardware and software trickery, has these capabilities:
the ability to virtualize all input/output and processor control instructions
the ability to support the word size and addressing modes of the iAPX86 processor family’s “real mode,” while still running within the full protected mode environment
the ability to trap all DOS and BIOS system calls and emulate such calls as are necessary for proper operation and good performance
the ability to simulate a hardware environment over which DOS programs are accustomed to having control.
the ability to provide DOS services through native Linux services; for example, dosemu can provide a virtual hard disk drive which is actually a Linux directory hierarchy.
The DOSEMU/FreeDos ready-to-use binary distribution.
An easy way to get DOSEMU working on your machine is to use
the ready-to-use DOSEMU binary distribution. This one comes in 2 packages
A tarball containing a collection of suitable FreeDos binaries,
eventually patched to fit DOSEMU needs, together with
some GNU tools you may find useful.
A tarball containing the recent DOSEMU binaries together
with a user local configuration setup.
This installation fits into any user HOME directory and can be used and installed without root permissions. You have to unpack _both_ tarballs (as a normal user, NOT as root) into the same directory (regardless what ever) within your HOME, such as:
$ mkdir mydos
$ cd mydos
$ tar -zxf dosemu-freedos-bin.tgz
$ tar -zxf dosemu–bin.tgz
$ cd dosemu
now look where you are and what was installed:
README.bindist bin dosemu xdosemu
Xfonts conf freedos
After you get the install right, you can execute DOSEMU with
$ cd ~mydos/dosemu # (your CWD _must_ be here)
If you have never used DOSEMU before, DOSEMU will boot, and present you with a welcome screen and a command prompt.
If for some reason it does not start, look at ~/.dosemu/boot.log for details.
Remember, that you can’t use -C _within_ DOS to exit _from_ DOS. For this you need to execute ‘exitemu’ or, when using the ‘DOS in a BOX’.
Your DOS drives are set up as follows:
A: floppy drive (if it exists)
C: points to the Linux directory ~/.dosemu/drive_c.
It contains the files config.sys, autoexec.bat and a directory for temporary files. It is available for general DOS use.
D: points to your Linux home directory
E: points to your CD-ROM drive, if it is mounted at /media/cdrom
Z: points to the read-only DOSEMU and FreeDOS commands directory
It actually points to ~/mydos/dosemu/drive_z; it appears read-only inside DOSEMU.
Enter HELP for more information on DOS and DOSEMU commands.
Other useful keys are:
[Ctrl][Alt][F] toggle fullscreen mode in X
[Ctrl][Alt][K] grab the keyboard in X
[Ctrl][Alt][Home] grab the mouse in X
[Ctrl][^] use special keys on terminals (dosemu -t)
For DOS applications which only read/write from/to STDIN/STDOUT, you may prefer to invoke DOSEMU such as
$ ./dosemu -dumb
this has the advantage that (A) the output of the DOS application stacks up in your xterm scroll buffer and (B) you can redirect it to a file such as
$ ./dosemu -dumb dir > listing
Note that that editing is often restricted to BACKSPACE’ing.
The sources of all the included binaries can be found in the
Optional configuration is possible by editing the file conf/dosemurc and copying it to ~/.dosemurc. Advanced configuration can be accomplished using global.conf in combination with the -F option.
Note that, unlike the situation in installations from source, distributors, and the RPM, /etc/dosemu.conf and /etc/dosemu/dosemu.conf are NOT used in this setup, unless you make dosemu.bin suid-root, use sudo or replace IGNORE_DOSEMU_CONF=”-n” by IGNORE_DOSEMU_CONF=”” in the dosemu script.
The file conf/dosemu.conf (as opposed to DOSEMU 1.0.2.x) is also ignored.
All software herein can be distributed and used freely, most is GPL, other not GPL licenses can be found in the doc/* directories.
— Bart Oldeman