README.md 2.79 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11
dOSEK - A Dependability Oriented Static Embedded Kernel
=======================================================

Recent hardware exhibits an increased susceptibility against transient
hardware faults due to shrinking structures sizes and operating
voltages. Automotive safety standards take up this fact, recommending
the deployment of appropriate counter measures. Here, existing
solutions mainly concentrate on the hardening of applications, while
the underlying operating system is often left as unreliable computing
base.

Martin Hoffmann's avatar
Martin Hoffmann committed
12
dOSEK aims to bridge that gap by utilizing consquent design and
13
implementation concepts for contructing a reliable computing base even
Martin Hoffmann's avatar
Martin Hoffmann committed
14 15
on unreliable hardware. dOSEK is developed from scratch with
dependability as the first-class design goal targeting
16
safety-critical, embedded applications, the system provides an
Christian Dietrich's avatar
Christian Dietrich committed
17
OSEK/AUTOSAR-conform interface (currently ECC1).
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33

Currently, dOSEK supports three platforms:

- x86: 32-Bit version of dOSEK that runs on bare metal
- posix: 32-Bit version of dOSEK that runs on Linux/x86
- arm: Port to the Panda Board/zedboard (currently WIP)

For more information about the dOSEK concepts, see
    https://www4.cs.fau.de/Research/dOSEK/

Software Requirements
---------------------

    apt-get install binutils-dev build-essential clang-3.4 cmake \
        g++-multilib gcc-multilib git grub-common grub-pc-bin    \
        llvm-3.3-dev llvm-3.3-runtime python-minimal python3     \
34 35
        python3-lxml python3-pyparsing python3-pip               \
        qemu-system-x86 xorriso
36 37 38 39 40

    LLVM_CONFIG_PATH=/usr/bin/llvm-config-3.3 pip3 install llvmpy

For the ARM version, you will  additionally need

41
    gcc-arm-none-eabi gdb-arm-none-eabi qemu-system-arm
42 43 44 45

Building
--------

Martin Hoffmann's avatar
Martin Hoffmann committed
46 47 48
dOSEK uses cmake as a build system.
We recommend to make an out-of-source build
To build and run all test-cases you have to type:
49 50

    mkdir build; cd build
Martin Hoffmann's avatar
Martin Hoffmann committed
51
    <Path to dOSEK>/new_build_env.py
52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
    make build_and_test

To get help about the available targets use

   make help  # long help
   make h     # short help

`after_first_checkout.sh` is only necessary, if you are going to
contribute via our gerrit code review system.

Docker Images
-------------

[![Docker badge](http://docker0.serv.pw:8080/danceos/dosek-base)](https://registry.hub.docker.com/u/danceos/dosek-base/)


Martin Hoffmann's avatar
Martin Hoffmann committed
68
We provide [docker.io](http://www.docker.com) images for a basic
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
build environment. These images provide an SSH port and access to an
Ubuntu machine that contains all build dependencies. You can either
build the images yourself with

    cd scripts/docker; make
    make run
    make ssh

or you can pull it directly from the docker Hub

    docker pull danceos/dosek-base
    cd scripts/docker; make run; make ssh

In either cases, the password is `dosek`. In the default
configuration, no SSH port will be exposed to the outside world.