]> rtime.felk.cvut.cz Git - frescor/frsh-forb.git/blobdiff - README
forb: Fix incorrect parameter of forb_peer_put()
[frescor/frsh-forb.git] / README
diff --git a/README b/README
index aebf1b14a0b724d7a64fa3a6212f5caa6ea639fa..e2a0ee82d9ee8a1a0b1803d133f5d656d5780a56 100644 (file)
--- a/README
+++ b/README
@@ -1,74 +1,91 @@
+* FRSH/FORB FRAMEWORK
+
+  FRSH/FORB is a contract-based resource reservation framework for
+  distributed real-time applications. In general, it provides timing
+  isolation between applications, i.e. multiple applications can use
+  the same resources such as CPU, networks, etc., without influencing
+  timing of the other applications. The main principle is that
+  application developers use FRSH API to specify their resource
+  requirements needed to achieve desired timeliness and the framework
+  uses schedulability analysis to check these requirements. If the
+  check is successful an application is granted a "virtual resource"
+  which allow the application to use the requested resource while
+  enforcing the application not to use more than requested.
+
+  The development of the framework begun in FRESCOR project
+  (http://frescor.org) and now it is developed as a stand-alone
+  project on SourceForge (http://frsh-forb.sf.net).
+
 * BUILDING FRSH/FORB FRAMEWORK
 
-1) Initialize and download additional submodules:
-   
-   git submodule init
-   git submodule update
+1) Install prerequisites. On Debian/Ubuntu:
 
-2) Until everything is converted to GIT, some pieces must be fetched
-   from FRESCOR SVN:
+     apt-get install libidl-dev libcpufreq-dev libacpi-dev \
+                    libcgroup-dev libncurses5-dev
 
-   cd src
-   ./update-svn
+   To build camera demo, you need to:
 
-3) Go to build directory and configure the build:
+     apt-get install freeglut3-dev
+
+2) Go to build directory and configure the build:
    
-   cd ../build/aquosa
+   cd build/aquosa
    make default-config
 
    If you are not satisfied with configuration found in
    config.omk-default or config.target, you can override it in
    config.omk.
 
-4) Compile it:
+   To be able to use CPU reservations AQuoSA
+   (http://aquosa.sourceforge.net) has to be installed. If you cannot
+   use AQuoSA, the framework can also be compiled without CPU support
+   (echo CONFIG_AQUOSA=n >> config.omk) or can use cgroups (echo
+   CONFIG_CPUCG=y >> config.omk). Note, that cgroups support is not
+   well tested, but we plan to work on it.
+
+3) Compile it:
 
    make
 
+4) Test it:
+
+   ./_compiled/bin/fcb &
+   ./_compiled/bin/frm_dummy &
+   ./_compiled/bin/frm_gui &
+   ./_compiled/bin-tests/dummy_renegotiation
+
+* DIRECTORY STRUCTURE
+
+  * build/* - configuration for different build targets
+
+  * build/aquosa - default build for linux
 
-* OLD HOWTO
+  * build/marte - build for MarteOS. Not completely supported now.
 
-    Linux + AQuoSA
+  * src - all sources
 
-     * Install AQuoSA (http://aquosa.sourceforge.net)
-     * $HOME/frescor/src/omk-build/aquosa
-     * Adjust symlinks to FRESCOR modules (fosa, frsh, utils, ...) or use ./create-links script
-     * Create config.omk containing (or use a shell variable in your .bashrc)
+  * src/forb - CORBA-like middle for interprocess and inter-node
+    communication.
 
-  AQUOSA_ROOT=/path/to/aquosa/install/path
+  * src/frsh - The core of resource reservation framework.
 
-     * Actually, my preferred way of working is adding the following
-       variables in .bashrc:
+  * src/frsh-include - FRSH API headers from FRESCOR project. Our FRSH
+    framework implements this API.
 
-  # AQuoSA environment
-  export AQUOSA_ROOT=/usr/local/aquosa
-  export PATH="$PATH:$AQUOSA_ROOT/bin"
-  export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$AQUOSA_ROOT/lib"
-  # FRESCOR environment
-  export PLATFORM=AQuoSA
-  export FOSA_ROOT=$HOME/path/to/fosa
-  export FRSH_ROOT=$HOME/path/to/frsh
-  export UTILS_ROOT=$HOME/path/to/utils
-  LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$FOSA_ROOT/lib:$FRSH_ROOT/lib:$UTILS_ROOT/lib"
-  # OMK environment
-  # Use `omk' for OMK-enabled sources
-  alias omk="make -f $HOME/path/to/Makefile.rules"
-  # link headers instead of copying them
-  export LN_HEADERS=y
+  * src/fosa - Operating system adaptation layer
 
-     * Create default-configuration by running
+  * src/ulut - library providing generic data types and algorithms
+    (AVL trees etc.).
 
-  make default-config
+  * src/fna - Network adaptation layer = unified API for plugging in
+    different network protocols.
 
-     * Run
+  * src/fwp - Communication protocol and resource management for WiFi
+    (also works with Ethernet).
 
-  make
+* OLD HOWTO - may be out of date
 
-Further remarks
+** Further remarks
 
 - If we are not interested in compilation of some component (because
   it is currently in uncompilable state), we can simply delete the
@@ -97,7 +114,7 @@ Further remarks
 
   alias omk="make -f $HOME/frescor/src/omk-build/marte/Makefile.rules"
 
-Why is OMK good for FRESCOR
+** Why is OMK good for FRESCOR
 
      * It is not easy to test FRESCOR simultaneously on multiple platforms.
        With OMK, you can have the same sources compiled for multiple
@@ -126,15 +143,15 @@ Why is OMK good for FRESCOR
        it can be used to compile for OSE. In Pisa, they already use OMK for
        Aquosa.
 
-FAQ
+** FAQ
 
-   How do I debug my Makefile.omk set-up ?
+- How do I debug my Makefile.omk set-up ?
 
    Just activate verbose compilation (V=1 or V=2):
 
   make -f /path/to/Makefile.rules binary-pass V=1
 
-   How do I get back syntax highlighting in Emacs while editing .omk files ?
+- How do I get back syntax highlighting in Emacs while editing .omk files ?
 
    Just add these lines to your $(HOME)/.emacs: