DOSEMU

DOSEMU, alternatively rendered dosemu, is a compatibility layer software package that enables MS-DOS systems, DOS clones such as FreeDOS, and DOS software to run under Linux on x86-based PCs (IBM PC compatible computers).

It uses a combination of hardware virtualization features and strategic emulation. It is thus able to achieve nearly native speed for 8086-compatible DOS operating systems and applications on x86 compatible processors, and for DPMI applications on x86 compatible processors as well as on x86-64 processors (Virtual 8086 mode is not available in x86-64 long mode, so DOSEMU includes an 8086 processor emulator for use with real-mode applications.).

Currently it is only available for x86 and x86-64 Linux systems.

DOSEMU is an option for people who need or want to continue to use legacy DOS software, in some cases virtualisation is good enough to drive external hardware such as EPROM programmers connected to the parallel port. According to 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 or DR-DOS in a DOS box. The DOS box, relying on a combination of hardware and software, has these capabilities:

  • Virtualize all input/output and processor control instructions
  • Supports the word size and addressing modes of the iAPX86 processor family's "real mode", while still running within the full protected mode environment
  • Trap all DOS and BIOS system calls and emulate such calls as are necessary for proper operation and good performance
  • Simulate a hardware environment over which DOS programs are accustomed to having control.
  • Provide DOS services through native Linux services; for example, dosemu can provide a virtual hard disk drive which is actually a Linux directory hierarchy.
  • Packet driver API.