<glossary id="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>
