Skip to content
This repository has been archived by the owner on Mar 20, 2018. It is now read-only.

danceos/dosek

Repository files navigation

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.

dOSEK aims to bridge that gap by utilizing consquent design and implementation concepts for contructing a reliable computing base even on unreliable hardware. dOSEK is developed from scratch with dependability as the first-class design goal targeting safety-critical, embedded applications, the system provides an OSEK/AUTOSAR-conform interface (currently ECC1).

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     \
    python3-lxml python3-pyparsing python3-pip               \
    qemu-system-x86 xorriso

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

For the ARM version, you will additionally need

gcc-arm-none-eabi gdb-arm-none-eabi qemu-system-arm

Building

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:

mkdir build; cd build
<Path to dOSEK>/new_build_env.py
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

We provide docker.io images for a basic 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.