This commit adds a documentation for the KIWI XML description. In contrast to the former auto generated code from the XML schema this document can now finally be used as a reference. Along with that new chapter all auto generated and static html content as been deleted. Also all helper scripts around the proprietary oxygen tool and our schema doc generator has been deleted. Auto generating this information does not lead to a reference guide people can really work with. As a consequence to these changes this commit also includes some changes of the structure such that no information written by other people in the past gets lost. This Fixes #1421 and Fixes #1474
96 lines
3.2 KiB
ReStructuredText
96 lines
3.2 KiB
ReStructuredText
.. _db_overview:
|
|
|
|
Overview
|
|
========
|
|
|
|
.. note:: **Abstract**
|
|
|
|
This document provides a conceptual overview about the steps
|
|
of creating an image with {kiwi}. It also explains the terminology
|
|
regarding the concept and process when building system images
|
|
with {kiwi} |version|.
|
|
|
|
.. toctree::
|
|
:maxdepth: 1
|
|
|
|
overview/workflow
|
|
|
|
Conceptual Overview
|
|
-------------------
|
|
|
|
A system image (usually called "image"), is a *complete installation* of a Linux
|
|
system within a file. The image represents an operation system and,
|
|
optionally, contains the "final" configuration.
|
|
|
|
{kiwi} creates images in a two step process:
|
|
|
|
1. The first step, the *prepare operation*, generates a so-called
|
|
*unpacked image tree* (directory) using the information provided in
|
|
the image description.
|
|
|
|
2. The second step, the *create operation*, creates the *packed image* or
|
|
*image* in the specified format based on the unpacked image and the
|
|
information provided in the configuration file.
|
|
|
|
The image creation process with {kiwi} is automated and does not require any
|
|
user interaction. The information required for the image creation process is
|
|
provided by the image description.
|
|
|
|
|
|
Terminology
|
|
-----------
|
|
|
|
Appliance
|
|
An appliance is a ready to use image of an operating system
|
|
including a pre-configured application for a specific use case.
|
|
The appliance is provided as an image file and needs to be
|
|
deployed to, or activated in the target system or service.
|
|
|
|
Image
|
|
The result of a {kiwi} build process.
|
|
|
|
Image Description
|
|
Specification to define an appliance. The image description is a
|
|
collection of human readable files in a directory. At least one XML
|
|
file :file:`config.xml` or :file:`.kiwi` is required. In addition
|
|
there may be as well other files like scripts or configuration data.
|
|
These can be used to customize certain parts either of the {kiwi}
|
|
build process or of the initial start-up behavior of the image.
|
|
|
|
Overlay Files
|
|
A directory structure with files and subdirectories stored as part
|
|
of the Image Description. This directory structure is packaged as
|
|
a file :file:`root.tar.gz` or stored inside a directory named
|
|
:file:`root`. Additional overlay directories for selected profiles
|
|
are supported too and are taken into account if the directory
|
|
name matches the name of the profile. The content of each of the
|
|
directory structures is copied on top of the the existing file
|
|
system (overlayed) of the appliance root. This also includes
|
|
permissions and attributes as a supplement.
|
|
|
|
{kiwi}
|
|
An OS appliance builder.
|
|
|
|
Virtualization Technology
|
|
Software simulated computer hardware. A virtual machine acts like
|
|
a real computer, but is separated from the physical hardware.
|
|
Within this documentation the QEMU virtualization system is
|
|
used. Another popular alternative is Virtualbox.
|
|
|
|
System Requirements
|
|
-------------------
|
|
|
|
To use and run {kiwi}, you need:
|
|
|
|
* A recent Linux distribution, see :ref:`supported-distributions` for
|
|
details.
|
|
|
|
* Enough free disk space to build and store the image. We recommend a
|
|
minimum of 15GB.
|
|
|
|
* Python version 3.5 or higher
|
|
|
|
* Git (package ``git``) to clone a repository.
|
|
|
|
* Any virtualization technology to start the image. We recommend QEMU.
|