<glossary>
<title>Glossary</title>
<!--
EXAMPLE:
<glossdiv>
<title>test</title>
<glossentry sortas="rme">
<glossterm id="bad_mistake">Very Stupid Mistake</glossterm>
<glosssee>things_to_avoid</glosssee>
<acronym>VSM</acronym>
<abbrev>Doh!</abbrev>
<glossseealso otherterm="accident">
<glossdef>
<para>Something you should try to avoid at all costs.</para>
</glossdef>
</glossentry>
</glossdiv>
-->
<glossdiv>
<title></title>
<glossentry>
  <glossterm>Binary</glossterm>
  <glossdef>
  <para>
  A file which is in machine executable, compiled form: hex data (as opposed to a source code file).
  </para>
  </glossdef>
</glossentry>
<glossentry>
  <glossterm>CVS</glossterm>
  <glossdef>
  <para>
    Concurrent Versions System, a software package to manage software development done by several people. See the CVS chapter in the Wine Developers Guide for detailed usage information.
  </para>
  </glossdef>
</glossentry>
<glossentry>
  <glossterm>Distribution</glossterm>
  <glossdef>
  <para>
    A distribution is usually the way in which some "vendor" ships operating system CDs (usually mentioned in the context of Linux).
    A Linux environment can be shipped in lots of different configurations: e.g. distributions could be built to be suitable for games, scientific
    applications, server operation, desktop systems, etc.
  </para>
  </glossdef>
</glossentry>
<glossentry>
  <glossterm>DLL</glossterm>
  <glossdef>
  <para>
  A DLL (Dynamic Link Library) is a file that can be loaded and executed by programs dynamically. Basically it's an external code repository for programs.
  Since usually several different programs reuse the same DLL instead of having that code in their own file, this dramatically reduces required storage space.
  A synonym for a DLL would be library.
  </para>
  </glossdef>
</glossentry>
<glossentry>
  <glossterm>Editor</glossterm>
  <glossdef>
  <para>
    An editor is usually a program to create or modify text files.
    There are various graphical and text mode editors available on
    Linux.
  </para>
  <para>
    Examples of graphical editors are: nedit, gedit, kedit, xemacs,
    gxedit.
  </para>
  <para>
    Examples of text mode editors are: joe, ae, emacs, vim, vi.
    In a <glossterm>terminal</glossterm>, simply run them via:
  </para>
  <screen>
  <prompt>$ </><userinput><replaceable>editorname</replaceable>
  <replaceable>filename</replaceable></>
  </screen>
  </glossdef>
</glossentry>
<glossentry>
  <glossterm>Environment variable</glossterm>
  <glossdef>
  <para>
    Environment variables are text definitions used in a <glossterm>Shell</glossterm> to store important system settings.
    In a <command>bash</command> shell (the most commonly used one in Linux),
    you can view all environment variables by executing:
  </para>
  <screen>
  <userinput>set</userinput>
  </screen>
  <para>
    If you want to change an environment variable, you could run:
  </para>
  <screen>
  <userinput>export <replaceable>MYVARIABLE</>=<replaceable>mycontent</></userinput>
  </screen>
  <para>
    For deleting an environment variable, use:
  </para>
  <screen>
  <userinput>unset <replaceable>MYVARIABLE</></userinput>
  </screen>
  </glossdef>
</glossentry>
<glossentry>
  <glossterm>Package</glossterm>
  <glossdef>
  <para>
  A package is a compressed file in a
  <glossterm>distribution</glossterm> specific format. It contains the
  files for a particular program you want to install. Packages are
  usually installed via the <command>dpkg</command> or
  <command>rpm</command> package managers.
  </para>
  </glossdef>
</glossentry>
<glossentry>
  <glossterm>root</glossterm>
  <glossdef>
  <para>
  root is the account name of the system administrator.
  In order to run programs as root, simply open a
  <glossterm>Terminal</glossterm> window, then run:
  </para>
  <screen>
  <prompt>$ </><userinput>su -</>
  </screen>
  <para>
  This will prompt you for the password of the root user of your system,
  and after that you will be able to system administration tasks
  that require special root privileges. The root account is indicated by the
  </para>
  <screen>
  <prompt># </>
  </screen>
  <para>
  prompt, whereas '$' indicates a normal user account.
  </para>
  </glossdef>
</glossentry>
<glossentry>
  <glossterm>Shell</glossterm>
  <glossdef>
  <para>
    A shell is a tool to enable users to interact with the
    system. Usually shells are text based and command line oriented.
    Examples of popular shells include <command>bash</command>,
    <command>tcsh</command> and <command>ksh</command>. Wine assumes
    that for Wine installation tasks, you use <command>bash</command>,
    since this is the most popular shell on Linux.
    Shells are usually run in a <glossterm>Terminal</glossterm> window.
  </para>
  <!-- <glossseealso otherterm="Terminal"> -->
  </glossdef>
</glossentry>
<glossentry>
  <glossterm>Source code</glossterm>
  <glossdef>
  <para>
  Source code is the code that a program consists of before the program
  is being compiled, i.e. it's the original building instructions of a
  program that tell a compiler what the program should look like once
  it's been compiled to a <glossterm>Binary</glossterm>.
  </para>
  </glossdef>
</glossentry>
<glossentry>
  <glossterm>Terminal</glossterm>
  <glossdef>
  <para>
  A terminal window is usually a graphical window that one uses to
  execute a <command>Shell</command>. If Wine asks you to open a
  terminal, then you usually need to click on an icon on your desktop
  that shows a big black window (or, in other cases, an icon displaying a
  maritime shell).
  Wine assumes you're using the <command>bash</command> shell in a
  terminal window, so if your terminal happens to use a different
  shell program, simply type:
  </para>
  <screen>
  <userinput>bash</>
  </screen>
  <para>
  in the terminal window.
  </para>
  </glossdef>
</glossentry>
</glossdiv>
</glossary>
