2 Involved Components

DROPS is a collection of packages using services of internal or external libraries and tools.

A DROPS package typically consists of a server, one or more client libraries and associated interface headers. Often there also exist one or more examples illustrating the usage of the package.

For C library support, DROPS utilizes one of two external C libraries dietlibc or uClibc. The two C libraries are included in the L4Env as packages. Some packages require the older OSKit libc. These packages are not actively maintained.

Some DROPS packages require L$\!^4$Linux, the L4 port of Linux. L$\!^4$Linux is available as another external module.

The internal tools include the BID makefile macros, the IDL compiler dice, a dependency generation tool, a code transformation tool, a configuration tool and others.

To build a DROPS package, all interface headers and libraries the packet depends on must be available, as well as the C library and the tools mentioned. For examples, the name server has the following dependencies:

The building tools of DROPS allow for two locations of the required packets (rmgr, log...), C libraries and tools, depending on how you installed DROPS:

  1. All packets and tools are available in source code. Their directories are specified relative to the L4DIR. Please see table 1 for the locations of the various components.

    By executing make in L4DIR/pkg, all libraries are symlinked into subdirectories of L4DIR/lib and all interface headers and IDL files are symlinked into subdirectories at L4DIR/include. We also refer to L4DIR as L4 directory. All binary files are symlinked into subdirectories at L4DIR/bin.

  2. The packets and tools are already compiled and installed at a central place at DROPS_STDDIR. Obviously, only the headers and IDL files of the packets are available in source code. We also refer to DROPS_STDDIR as DROPS directory.


Table 1: Locations of source code relative to L4DIR
component default location
DROPS packets L4DIR/pkg
DROPS Tools L4DIR/tool
L$\!^4$Linux v2.2 L4DIR/../linux22
L$\!^4$Linux v2.6 L4DIR/../l4linux-2.6


The first method allows to inspect and to change the source code, e.g. for development or for debugging. The second method allows to use pre-compiled libraries from a central place without the need to download and compile the whole DROPS source tree. For instance, the students at the Dresden OS group can easily access the DROPS directory at /home/drops which is rebuild from the newest CVS version each night.

You can mix both methods of installation, i.e. some packets can be installed into the DROPS directory and some other packets can be compiled from sources within the L4 directory. If you have both versions of one packet, the one in L4DIR/pkg will be used when compiling other packets.

In the following section we show how to build a DROPS tree.

L4 Checker 2012-04-11