diff options
Diffstat (limited to 'doc/manual/introduction.xml')
-rw-r--r-- | doc/manual/introduction.xml | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/doc/manual/introduction.xml b/doc/manual/introduction.xml new file mode 100644 index 000000000000..77a5f917ee71 --- /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: +--> |