Run Windows Applications on Linux using Wine

If you wish to run a Windows application on your Linux or POSIX compatible operating system, then Wine might be your answer.

The Wine project was started way back in 1993 to support Windows 3.1 programs on Linux systems. However, it is still under testing stage and has not been released to the general public.

Some of Wine features are listed below:

Binary Compatibility

  • Wine is designed for POSIX compatible operatings systems (eg. Linux and FreeBSD)
  • Wine loads on Windows 9x/NT/2000/XP, Windows 3.x and DOS programs and libraries
  • “bug-for-bug” compatibility with Windows
  • Win32 compatible memory layout, exception handling, threads and processes

Graphics

  • Wine supports X11, TrueType (.ttf/.ttc) and Windows Bitmap (.fon) Fonts
  • X11-based graphics allows remote display to any X terminal
  • Support for OpenGL based games and applications have been added to Wine
  • Printing via PostScript driver or legacy native Win16 printer drivers
  • DirectX support for games (limited Direct3D support)
  • Desktop-in-a-box or mixable windows
  • Wine has enhanced Metafile (EMF) and Windows Metafile (WMF) driver
  • Windows MultiMedia (WinMM) layer support with builtin codecs

Allows Windows program to interface with:

  • Multi-lingual keyboards and CJK input method support via XIM
  • Modems, serial devices
  • Sound devices via ALSA, OSS, ARTS, JACK, and libaudio etc
  • Wine supports networks like TCP/IP and IPX
  • Windows Tablets via XInput (eg. Wacom)
  • ASPI Scanners

Wine API

  • Wine is designed for source and binary compatibility with Win32 code
  • Wine is compilable on a wide range of C compilers
  • Permits mixing of Win32 and POSIX code
  • Win32 API test suite to ensure compatibility
  • Wine permits mixing of ELF (.so) and PE (.dll/.exe) binaries in one address space
  • Win32 compatible header files
  • Automatically generated API documentation
  • Resource compiler
  • Message compiler
  • IDL compiler
  • Wine provides extensive Unicode support
  • Internationalization — Wine supports 16 languages
  • Built-in debugger and configurable trace messages
  • External memory checker support using Valgrind
  • Sample programs