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/
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
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.
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.