<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.
  </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>
</glossary>
