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.