Changeset 562

Show
Ignore:
Timestamp:
02/21/07 22:09:28 (2 years ago)
Author:
hollow
Message:

add cross reference labels; extend/rewrite vcd introduction

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/doc/manual/cmdref/vcc.tex

    r527 r562  
    11\chapter{VServer Control Client} 
     2\label{ch:cmdref:vcc} 
  • trunk/doc/manual/cmdref/vcd.tex

    r527 r562  
    11\chapter{VServer Control Daemon} 
     2\label{ch:cmdref:vcd} 
  • trunk/doc/manual/cmdref/vcdadm.tex

    r527 r562  
    11\chapter{VServer Control Daemon Administration Tool} 
     2\label{ch:cmdref:vcdadm} 
  • trunk/doc/manual/cmdref/vce.tex

    r527 r562  
    11\chapter{VServer Configuration Editor} 
     2\label{ch:cmdref:vce} 
  • trunk/doc/manual/cmdref/vshelper.tex

    r527 r562  
    11\chapter{VServer Kernel Helper} 
     2\label{ch:cmdref:vshelper} 
  • trunk/doc/manual/intro/intro.tex

    r522 r562  
    11\chapter{Introduction to virtualization} 
    2  
     2\label{ch:intro:intro} 
    33 
    44 
    55\section{What is virtualization?} 
     6\label{sec:intro:intro:whatis} 
    67 
    78Today, virtualization is a broad term that refers to the abstraction computer 
     
    6263 
    6364\section{Simulation} 
     65\label{sec:intro:intro:simulation} 
    6466 
    6567A \textit{computer simulation} is an attempt to model a real-life situation on 
     
    8082 
    8183\section{Emulation} 
     84\label{sec:intro:intro:emulation} 
    8285 
    8386A \textit{Software Emulator} allows computer programs to run on a platform 
     
    111114 
    112115\section{Simulation vs. Emulation} 
     116\label{sec:intro:intro:simvsemu} 
    113117 
    114118There is a lot of confusion between emulators and simulators, in fact, the 
     
    171175 
    172176\section{Native Virtualization} 
     177\label{sec:intro:intro:native} 
    173178 
    174179Native virtualization, in which the Virtual Machine simulates complete hardware 
     
    196201 
    197202\section{Para-virtualization} 
     203\label{sec:intro:intro:para} 
    198204 
    199205However, native virtualization may incur a performance penalty.  The VM monitor 
     
    236242 
    237243\section{Operating System-Level Virtualization} 
     244\label{sec:intro:intro:oslevel} 
    238245 
    239246\textit{Operating System-Level Virtualization} is a server virtualization 
  • trunk/doc/manual/intro/vcd.tex

    r524 r562  
    11\chapter{The VServer Control Daemon} 
     2\label{ch:intro:vcd} 
    23 
    34 
    45\section{Abstract} 
     6\label{sec:intro:vcd:abstract} 
    57 
    68In order to ease management of Virtual Private Servers a central instance is 
    79needed to provide an open and well-known \emph{Application Programming 
    8 Interface (API)}.  The \emph{VServer Control Daemon (VCD)} is a daemon running 
    9 in the host context providing the aforementioned API via \emph{XMLRPC}, a 
     10Interface (API)} not only for local, but especially for remote usage and 
     11execution.  The \emph{VServer Control Daemon (VCD)} is a daemon running 
     12in the host context and provides the aforementioned API using \emph{XML-RPC}, a 
    1013simple protocol for \emph{Remote Procedure Calls (RPC)} using the XML Markup 
    1114Language. 
     
    1316 
    1417\section{Rationale} 
     18\label{sec:intro:vcd:rationale} 
    1519 
    1620The current user-space implementation of the Linux-VServer kernel API suffers a 
     
    2630 
    2731\section{Architecture} 
    28  
    29 The VServer Control Daemon consists of five major parts: the configuration 
    30 database (\emph{VXDB}), the \emph{XMLRPC Server}, the \emph{XMLRPC Clients}, 
    31 the \emph{Template Management} as well as a light-weight \emph{Statistics 
    32 Collector}. 
    33  
    34 \begin{figure}[H] 
     32\label{sec:intro:vcd:architecture} 
     33 
     34The complete VServer Control Daemon package consists of four independent 
     35modules: 
     36 
     37\begin{labeling}[~~]{\labelingfont{vwrappers}} 
     38        \labelingitem{libvserver} The libvserver module contains a library that implements 
     39                the Linux-VServer system call in the C language. It provides a convenient 
     40                way to execute Linux-VServer commands in other programs or libraries. 
     41                Additionally basic low-level command-line tools are provided to work with 
     42                these commands. 
     43 
     44        \labelingitem{vcd} The VServer Control Daemon module uses -- among other 
     45                libraries -- libvserver to implement the core of the package. This modules 
     46                includes the configuration storage backend, the XML-RPC server, 
     47                command-line clients and the kernel user-space helper. 
     48 
     49        \labelingitem{vwrappers} The vwrappers module contains a lot of wrappers for 
     50                coreutils/util-linux/procps and other system packages. This provides a 
     51                convenient way to execute commands inside virtual private servers. 
     52                Additionally, some utilities for the extended filesystem attributes are 
     53                provided enhancing the versions in libvserver with recursion and various 
     54                other options. 
     55 
     56        \labelingitem{vstatd} The VServer Statistics Daemon module contains a \emph{very} 
     57                small daemon that keeps track of resource utilization of virtual private 
     58                servers. For statistical analysis all collected data is stored in a 
     59                round-robin database (RRD), the industry standard data logging and graphing 
     60                application. 
     61\end{labeling} 
     62 
     63A detailed descriptions of these modules can be found in the next sections. 
     64However, the reader may skip to part~\ref{pt:install} on 
     65page~\pageref{pt:install} for the installation guide and jump back here 
     66occasionally once a more detailed module explanation is needed. 
     67 
     68 
     69\section{Linux-VServer system call library} 
     70\label{sec:intro:vcd:libvserver} 
     71 
     72The Linux-VServer project provides an interface to the various virtualization 
     73and configuration commands that have been added to the kernel. This interface 
     74between the operating system and the user programs or libraries is known as 
     75\emph{system call}. 
     76 
     77For a long time the Linux-VServer project used a few different system calls to 
     78accomplish different aspects of virtualization and configuration. However, the 
     79number of commands grew rapidly and a few system calls were simply not enough to 
     80handle every aspect of virtualization. Therefore, the Linux-VServer system call 
     81now uses a system call multiplexer based on a command identifier, which has 
     82similar semantics like the \texttt{ioctl} system call. 
     83 
     84The Linux kernel maintainers have reserved a system call number for the 
     85Linux-VServer project on most architectures meanwhile  and while the opinion on 
     86system call multiplexing might differ from developer to developer, it was 
     87generally considered a good decision not to have more than one syscall \ldots 
     88 
     89The advantage of different system calls would be simpler handling on different 
     90architectures. However, this has not been a problem so far, as the data passed 
     91to and from the kernel has strong typed fields conforming to the C99 types. 
     92 
     93The Linux-VServer system call requires three arguments regardless of what the 
     94actual command is: 
     95 
     96\begin{quote} 
     97\texttt{sys\_vserver(uint32\_t cmd, uint32\_t id, void \_\_user *data);} 
     98\end{quote} 
     99 
     100\begin{labeling}{\labelingfont{data}} 
     101\labelingitem{cmd}  a command number 
     102\labelingitem{id}   an identifier 
     103\labelingitem{data} a user-space data-structure of yet unknown size 
     104\end{labeling} 
     105 
     106To allow for some structure for debugging purposes and some kind of command 
     107versioning, the command number is split into three parts: the lower 12 bit 
     108contain a version number, then 4 bits are reserved, the upper 16 bits are 
     109divided into 8 bit for the command number and 6 bit for category number, again 
     110reserving 2 bits for the future. 
     111 
     112In theory, there are 64 categories with up to 256 commands in each category, 
     113allowing for 4096 revisions of each command, which is far more than will ever be 
     114required. 
     115 
     116The following categories and commands are defined in the Linux-VServer 2.2.0 
     117release: 
     118 
     119\begin{center} 
     120\small 
     121\begin{verbatim} 
     122       |VERSION|CREATE |MODIFY |MIGRATE|CONTROL|EXPERIM| |SPECIAL|SPECIAL| 
     123       |STATS  |DESTROY|ALTER  |CHANGE |LIMIT  |TEST   | |       |       | 
     124       |INFO   |SETUP  |       |MOVE   |       |       | |       |       | 
     125-------+-------+-------+-------+-------+-------+-------+ +-------+-------+ 
     126SYSTEM |VERSION|VSETUP |VHOST  |       |       |       | |DEVICES|       | 
     127HOST   |     00|     01|     02|     03|     04|     05| |     06|     07| 
     128-------+-------+-------+-------+-------+-------+-------+ +-------+-------+ 
     129CPU    |       |VPROC  |PROCALT|PROCMIG|PROCTRL|       | |SCHED. |       | 
     130PROCESS|     08|     09|     10|     11|     12|     13| |     14|     15| 
     131-------+-------+-------+-------+-------+-------+-------+ +-------+-------+ 
     132MEMORY |       |       |       |       |       |       | |SWAP   |       | 
     133       |     16|     17|     18|     19|     20|     21| |     22|     23| 
     134-------+-------+-------+-------+-------+-------+-------+ +-------+-------+ 
     135NETWORK|       |VNET   |NETALT |NETMIG |NETCTL |       | |SERIAL |       | 
     136       |     24|     25|     26|     27|     28|     29| |     30|     31| 
     137-------+-------+-------+-------+-------+-------+-------+ +-------+-------+ 
     138DISK   |       |       |       |       |DLIMIT |       | |INODE  |       | 
     139VFS    |     32|     33|     34|     35|     36|     37| |     38|     39| 
     140-------+-------+-------+-------+-------+-------+-------+ +-------+-------+ 
     141OTHER  |VSTAT  |       |       |       |       |       | |VINFO  |       | 
     142       |     40|     41|     42|     43|     44|     45| |     46|     47| 
     143=======+=======+=======+=======+=======+=======+=======+ +=======+=======+ 
     144SPECIAL|EVENT  |       |       |       |FLAGS  |       | |       |       | 
     145       |     48|     49|     50|     51|     52|     53| |     54|     55| 
     146-------+-------+-------+-------+-------+-------+-------+ +-------+-------+ 
     147SPECIAL|DEBUG  |       |       |       |RLIMIT |SYSCALL| |       |COMPAT | 
     148       |     56|     57|     58|     59|     60|TEST 61| |     62|     63| 
     149-------+-------+-------+-------+-------+-------+-------+ +-------+-------+ 
     150\end{verbatim} 
     151\end{center} 
     152 
     153While a single system call is advantageous from the kernel point of view, 
     154user programs and libraries tend to have a single function per command, although 
     155this is not always the case for multiplexed system calls, as can be seen with 
     156\texttt{ioctl}. Nevertheless, the libvserver module implements a function for 
     157each command the Linux-VServer multiplexer knows about. 
     158 
     159For this purpose, the library uses acustom  syscall implementation written by 
     160Herbert Pötzl in inline assembler rather than using the syscall macros provided 
     161by \texttt{libc} to make the library as self-contained as possible. 
     162 
     163The complete documentation of the libvserver API can be found on the projects 
     164website~\cite{libvserver-doc} and is not discussed in further detail here. 
     165 
     166 
     167\section{VServer Control Daemon} 
     168\label{sec:intro:vcd:vcd} 
     169 
     170The Vserver Control Daemon is the core of the the package and implements all 
     171aspects of virtual server management using libvserver to issue Linux-VServer 
     172system calls, xmlrpc-c to implement the XML-RPC protocol and SQLite3 for 
     173data storage. Figure~\ref{fig:vcd-overview} illustrates the basic relationship 
     174between libraries, methods and clients. 
     175 
     176\begin{figure}[hbt] 
    35177        \center 
    36178        \includegraphics[scale=0.4]{intro/vcd} 
    37179        \caption{VServer Control Daemon Architecture Overview} 
     180        \label{fig:vcd-overview} 
    38181\end{figure} 
    39182 
    40183 
    41  
    42184\subsection{Configuration Database - VXDB} 
    43185 
    44186The configuration database (\emph{VXDB}) stores all virtual private server 
    45 related configuration data like disk limits, CPU scheduler, or network 
    46 adresses. Furthermore the daemon stores information about its users and their 
    47 permissions as well as owned virtual servers in the database. For convenienc
    48 and size reasons the database is implemented using \emph{SQLite}. 
    49  
    50 SQLite is a small C library that implements a self-contained, embeddable, 
     187related configuration data like disk limits, CPU scheduler buckets, or network 
     188adresses. Furthermore the daemon stores information about its users and access 
     189control as well as owner information in the database. For convenience and siz
     190reasons the database is implemented using \emph{SQLite3}. 
     191 
     192SQLite3 is a small C library that implements a self-contained, embeddable, 
    51193zero-configuration SQL database engine. The decision for using SQLite as 
    52194database backend is based on the following key-features of SQLite: 
     
    66208\end{itemize} 
    67209 
    68 \subsection{The XMLRPC Server} 
    69  
    70 The \emph{XMLRPC Server} is the core of the VServer Control Daemon and 
    71 implements the XMLRPC standard for Remote Procedure Calls (RPC). XMLRPC is a 
     210\subsection{The XML-RPC Server} 
     211 
     212The \emph{XML-RPC Server} is the core of the VServer Control Daemon and 
     213implements the XML-RPC standard for Remote Procedure Calls (RPC). XMLRPC is a 
    72214specification and a set of implementations that allow software running on 
    73215disparate operating systems, running in different environments to make 
     
    76218 
    77219 
    78 \subsubsection{The XMLRPC Protocol} 
    79  
    80 XMLRPC is a wire protocol that describes an XML serialization format that 
     220\subsubsection{The XML-RPC Protocol} 
     221 
     222XML-RPC is a wire protocol that describes an XML serialization format that 
    81223clients and servers use to pass remote procedure calls to each other. There are 
    82224two features that make this protocol worth knowing. The first is that the 
     
    84226and servers don't need to be written in the same language. 
    85227 
    86 XMLRPC is designed to be as simple as possible, while allowing complex data 
    87 structures to be transmitted, processed and returned. 
    88  
    89 \begin{figure}[H] 
     228XML-RPC is designed to be as simple as possible, while allowing complex data 
     229structures to be transmitted, processed and returned. Figure~\ref{fig:xmlrpc} 
     230illustrates the serialzation/deserialization in an XML-RPC session. 
     231 
     232\begin{figure}[hbt] 
    90233        \center 
    91234        \includegraphics[scale=0.5]{intro/xmlrpc} 
    92235        \caption{XMLRPC data flow} 
     236        \label{fig:xmlrpc} 
    93237\end{figure} 
    94  
    95238 
    96239Here are some examples of remote procedure call (RPC) style communications: 
     
    120263 
    121264Based on XML nearly any application can be enabled to call methods defined by 
    122 the XMLRPC Server. The fact that XML is written in plain-text and also easily 
    123 readable by humans allows tracing and debugging with no additional overhead or 
    124 learning curve. 
    125  
    126 The server defines a global registry of methods accessible by its clients. 
    127 These methods are devided in several logical parts and seperated by a dot in 
    128 their method name. For a list of available methods see below. 
    129  
     265the XML-RPC Server. Additionally, the fact that XML is written in plain-text 
     266and also easily parsable by humans allows easy tracing and debugging of XML-RPC 
     267sessions in case of failure or other strange behaviour. 
     268 
     269On startup, the server defines a global registry of methods accessible by its 
     270clients. In order to allow structure for the amount of methods currently 
     271defined, all methods are devided in logical units -- also known as namespaces -- 
     272and prefixed with the namespace and a dot, like \verb,vx.start, or 
     273\verb,helper.shutdown, for the start and shutdown methods of the vx and helper 
     274namespace, respectively. 
     275 
     276Refer to part~\ref{pt:rpcref} on page~\pageref{pt:rpcref} for a detailed 
     277description of the XML-RPC protocol and the request and response format used 
     278for defined methods. 
    130279 
    131280\subsubsection{Authentication} 
     
    134283function \emph{WHIRLPOOL}. WHIRLPOOL is a cryptographic hash function designed 
    135284by Vincent Rijmen and Paulo S. L. M. Barreto. The hash has been recommended by 
    136 the NESSIE project. It has also been adopted by the International Organization 
     285the NESSIE project. It has also been adopted by the International Organization 
    137286for Standardization (ISO) and the International Electrotechnical Commission 
    138287(IEC) as part of the joint ISO/IEC 10118-3 international standard. 
     
    144293 
    145294For security reasons the clear-text password is never stored in VXDB. The 
    146 client will send the password as plain-text - the server then creates a 
     295client will send the password as plain-text -- the server then creates a 
    147296WHIRLPOOL hash using the submitted password and compares its result with the 
    148 hash stored in VXDB. 
     297hash stored in VXDB. It is also possible to create the hash on the client side, 
     298prefix the result with \verb,WHIRLPOOLENC//, and send the result to the server 
     299for authentication. The server then compares the hash after the prefix. 
     300 
     301Note that an attacker can still authenticate against the server with the hash 
     302only, he just cannot retreive the original password again. Therefore, the server 
     303should \emph{never} listen on an untrusted network if no other security measures 
     304have been setup, like an SSL or VPN tunnel. 
    149305 
    150306 
     
    152308 
    153309For a fine-grained access control the server implements its own set of 
    154 capabilities.  A capability is a lot like the keys on your key ring. As an 
    155 example, consider your car key. It works on a specific car (it designates a 
    156 particular object), and anyone holding the key can perform certain actions 
    157 (locking or unlocking the car, starting the car, opening the glove 
    158 compartment). You can hand your car key to me, after which I can open, lock, or 
    159 start the car, but only on your car. Holding your car key won't let me test 
    160 drive my neighbor's Lamborghini. 
    161  
     310capabilities.  A capability is a lot like a drivers license. As an example, 
     311consider your car license. It allows you to drive a certain set of 
     312vehicles (it designates a particular object set, in our case XML-PRC methods), 
     313and anyone holding a car license is allowed to drive the same set of objects 
     314(cars). 
     315 
     316Refer to part~\ref{pt:rpcref} on page~\pageref{pt:rpcref} for a detailed 
     317description of available access restrictions and their usage in defined methods. 
    162318 
    163319\subsubsection{Owner Checks} 
    164320 
    165 To ensure the distinction between your car and the Lamborghini another access 
    166 control system has to be implemented. Therefore the server also implements 
    167 owner checks for most of its methods. This results in an extension to the 
    168 capability model explained above. Instead of using one key per car, you can now 
    169 drive multiple cars using just one key. 
    170  
    171 Still, this model has a noticable flaw: Imagine your company has two hundred 
    172 cars and your top management should have access to all cars. Adding all members 
     321To ensure the distinction between your car and your neighbours Lamborghini 
     322another access control system has to be implemented. Therefore the server also 
     323implements owner checks for most of its methods. This results in an extension to 
     324the capability model explained above. The server implements another object set 
     325based on the ownership information stored in the database. Instead of allowing 
     326everyone holding a certain capability to operate on all virtual servers, only 
     327the intersection of both object sets is permitted for operation. 
     328 
     329Still, this model has a noticable flaw: Imagine a company has two hundred cars 
     330and the top management should have access to all cars. Adding all members 
    173331of the management to the owner list of every single car can become a pain in 
    174 the ass very quickly. Therefore the user database in VXDB implements the 
    175 adminstrator flag. Using this flag all owner checks are passed without even 
    176 consulting the owner lists in VXDB. 
    177  
    178  
    179 \subsection{XMLRPC Clients} 
    180  
    181 The \emph{XMLRPC Clients} on the other hand connect to the XMLRPC Server using 
    182 the HTTP protocol. They need to pass authentication information, the method 
    183 name they wish to call and optionally parameters specific to the called method. 
     332the ass very quickly. Therefore the user database in VXDB implements an 
     333additional configuration option~--~the adminstrator flag. Using this flag all 
     334owner checks are passed without even consulting the owner lists in the database. 
     335 
     336 
     337\subsection{XML-RPC Clients} 
     338 
     339The \emph{XML-RPC Clients} provided in the VServer Control Daemon module 
     340provide facilities to connect and execute methods on remote servers. Several 
     341clients exist for different purpose, in most cases they are aligned with the 
     342method namespaces mentioned above. 
     343 
    184344It is important to know that the connection between server and client is not 
    185345persistent, i.e. you send one request, get one answer, and the connection will 
     
    189349method specific return value. 
    190350 
    191  
     351Refer to part~\ref{pt:rpcref} on page~\pageref{pt:rpcref} for a detailed 
     352description of the XML-RPC protocol and the request and response format used 
     353for defined methods asw well as error codes and their meaning. 
     354 
     355 
     356% FIXME: more info needed here 
    192357\subsection{The Template Management} 
    193358 
     
    198363 
    199364 
    200 \subsection{The Statistics Collector} 
     365% FIXME: more info needed here 
     366\section{VServer Statistics Daemon} 
     367\label{sec:intro:vcd:vstatd} 
    201368 
    202369The \emph{Statistics Collector} is a very light-weight daemon used to collect 
  • trunk/doc/manual/intro/vserver.tex

    r522 r562  
    11\chapter{The Linux-VServer Project} 
     2\label{ch:intro:vserver} 
    23 
    34 
     
    2021 
    2122\section{Rationale} 
     23\label{sec:intro:vserver:rationale} 
    2224 
    2325Over the years, computers have become sufficiently powerful to use 
     
    5052 
    5153\section{The Concept} 
     54\label{sec:intro:vserver:concept} 
    5255 
    5356At a basic level, a Linux server consists of three building blocks: hardware, 
     
    9194 
    9295\section{Usage Scenarios} 
     96\label{sec:intro:vserver:usage} 
    9397 
    9498The primary goal of this project is to create virtual servers sharing the same 
     
    290294% TODO: more info needed here 
    291295\section{History} 
     296\label{sec:intro:vserver:history} 
    292297 
    293298\textbf{Jacques Gélinas} created the VServer project a number of years back. 
  • trunk/doc/manual/manual.bib

    r518 r562  
    3636 
    3737@Misc{wp-iss, 
    38         author      = {Wikipedia}, 
    39         title       = {Instruction Set Simulator --- 
    40                 {W}ikipedia{,} The Free Encyclopedia}, 
    41         year        = {Feb 2007}, 
    42         note        = {\url{http://en.wikipedia.org/wiki/Instruction_Set_Simulator}} 
     38        author = {Wikipedia}, 
     39        title  = {Instruction Set Simulator -- Wikipedia, The Free Encyclopedia}, 
     40        year   = {Feb 2007}, 
     41        note   = {\url{http://en.wikipedia.org/wiki/Instruction_Set_Simulator}} 
    4342} 
    4443 
    4544@Misc{wp-native-virt, 
    46         author      = {Wikipedia}, 
    47         title       = {Native Virtualization --- 
    48                 {W}ikipedia{,} The Free Encyclopedia}, 
    49         year        = {Feb 2007}, 
    50         note        = {\url{http://en.wikipedia.org/wiki/Native_virtualization}} 
     45        author = {Wikipedia}, 
     46        title  = {Instruction Set Simulator -- Wikipedia, The Free Encyclopedia}, 
     47        year   = {Feb 2007}, 
     48        note   = {\url{http://en.wikipedia.org/wiki/Native_virtualization}} 
    5149} 
    5250 
    5351@Misc{wp-os-virt, 
    54         author      = {Wikipedia}, 
    55         title       = {Operating system-level virtualization --- 
    56                 {W}ikipedia{,} The Free Encyclopedia}, 
    57         year        = {2007}, 
    58         note        = {\url{http://en.wikipedia.org/wiki/ 
     52        author = {Wikipedia}, 
     53        title  = {Instruction Set Simulator -- Wikipedia, The Free Encyclopedia}, 
     54        year   = {2007}, 
     55        note   = {\url{http://en.wikipedia.org/wiki/ 
    5956                Operating_system-level_virtualization}} 
    6057} 
    6158 
    6259@Misc{emu-vs-simu, 
    63         author      = {Ed Thelen}, 
    64         title       = {Emulation/Simulation}, 
    65         year        = {2007}, 
    66         note        = {\url{http://ed-thelen.org/comp-hist/emulation.html}} 
     60        author = {Ed Thelen}, 
     61        title  = {Emulation/Simulation}, 
     62        year   = {2007}, 
     63        note   = {\url{http://ed-thelen.org/comp-hist/emulation.html}} 
    6764} 
    6865 
    6966@Misc{vmware-intro, 
    70         author      = {VMWare Inc.}, 
    71         title       = {Intro to Virtualization}, 
    72         year        = {2007}, 
    73         note        = {\url{http://www.vmware.com/virtualization/}} 
     67        author = {VMWare Inc.}, 
     68        title  = {Intro to Virtualization}, 
     69        year   = {2007}, 
     70        note   = {\url{http://www.vmware.com/virtualization/}} 
    7471} 
     72 
     73@Book{tannenbaum-osdesign, 
     74        author    = {Andrew S. Tannenbaum}, 
     75        title     = {Operating Systems Design and Implementation}, 
     76        publisher = {Prentice Hall}, 
     77        year      = {2006} 
     78} 
  • trunk/doc/manual/manual.tex

    r528 r562  
    3131\renewcommand{\cftsecaftersnum}{.} 
    3232 
     33% provide shortcut for nice labels 
     34\newcommand{\labelingfont}[1]{\usekomafont{descriptionlabel}#1} 
     35\newcommand{\labelingitem}[1]{\item[\labelingfont{#1}]} 
     36 
    3337\title{VServer Control Daemon\\Reference Manual} 
    3438\author{Benedikt Böhm \texttt{<hollow@gentoo.org>}} 
     
    4650\mainmatter 
    4751\part{Introduction} 
     52\label{pt:intro} 
    4853\input{intro/intro.tex} 
    4954\input{intro/vserver.tex} 
     
    5156 
    5257\part{Installation} 
     58\label{pt:install} 
    5359 
    5460\part{Configuration and Maintenance} 
     61\label{pt:config} 
    5562 
    5663\part{Command Reference} 
     64\label{pt:cmdref} 
    5765\input{cmdref/vcc.tex} 
    5866\input{cmdref/vcd.tex} 
     
    6270 
    6371\part{XML-RPC Method Reference} 
     72\label{pt:rpcref} 
    6473\input{rpcref/commands.tex} 
    6574\input{rpcref/intro.tex} 
  • trunk/doc/manual/rpcref/commands.tex

    r531 r562  
    1717        \end{quote} 
    1818 
    19         \begin{labeling}{00.00.0000} 
     19        \begin{labeling}{000000000} 
    2020}{ 
    2121        \end{labeling} 
    2222} 
    2323 
    24 \newcommand{\rpcparam}[2]{\item [{\texttt{#1}}] #2
     24\newcommand{\rpcparam}[2]{\labelingitem{#1}{#2}
    2525 
    2626% access restrictions 
     
    5959        \end{quote} 
    6060 
    61         \begin{labeling}{00.00.0000} 
     61        \begin{labeling}{000000000} 
    6262}{ 
    6363        \end{labeling} 
    6464} 
    6565 
    66 \newcommand{\rpcreturnparam}[2]{\item [{\texttt{#1}}] #2
     66\newcommand{\rpcreturnparam}[2]{\labelingitem{#1}{#2}
    6767 
    6868% errors 
     
    7979        specific errors: 
    8080 
    81         \begin{labeling}{00.00.0000} 
     81        \begin{labeling}{000000000} 
    8282}{ 
    8383        \end{labeling} 
    8484} 
    8585 
    86 \newcommand{\rpcerror}[2]{\item [{\texttt{#1}}] #2
     86\newcommand{\rpcerror}[2]{\labelingitem{#1}{#2}
  • trunk/doc/manual/rpcref/helper.tex

    r529 r562  
    11\chapter{Helper Methods} 
     2\label{ch:rpcref:helper} 
    23 
    34 
  • trunk/doc/manual/rpcref/intro.tex

    r539 r562  
    11\chapter{Introduction} 
     2\label{ch:rpcref:intro} 
    23 
    34 
  • trunk/doc/manual/rpcref/vcd.tex

    r529 r562  
    11\chapter{Daemon Administration Methods} 
     2\label{ch:rpcref:vcd} 
    23 
    34 
  • trunk/doc/manual/rpcref/vx.tex

    r529 r562  
    11\chapter{General Maintenance Methods} 
     2\label{ch:rpcref:vx} 
    23 
    34The vx family of functions provide general maintenance facilities for virtual 
  • trunk/doc/manual/rpcref/vxdb.tex

    r539 r562  
    11\chapter{Database Manipulation Methods} 
     2\label{ch:rpcref:vxdb} 
    23 
    34The \texttt{vxdb} family of functions provide manipulation facilities for the