Hands-on-Lab

The hands-on labs will take place on Wednesday, February 24, 2016. You have the opportunity to select one of two different hands-on labs.

Please bring your own notebook if you want to participate in one of the hands-on sessions, and prepare by installing VirtualBox. The sessions will take place in premises without existing PCs, and we will hand out VirtualBox VM images for everyone to work with.

Option1: L4Re Kernel

Microkernel systems are typically used in systems with high security and reliability requirements. Through strict isolation of individual components, as well as the minimization of code running with high privileges, systems can be built that adhere to the highest standards.The reduced code-base simplifies certification, proofability of system properties, as well as the usage of technologies to harden the code.

The L4Re Kernel, a microkernel of the L4 family, enables a wide range of practical applications in high-assurance system through its availability on common platforms (ARM, X86-32, X86-64) as well as its usage of modern system features (SMP on all platforms, TrustZone support etc). The systematic usage of modern C++ features in the kernel enable a high level of type-safety as well as readable, maintainable and re-usable code. L4Re - the L4 Runtime Environment - is a complete runtime system on top of the L4Re Kernel that implements a reasonable subset of the POSIX standard and enables the development of complex applications without reinventing the wheel. Together both components form the basis for a system that emphasizes ease of development and porting of applications for a platform that places security and reliability first.The whole framework is available as open source (https://l4re.org).

This hands-on session will provide a short introduction into the basic concepts of microkernels, their security properties, and the development of applications for them. From "Hello World" to a complete virtualized Linux system an overview of the versatile landscape of L4Re applications will be given. Participants can explore the L4Re system at their own pace while getting individual feedback and support.

Requirements
  • Installed VirtualBox
  • Basic knowledge in C/C++
Organizer

Option2: Fault-Injection based Assessment of Software-Implemented Hardware Fault Tolerance

Fault injection has been a standard technique for test, measurement, and comparison of fault-tolerance implementations for decades. By using, for example, a virtual machine emulating faulty hardware, the developer of a software-implemented fault tolerance method can test the implementation, and measure its effectiveness in an adverse environment. Fault injection can also be used to emulate other kinds of faults, such as communication problems, or even programming errors (bugs).

In this hands-on session, we will focus on software-implemented hardware fault tolerance (SIHFT), and introduce you to simulation-based hardware fault injection for test and measurement.  You will use the open-source fault-injection framework FAIL to analyze a small example benchmark. Working in groups or autonomously, you will -- choosing from given suggestions, or inventing your own SIHFT technique -- improve the benchmark on the source-code level to make it more resilient against hardware faults. In the grand finale, all solutions will compete for a small prize and, certainly, fame!

Requirements
  • Installed VirtualBox
  • Basic knowledge in C/C++
  • Experience with working at the Linux command-line
Organizer