aboutsummaryrefslogtreecommitdiff
path: root/doc/manual/introduction.xml
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2003-08-13 09:13:52 +0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2003-08-13 09:13:52 +0000
commitb4f88d0ec364f00196127ea29e8db5033368e23a (patch)
treefad418cdf09bd63cdc932b9b25531b75f55eaa29 /doc/manual/introduction.xml
parent469f1eba561403639e777721cacd59e0a6cdc39d (diff)
* Split the book.xml into several xml files.
Diffstat (limited to 'doc/manual/introduction.xml')
-rw-r--r--doc/manual/introduction.xml98
1 files changed, 98 insertions, 0 deletions
diff --git a/doc/manual/introduction.xml b/doc/manual/introduction.xml
new file mode 100644
index 000000000..77a5f917e
--- /dev/null
+++ b/doc/manual/introduction.xml
@@ -0,0 +1,98 @@
+<chapter>
+ <title>Introduction</title>
+
+ <sect1>
+ <title>The problem space</title>
+
+ <para>
+ Nix is a system for controlling the automatic creation and distribution
+ of data, such as computer programs and other software artifacts. This is
+ a very general problem, and there are many applications that fall under
+ this description.
+ </para>
+
+ <sect2>
+ <title>Build management</title>
+
+ <para>
+ Build management tools are used to perform <emphasis>software
+ builds</emphasis>, that is, the construction of derived products such
+ as executable programs from source code. A commonly used build tool is
+ Make, which is a standard tool on Unix systems. These tools have to
+ deal with several issues:
+ <itemizedlist>
+ <listitem>
+ <para>
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+
+ </sect2>
+
+ <sect2>
+ <title>Package management</title>
+
+ <para>
+ After software has been built, is must also be
+ <emphasis>deployed</emphasis> in the intended target environment, e.g.,
+ the user's workstation. Examples include the Red Hat package manager
+ (RPM), Microsoft's MSI, and so on. Here also we have to deal with
+ several issues:
+ <itemizedlist>
+ <listitem>
+ <para>
+ The <emphasis>creation</emphasis> of packages from some formal
+ description of what artifacts should be distributed in the
+ package.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ The <emphasis>deployment</emphasis> of packages, that is, the
+ mechanism by which we get them onto the intended target
+ environment. This can be as simple as copying a file, but
+ complexity comes from the wide range of possible installation
+ media (such as a network install), and the scalability of the
+ process (if a program must be installed on a thousand systems, we
+ do not want to visit each system and perform some manual steps to
+ install the program on that system; that is, the complexity for
+ the system administrator should be constant, not linear).
+ </para>
+ </listitem>
+ </itemizedlist>
+ </para>
+ </sect2>
+
+ </sect1>
+
+ <sect1>
+ <title>The Nix system</title>
+
+ <para>
+ ...
+ </para>
+
+ <para>
+ Existing tools in this field generally both a underlying model (such as
+ the derivation graph of build tools, or the versioning scheme that
+ determines when two packages are <quote>compatible</quote> in a package
+ management system) and a formalism that allows ...
+ </para>
+
+ <para>
+ Following the principle of separation of mechanism and policy, the Nix
+ system separates the <emphasis>low-level aspect</emphasis> of file system
+ object management form the <emphasis>high-level aspect</emphasis> of the
+ ...
+ </para>
+
+ </sect1>
+
+</chapter>
+
+<!--
+local variables:
+sgml-parent-document: ("book.xml" "chapter")
+end:
+-->