  <chapter id="introduction">
    <title>Introduction</title>

    <sect1 id="overview">
      <title>Overview / About</title>
      
      <sect2>
        <title>Purpose of this document and intended audience</title>
        <para>
          This document, called the Wine User Guide, is both an easy
          installation guide and an extensive reference guide.  This guide
          is for both the new Wine user and the experienced Wine user,
          offering full step-by-step installation and configuration
          instructions, as well as featuring extensive reference material
          by documenting all configuration features and support areas.
        </para>
      </sect2>

      <sect2>
        <title>Further questions and comments</title>
        <para>
          If, after examining this guide, the FAQ, and other relevant
          documentation there's still something you can't figure out,
          we'd love to hear from you.  The <ulink
          url="http://www.winehq.org/site/forums">mailing lists</ulink>
          section contains several mailing lists and an IRC channel, all
          of which are great places to seek help and offer suggestions.
          If you're particularly savvy, and believe that something can be
          explained better, you can file a <ulink
          url="http://bugs.winehq.org/">bug report</ulink> or <ulink
          url="http://www.winehq.org/site/sending_patches">post a
          patch</ulink> on Wine's documentation itself.
        </para>
      </sect2>

      <sect2>
        <title>Content overview / Steps to take</title>
        <para>
          In order to be able to use Wine, you must first have a working
          installation.  This guide will help you to move your system
          from an empty, Wineless void to one boasting a fresh, up to
          date Wine install.  The first step, <link
          linkend="getting-wine">Getting Wine</link>, illustrates the
          various methods of getting Wine's files onto your computer.
          The second step, <link linkend="installing">Installing
          Wine</link>, details the various install processes available to
          you.  The third step, <link linkend="config-wine-main">Configuring
          Wine</link>, shows how to customize a Wine installation depending
          on your individual needs.  The final step, <link
          linkend="running">Running Wine</link>, covers the specific
          steps you can take to get a particular application to run
          better under Wine, and provides useful links in case you need
          further help.
        </para>
      </sect2>

    </sect1>

    <sect1 id="what-is-wine">
      <title>What is Wine?</title>

      <sect2>
        <title>Windows and Linux</title>
        <para>
          Different software programs are designed for different
          operating systems, and most won't work on systems that they
          weren't designed for.  Windows programs, for example, won't run
          in Linux because they contain instructions that the system can't
          understand until they're translated by the Windows environment.
          Linux programs, likewise, won't run under the Windows operating
          system because Windows is unable to interpret all of their
          instructions.
        </para>
        <para>
          This situation presents a fundamental problem for anyone who
          wants to run software for both Windows and Linux.  A common
          solution to this problem is to install both operating systems on
          the same computer, known as "dual booting."  When a Windows
          program is needed, the user boots the machine into Windows to
          run it; when a Linux program is then needed, the user then
          reboots the machine into Linux.  This option presents great
          difficulty: not only must the user endure the frustration of
          frequent rebooting, but programs for both platforms can't be
          run simultaneously.  Having Windows on a system also creates
          an added burden: the software is expensive, requires a seperate
          disk partition, and is unable to read most filesystem formats,
          making the sharing of data between operating systems difficult.
        </para>
      </sect2>

      <sect2>
        <title>What is Wine, and how can it help me?</title>
        <para>
          Wine makes it possible to run Windows programs alongside any
          Unix-like operating system, particularly Linux.  At its heart,
          wine is an implementation of the Windows Application
          Programing Interface (API) library, acting as a bridge between
          the Windows program and Linux.  Think of Wine as a compatibility
          layer, when a Windows program tries to preform a function that
          Linux doesn't normally understand, Wine will translate that
          program's instruction into one supported by the system.  For
          example, if a program asks the system to create a Windows
          pushbutton or text-edit field, Wine will convert that
          instruction into its Linux equivalent in the form of a command
          to the window manager using the standard X11 protocol.
        </para>
        <para>
          If you have access to the Windows program's source code, wine
          can also be used to recompile a program into a format that Linux
          can understand more easily.  Wine is still needed to launch the
          program in its recompiled form, however there are many advantages
          to compiling a Windows program natively within linux.  For more
          information, see the Winelib User Guide.
        </para>
      </sect2>

      <sect2 id="wine-features">
        <title>Wine features</title>

        <para>
          Throughout the course of its development, Wine has continually
          grown in the features it carries and the programs it can run.
          A partial list of these features follows: 
        </para>
        <para>
          <itemizedlist>
            <listitem>
              <para>
                Support for running Win32 (Win 95/98, NT/2000/XP), Win16
                (Win 3.1) and DOS programs
              </para>
            </listitem>
            <listitem>
              <para>
                Optional use of external vendor DLL files (such as those
                included with Windows)
              </para>
            </listitem>
            <listitem>
              <para>
                X11-based graphics display, allowing remote display to any
                X terminal, as well as a text mode console
              </para>
            </listitem>
            <listitem>
              <para>
                Desktop-in-a-box or mixable windows 
              </para>
            </listitem>
            <listitem>
              <para>
                DirectX support for games
              </para>
            </listitem>
            <listitem>
              <para>
                Good support for various sound drivers including OSS and ALSA
              </para>
            </listitem>
            <listitem>
              <para>
                Support for alternative input devices 
              </para>
            </listitem>
            <listitem>
              <para>
                Printing: PostScript interface driver (psdrv) to standard
                Unix PostScript print services 
              </para>
            </listitem>
            <listitem>
              <para>
                Modem, serial device support
              </para>
            </listitem>
            <listitem>
              <para>
                Winsock TCP/IP networking support
              </para>
            </listitem>
            <listitem>
              <para>
                ASPI interface (SCSI) support for scanners, CD writers,
                and other devices
              </para>
            </listitem>
            <listitem>
              <para>
                Advanced unicode and foreign language support
              </para>
            </listitem>
            <listitem>
              <para>
                Full-featured Wine debugger and configurable trace
                logging messages for easier troubleshooting
              </para>
            </listitem>
          </itemizedlist>
        </para>
      </sect2>
    </sect1>

    <sect1 id="wine-versions">
      <title>Versions of Wine</title>
        <sect2>
          <title>Wine from Wine HQ</title>

          <para>
             Wine is an open source project, and there are accordingly
             many different versions of Wine for you to choose from.  The
             standard version of Wine comes in intermittant releases
             (roughly every 90 days), and can be downloaded over the
             internet in both prepackaged binary form and ready to compile
             source code form.  Alternatively, you can install a prerelease
             version of Wine by using the latest available source code on
             the CVS server.  See the next chapter, Getting Wine (link:
             getting wine), for further details.
          </para>
        </sect2>
        <sect2>
          <title>Other Versions of Wine</title>
          <para>
            There are a number of programs that are derived from the
            standard Wine codebase in some way or another.  Some of these
            are commercial products from companies that actively contribute
            to the Wine project.
          </para>
          <para>
            These products try to stand out or distinguish themselves
            from the standard version of Wine by offering greater
            compatibility, easier configuration, and commercial support.
            If you require such things, it is a good idea to consider
            purchasing these products.
          </para>
      <table><title>Various Wine offerings</title>
        <tgroup cols=3 align="left">
          <thead>
            <row>
              <entry>Product</entry>
              <entry>Description</entry>
              <entry>Distribution Form</entry>
            </row>
          </thead>
          <tbody>
            <row>
              <entry>
                <ulink
                url="http://www.codeweavers.com/products/office">CodeWeavers CrossOver Office</ulink>
              </entry>
              <entry>
                CrossOver Office allows you to install your favorite
                Windows productivity applications in Linux, without
                needing a Microsoft Operating System license. CrossOver
                includes an easy to use, single click interface, which
                makes installing a Windows application simple and fast.
              </entry>
              <entry>
                Commercial; 30-day fully-functional demo available.
              </entry>
            </row>
            <row>
              <entry>
                <ulink
                url="http://www.codeweavers.com/products/cxofficeserver">CodeWeavers CrossOver Office Server Edition</ulink>
              </entry>
              <entry>
                CrossOver Office Server Edition allows you to run your
                favorite Windows productivity applications in a
                distributed thin-client environment under Linux, without
                needing Microsoft Operating System licenses for each
                client machine. CrossOver OfficeServer Edition allows you
                to satisfy the needs of literally hundreds of concurrent
                users, all from a single server.
              </entry>
              <entry>
                Commercial
              </entry>
            </row>
            <row>
              <entry>
                <ulink url="http://www.transgaming.com">TransGaming Technologies Cedega</ulink>
              </entry>
              <entry>
                Cedega, formerly known as WineX, is a Wine version derived
                from the old BSD licensed Wine tree.  It is designed
                specifically to function with games, and so development
                is centered around ensuring compatibility with technologies
                like Direct3D, DirectX, and various methods of copy protection.
              </entry>
              <entry>
                Commercial; free CVS download of reduced version (no copy
                protection support etc.)
              </entry>
            </row>
            <row>
              <entry>
                <ulink
                url="http://sourceforge.net/projects/rewind">ReWind</ulink>
              </entry>
              <entry>
                ReWind is a Wine version derived from the old BSD licensed
                Wine tree.  Due to its BSD license it can't incorporate
                most recent Wine patches, however its code can be used by
                any software project without restriction.  Although code
                is occasionally contributed to ReWind alongside the main
                Wine project, there has never been an official release of
                ReWind.
              </entry>
              <entry>
                Free, Open Source: BSD license 
              </entry>
            </row>
          </tbody>
        </tgroup>
      </table>
    </sect1>

    <sect1 id="alternatives">
      <title>Alternatives to Wine you might want to consider</title>
      <para>
          There are many ways to run software other than through Wine.  If
          you are considering using Wine to run an application you might
          want to think about the viability of these approaches if you
          encounter difficulty.
      </para>

      <sect2>
        <title>Native Applications</title>
        <para>
          Instead of running a particular Windows application with Wine,
          one frequently viable alternative is to simply run a different
          application.  Many Windows applications, particularly more
          commonly used ones such as media players, instant messengers,
          and filesharing programs have very good open source equivalents.
          Furthermore, a sizable number of Windows programs have been
          ported to Linux directly, eliminating the need for Wine (or
          Windows) entirely.
        </para>
      </sect2>
      <sect2>
        <title>Another Operating System</title>
        <para>
          Probably the most obvious method of getting a Windows
          application to run is to simply run it on Windows.  However,
          security, license cost, backward-compatibility, and machine
          efficiency issues can make this a difficult proposition, which
          is why Wine is so useful in the first place.
        </para>
        <para>
          Another alternative is to use <ulink
          url="http://www.reactos.com">ReactOS</ulink>, which is a fully
          open source alternative to Windows.  ReactOS shares code
          heavily with the Wine project, but rather than running Windows
          applications on top of Linux they are instead run on top of the
          ReactOS kernel.  ReactOS also offers compatibility with Windows
          driver files, allowing the use of hardware without functional
          Linux drivers.
        </para>
      </sect2>
      <sect2>
        <title>Virtual Operating System</title>
        <para>
          Rather than installing an entirely new operating system on your
          machine, you can instead run a virtual machine at the software
          level and install a different operating system on it.  Thus, you
          could run a Linux system and at the same time run Windows along
          with your application in a virtual machine simultaneously on the
          same hardware.  Virtual machines allow you to install and run
          not only different versions of Windows on the same hardware, but
          also other operating systems, including ReactOS.
        </para>
        <para>
          There are several different virtual machine offerings out there,
          and some are also able to emulate x86 hardware on different
          platforms.  The open source <ulink
          url="http://bochs.sourceforge.net/">Bochs</ulink> and <ulink
          url="http://fabrice.bellard.free.fr/qemu/">QEMU</ulink> can run
          both Windows and ReactOS virtually.  Other, commercial virtual
          machine offerings include <ulink
          url="http://www.vmware.com/">VMware</ulink> and Microsoft's
          <ulink url="http://www.microsoft.com/windowsxp/virtualpc/">VirtualPC</ulink>.
        </para>
        <para>
          There are significant drawbacks to using virtual machines,
          however.  Unlike Wine, such programs <emphasis>are</emphasis>
          emulators, so there is an inevitable speed decrease which can
          be quite substantial.  Furthermore, running an application
          inside a virtual machine prevents fully integrating the
          application within the current environment.  You won't, for
          example, be able to have windows system tray icons or program
          shortcuts sitting alongside your desktop Linux ones, since
          instead the Windows applications must reside completely within
          the virtual machine.
        </para>
      </sect2>
    </sect1>
  </chapter>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-parent-document:("wine-user.sgml" "set" "book" "chapter" "")
End:
-->
