Friedrich-Alexander-Universität UnivisSearch FAU-Logo
Techn. Fakultät Willkommen am Department Informatik FAU-Logo
Logo I4
Department of Computer Science 4
KESO
  Demo Applications

  People
  Publications
  Study-/Diplomatheses

  Download
  Documentation
Related Projects
  JOSEK
  danceOS
  CiAO
  I4Copter
Dept. of Computer Science  >  CS 4  >  Research  >  KESO
KESO: A Multi-JVM for Deeply Embedded Real-Time Systems

Overview

KESO is a Multi-JVM for embedded devices and networks of micro controllers. KESO builds on a standard OSEK/VDX or AUTOSAR OS operating system that provides scheduling and synchronization mechanisms to support multiple tasks on one micro controller. It furthermore provides notification mechanisms and a timer concept that allows the handling of timed or cyclic events.

KESO is designed for static embedded systems. The static nature of the system enables the use of analyzing techniques that allow the creation of a system that is highly adapted to the Java applications. Because complicated mechanisms such as a dynamic loader for Java classes are not required in such a system, we can achieve code sizes that allow to run KESO on smallest embedded devices. To avoid the interpretation of bytecode on the target controllers, the Java bytecode is compiled to a native code binary image ahead of time.

KESO applications are developed in Java using a uniform programming model. Memory-safety defects caused by out-of-bounds indexing, null-pointer dereferencing etc. are constructively avoided by the type-safe programming language and the KESO runtime system. There is a single configuration for the system as a whole. Subsequent configurations such as the configuration for the OSEK/VDX operating system are created automatically by jino, KESO's static analyzer and building tool. jino adopts concepts from abstract interpretation.

KESO provides a concept similar to the process concept found in modern operating systems for personal computers. These units are called domains in KESO and allow the safe co-existence of multiple tasks on the same micro controller. These domains can communicate through a uniform portal mechanism that works similar to Java Remote Method Invocation (RMI) or Remote Procedure Calls (RPC). The conceptual design of KESO was inspired by the Java operating system for personal computers JX.

KESO allows for software-based replication of selected (critical) applications. Replicas are spatially and temporally isolated from each other and co-located applications by domains. An application-specific majority voter picks a sane replica or triggers the state recovery of a malfunctioning component. The feature is fully automated and just needs to be activated in the system configuration.

KESO has experimental support for controller networks, which allow domains to be located on different nodes while providing a global view to the application. These domains will be able to communicate via the portal mechanism just as domains that are colocated on a micro controller. Since the location of a domain is transparent to the application, a relocation or integration of tasks within the controller network will boil down to a reconfiguration that does not require a change to the applications. KESO backends are currently available and ready to use for the following platforms: JOSEK, CiAO, Trampoline OS, Elektrobit ProOSEK (for TriCore) and RTA-OSEK (for TriCore, untested). Within the context of the ARAMiS II project, KESO features such as assisted memory protection and the memory handling from KESO's cooperative memory-management (CMM) framework are currently being implemented in the Astrée static analyzer in cooperation with AbsInt Angewandte Informatik GmbH and the German Aerospace Center (Deutsches Zentrum für Luft- und Raumfahrt (DLR)).

KESO is unique in several aspects:
  • It is the first Multi-JVM for deeply embedded systems.
  • It provides OSEK/VDX API calls and system primitives to the (Java) application developer, including service protection which is not provided by OSEK/VDX operating systems.
  • It enables hardware drivers to be written in pure Java.
  • It can detect addressing errors caused by transient hardware faults (i.e., bit flips) without specific hardware support.
  • It provides per domain configurable heap management strategies (garbage collector (GC)): A throughput-optimized, an incremental latency-aware and a fragmentation-tolerant real-time GC variant can be selected during system configuration.
  • Due to comprehensive static analyses, jino generates KESO applications whose resource requirements are comparable to that of applications written in C. Developers of resource-constraint embedded systems can benefit from the use of a modern high-level language and memory protection without the need for dedicated protection hardware.
Press: EETimes Article

License / Download

KESO is distributed under the terms of the GNU Lesser General Public License, version 3. KESO is available as a
snapshot (2012-06-13). The Documentation area contains various information that should help you getting started with KESO.

Team


Michael Strotz M. Sc.

Christian Metz

Simon Schuster

Former members:
Harald Bauer
Magnus Rauer
Philipp Sommer
Tobias Engelhard
Philip Taffner
Christian Bay
Martin Hofmann
Simon Kuhnle

Publications

2017

Schuster, Simon ; Ulbrich, Peter ; Stilkerich, Isabella ; Dietrich, Christian ; Schröder-Preikschat, Wolfgang: Demystifying Soft-Error Mitigation by Control-Flow Checking - A New Perspective on its Effectiveness. In: ACM Transactions on Embedded Computing Systems 16 (2017), Nr. 5s, S. 180:1-180:19
[doi>10.1145/3126503] (BibTeX)

Stilkerich, Isabella ; Lang, Clemens ; Erhardt, Christoph ; Bay, Christian ; Stilkerich, Michael: The Perfect Getaway: Using Escape Analysis in Embedded Real-Time Systems. In: ACM Transactions on Embedded Computing Systems (TECS) 16 (2017), Nr. 4, S. No. 99 (BibTeX)

2016

Stilkerich, Isabella: Cooperative Memory Management in Safety-Critical Embedded Systems. Erlangen, Friedrich-Alexander-Universität Erlangen-Nürnberg, Diss., 2016. - 188 Seiten. (BibTeX)

2015

Stilkerich, Isabella ; Lang, Clemens ; Erhardt, Christoph ; Stilkerich, Michael: A Practical Getaway: Applications of Escape Analysis in Embedded Real-Time Systems. In: ACM (Hrsg.) : Proceedings of the 16th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, Tools and Theory for Embedded Systems (The 16th Conference on Languages, Compilers and Tools for Embedded Systems (LCTES 2015) Portland, Oregon, USA June 2015). 2015, S. Article No. 4 (Best Papers at LCTES). - ISBN 978-1-4503-3257-6 (BibTeX)

2014

Stilkerich, Isabella ; Strotz, Michael ; Erhardt, Christoph ; Stilkerich, Michael: RT-LAGC: Fragmentation-Tolerant Real-Time Memory Management Revisited. In: ACM (Hrsg.) : Proceedings of the 12th International Workshop on Java Technologies for Real-Time and Embedded Systems (The 12th International Workshop on Java Technologies for Real-time and Embedded Systems (JTRES 2014) Niagara Falls, NY, USA October, 2014). 2014, S. 87-96. (BibTeX)

Stilkerich, Isabella ; Taffner, Philip ; Erhardt, Christoph ; Dietrich, Christian ; Wawersich, Christian ; Stilkerich, Michael: Team Up: Cooperative Memory Management in Embedded Systems. In: ACM (Hrsg.) : Proceedings of the 2014 Conference on Compilers, Architectures and Synthesis for Embedded Systems - CASES'14 (2014 Conference on Compilers, Architectures and Synthesis for Embedded Systems - CASES'14 New Delhi, India October, 2014). 2014, S. Article No. 10.
[doi>10.1145/2656106.2656129] (BibTeX)

Erhardt, Christoph ; Kuhnle, Simon ; Stilkerich, Isabella ; Schröder-Preikschat, Wolfgang: The final Frontier: Coping With Immutable Data in a JVM for Embedded Real-Time Systems. In: ACM (Hrsg.) : Proceedings of the 12th International Workshop on Java Technologies for Real-Time and Embedded Systems (The 12th International Workshop on Java Technologies for Real-time and Embedded Systems (JTRES 2014) Niagara Falls, NY, USA October, 2014). 2014, S. 97-106 Best Papers at JTRES. (BibTeX)

2013

Stilkerich, Isabella ; Strotz, Michael ; Erhardt, Christoph ; Hoffmann, Martin ; Lohmann, Daniel ; Scheler, Fabian ; Schröder-Preikschat, Wolfgang: A JVM for Soft-Error-Prone Embedded Systems. In: ACM (Hrsg.) : Proceedings of the 14th ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, Tools and Theory for Embedded Systems (The 14th Conference on Languages, Compilers and Tools for Embedded Systems (LCTES 2013) Seattle, Washington, USA June 2013). 2013, S. 21-32. - ISBN 978-1-4503-2085-6
[doi>10.1145/2465554.2465571] (BibTeX)

2012

Stilkerich, Isabella ; Sechser, Bernhard: Fehlertoleranz-Techniken automatisiert einbetten. In: Elektronikpraxis (2012), Nr. 13, S. 26-28 (BibTeX)

Stilkerich, Michael: Memory Protection at Option - Application-Tailored Memory Safety in Safety-Critical Embedded Systems. Erlangen, Friedrich-Alexander-Universität Erlangen-Nürnberg, Diss., 2012. - 191 Seiten. (BibTeX)

Stilkerich, Michael ; Stilkerich, Isabella ; Wawersich, Christian ; Schröder-Preikschat, Wolfgang: Tailor-made JVMs for statically configured embedded systems. In: Concurrency and Computation: Practice and Experience 24 (2012), Nr. 8, S. 789-812
[doi>10.1002/cpe.1755] (BibTeX)

2011

Stilkerich, Isabella ; Stilkerich, Michael ; Kapitza, Rüdiger ; Lohmann, Daniel ; Schröder-Preikschat, Wolfgang: Automated Application of Fault Tolerance Mechanisms in a Component-Based System. In: Wellings, Andy ; Ravn, Anders P. (Hrsg.) : Proceedings of the 9th International Workshop on Java Technologies for Real-Time and Embedded Systems (The 9th International Workshop on Java Technologies for Real-time and Embedded Systems (JTRES 2011) York, UK 26.9.-28.9.2011). New York, NY, USA : ACM, 2011, S. 87-95. - ISBN 978-1-4503-0731-4
[doi>10.1145/2043910.2043925] (BibTeX)

Stilkerich, Michael ; Schedel, Jens ; Ulbrich, Peter ; Schröder-Preikschat, Wolfgang ; Lohmann, Daniel: Escaping the Bonds of the Legacy: Step-Wise Migration to a Type-Safe Language in Safety-Critical Embedded Systems. In: Karsai, Gabor ; Polze, Andreas ; Kim, Doo-Hyun ; Steiner, Wilfried (Hrsg.) : Proceedings of the 14th IEEE International Symposium on Object/Component/Service-oriented Real-time Distributed Computing (ISORC '11) (IEEE International Symposium on Object/Component/Service-oriented Real-time Distributed Computing Newport Beach, CA, USA March 2011). Los Alamitos, California : IEEE Computer Society, 2011, S. 163-170. - ISBN 978-0-7695-4368-0
[doi>10.1109/ISORC.2011.29] (BibTeX)

Erhardt, Christoph ; Stilkerich, Michael ; Lohmann, Daniel ; Schröder-Preikschat, Wolfgang: Exploiting Static Application Knowledge in a Java Compiler for Embedded Systems: A Case Study. In: Wellings, Andy ; Ravn, Anders P. (Hrsg.) : Proceedings of the 9th International Workshop on Java Technologies for Real-Time and Embedded Systems (The 9th International Workshop on Java Technologies for Real-time and Embedded Systems (JTRES 2011) York, UK 26.9.-28.9.2011). New York, NY, USA : ACM, 2011, S. 96-105 -- Best Papers at JTRES. - ISBN 978-1-4503-0731-4
[doi>10.1145/2043910.2043927] (BibTeX)

Wawersich, Christian ; Stilkerich, Isabella ; Stilkerich, Michael: The Use of Java in the Context of AUTOSAR 4.0. In: Scheinig, Katrin (Hrsg.) : Embedded World Proceedings & Conference Materials (Embedded World 2011 Nürnberg 1.3.-3.3.2011). Nürnberg, Germany : Embedded World, 2011, S. CD. - ISBN 978-3-7723-0861-1 (BibTeX)

2010

Stilkerich, Michael ; Lohmann, Daniel ; Schröder-Preikschat, Wolfgang: Gradual Software-Based Memory Protection. In: ACM (Hrsg.) : Proceedings of the Workshop on Isolation and Integration for Dependable Systems (IIDS '10) (EuroSys 2010 Paris 13.04.2010). New York : ACM, 2010, S. -. - ISBN 978-1-4503-0120-6 (BibTeX)

Stilkerich, Isabella ; Stilkerich, Michael ; Wawersich, Christian ; Schröder-Preikschat, Wolfgang: KESO: An Open-Source Multi-JVM for Deeply Embedded Systems. In: Kalibera, Tomas ; Vitek, Jan (Veranst.) : Proceedings of the 8th International Workshop on Java Technologies for Real-Time and Embedded Systems (The 8th International Workshop on Java Technologies for Real-time and Embedded Systems (JTRES 2010) Prague, Czech Republic 19.8.-21.8.2010). New York, NY, USA : ACM, 2010, S. 109-119 -- Best Papers at JTRES. - ISBN 978-1-4503-0122-0
[doi>10.1145/1850771.1850788] (BibTeX)

Stilkerich, Michael ; Lohmann, Daniel ; Schröder-Preikschat, Wolfgang: Memory Protection at Option. In: ACM (Hrsg.) : Proceedings of the 1st Workshop on Critical Automotive applications: Robustness & Safety (Eighth European Dependable Computing Conference Valencia, Spain 26.04.2010). New York : ACM, 2010, S. 17-20. - ISBN 978-1-60558-915-2
[doi>10.1145/1772643.1772649] (BibTeX)

2009

Wawersich, Christian Walter Alois: KESO: Konstruktiver Speicherschutz für Eingebettete Systeme. Erlangen, Friedrich-Alexander-Universität Erlangen-Nürnberg, Diss., 2009. - 179 Seiten. (BibTeX)

2007

Wawersich, Christian ; Stilkerich, Michael ; Schröder-Preikschat, Wolfgang: An OSEK/VDX-based Multi-JVM for Automotive Appliances. In: Springer Boston (Hrsg.) : Embedded System Design: Topics, Techniques and Trends (International Embedded Systems Symposium 2007 Irvine, CA , USA 29.05.2007). Boston : Springer Boston, 2007, S. 85-96. (IFIP International Federation for Information Processing) - ISBN 978-0-387-72257-3
[doi>10.1007/978-0-387-72258-0_8] (BibTeX)

Wawersich, Christian ; Stilkerich, Michael: KESO: A Type-Safe Middleware for Embedded Systems. In: Gross, Thomas (Veranst.) : Proceedings of the Poster Session of the EuroSys 2007 Conference (EuroSys-Poster 2007) (EuroSys 2007 Lisbon, Portugal March 2007). New York : ACM, 2007, S. 1. (BibTeX)

2006

Wawersich, Christian ; Stilkerich, Michael ; Ellner, Ralf ; Schröder-Preikschat, Wolfgang: A Distributed Middleware for Automotive Applications. In: Di Natale, Marco ; Almeida, Luis (Hrsg.) : Proceedings of the 1st Workshop on Models and Analysis for Automotive Systems (1st Workshop on Models and Analysis for Automotive Systems Rio de Janeiro 05.12.2006). Bd. 1, 1. Aufl. 2006, S. 25-28. (BibTeX)

Stilkerich, Michael ; Wawersich, Christian ; Schröder-Preikschat, Wolfgang ; Gal, Andreas ; Franz, Michael: An OSEK/VDX API for Java. In: ACM (Hrsg.) : Proceedings of the 3rd Workshop on Programming Languages and Operating Systems (ASPLOS XII San Jose 22.10.2006). New York : ACM, 2006, S. 13-17. - ISBN 1-59593-577-0
[doi>10.1145/1215995.1215999] (BibTeX)

PhD Theses

(automatically exported by UnivIS)

Stilkerich, Michael: Memory Protection at Option - Application-Tailored Memory Safety in Safety-Critical Embedded Systems. Erlangen, Friedrich-Alexander-Universität Erlangen-Nürnberg, Ph.D. thesis, 2012. - 191 pages.

Wawersich, Christian Walter Alois: KESO: Konstruktiver Speicherschutz für Eingebettete Systeme. Erlangen, Friedrich-Alexander-Universität Erlangen-Nürnberg, Ph.D. thesis, 2009. - 179 pages.

Stilkerich, Isabella: Cooperative Memory Management in Safety-Critical Embedded Systems. Erlangen, Friedrich-Alexander-Universität Erlangen-Nürnberg, Ph.D. thesis, 2016. - 188 pages.

Theses

(automatically exported by UnivIS)

Open Topics

Ongoing Theses

Completed Theses

A Control-Flow-Sensitive Analysis and Optimization Framework for the KESO Multi-JVM (KESO-Reachability)
Student: Christoph Erhardt (handed in on 31.3.2011, Thesis file...)
Supervisors: Dr.-Ing. Michael Stilkerich, Prof. Dr.-Ing. Wolfgang Schröder-Preikschat


A Fragmentation-Tolerant Real-Time Garbage Collector for the KESO JVM (Eine fragmentierungstolerante Speicherbereinigung für die KESO Java Virtual Machine) (KESO-FRAGGC)
Student: Michael Strotz (handed in on 31.03.2014, Thesis file...)
Supervisors: Dr.-Ing. Isabella Stilkerich, Dipl.-Inf. Christoph Erhardt


An OSEK Operating System Interface and Memory Management for Java (Eine OSEK Betriebssystemschnittstelle und Speicherverwaltung für Java) (KESO/API)
Student: Michael Stilkerich (handed in on 09.08.2006, Thesis file...)
Supervisors: Dr.-Ing. Christian Wawersich, Gal, Andreas, Prof. Dr.-Ing. Wolfgang Schröder-Preikschat


Automated Application of Fault Tolerance Measures in the KESO Multi-JVM (Automatische Anwendung von Fehlertoleranz-Techniken in der KESO Multi-JVM) (KESO-FTAPP)
Student: Christian Metz (handed in on 19.02.2016 )
Supervisors: Dr.-Ing. Peter Ulbrich, Dr.-Ing. Isabella Stilkerich, Dipl.-Inf. Christoph Erhardt


Automatic Object Inlining in KESO (Automatisches Einbetten von Objekten in KESO) (KESO-OI)
Student: Christian Bay (handed in on 31.5.2015, Thesis file...)
Supervisors: Dipl.-Inf. Christoph Erhardt, Dr.-Ing. Isabella Stilkerich


Compiler-Assisted Memory Management Using Escape Analysis in the KESO JVM (Übersetzer-gestützte Speicherverwaltung durch Fluchtanalyse in der KESO JVM) (KESO-EEA)
Student: Clemens Lang (handed in on 30.06.2014, Thesis file...)
Supervisors: Dr.-Ing. Isabella Stilkerich, Dipl.-Inf. Christoph Erhardt


Control-Flow Monitoring for KESO Applications (Ein Kontrollflussüberwachungsdienst für KESO Anwendungen ) (KESO-FTCF)
Student: Simon Schuster (handed in on 31.5.2015, Thesis file...)
Supervisors: Dr.-Ing. Peter Ulbrich, Dr.-Ing. Isabella Stilkerich, Dipl.-Inf. Christoph Erhardt


Design and Implementation of a Fault Tolerant Garbage Collector for the KESO JVM (Design und Implementierung einer fehlertoleranten Speicherbereinigung für die KESO-JVM) (KESO-FTGC)
Student: Philip Taffner (handed in on 12.02.2014, Thesis file...)
Supervisors: Dr.-Ing. Isabella Stilkerich, Dipl.-Inf. Christoph Erhardt, Dr.-Ing. Martin Hoffmann


Design of an OSEK/VDX-compatible System API for Linux (KESO/LINUX)
Student: Johannes Bauer (handed in on 27.09.2007, Thesis file...)
Supervisors: Dr.-Ing. Michael Stilkerich, Dr.-Ing. Christian Wawersich


Entwicklung und Implementierung eines grafischen Konfigurationswerkzeugs für KESO (KESO/GUI)
Student: Wilhelm Haas (handed in on 10.7.2007 )
Supervisors: Dr.-Ing. Michael Stilkerich, Dr.-Ing. Christian Wawersich


Entwurf eines OSEK Adaption Layers für das Betriebssystem EPOS (KESO/EPOS)
Supervisors: Prof. Dr.-Ing. Wolfgang Schröder-Preikschat, Prof. A. Fröhlich (Univ. Brazil), Dr.-Ing. Christian Wawersich, Dr.-Ing. Michael Stilkerich


Implementation and Evaluation of Fast Untyped Memory in a Java Virtual Machine (Implementierung und Auswertung von schnellem untypisiertem Speicher in einer JVM) (untyped-mem)
Student: Isabella Stilkerich (handed in on 15.07.2006, Thesis file...)
Supervisors: Gal, Andreas, Dr.-Ing. Christian Wawersich, Prof. Dr.-Ing. Wolfgang Schröder-Preikschat, Prof. Michael Franz


Implementierung der CiAO-Speicherschutz-HAL für die Speicherschutzeinheit der Cortex-M3-Architektur (CiAO/CortexMPU)
Supervisors: Dr.-Ing. Michael Stilkerich, Dr.-Ing. Isabella Stilkerich


Improved Stack Allocation Using Escape Analysis in the KESO Multi-JVM (KESO/EStackAlloc)
Student: Clemens Lang (handed in on 01.10.2012, Thesis file...)
Supervisors: Dipl.-Inf. Christoph Erhardt, Dr.-Ing. Michael Stilkerich


Memory Management Profiling and Generational Garbage Collection in KESO (KESO-MMProf)
Student: Michael Strotz (handed in on 31.08.2013 )
Supervisors: Dr.-Ing. Isabella Stilkerich, Dipl.-Inf. Christoph Erhardt, Dr.-Ing. Christian Wawersich


Portable Ausführung von Altanwendungen durch Laufzeitkompilierung zu Java Bytecode (jxemu)
Student: Michael Stilkerich (handed in on 30.06.2005, Thesis file...)
Supervisors: Gal, Andreas, Dr.-Ing. Christian Wawersich, Franz, Michael, Prof. Dr.-Ing. Wolfgang Schröder-Preikschat


Portierung und Evaluation von Systemkomponenten des I4Copter-Frameworks auf die KESO VM
Supervisors: Prof. Dr.-Ing. Wolfgang Schröder-Preikschat, Dr.-Ing. Michael Stilkerich


Remote Method Invocation for a Distributed Middleware on heterogeneous Controllers (KESO/RMI)
Student: Ralf Ellner (handed in on 30.3.2007 )
Supervisors: Prof. Dr.-Ing. Wolfgang Schröder-Preikschat, Dr.-Ing. Christian Wawersich, Dr.-Ing. Michael Stilkerich


Replication in the KESO Multi-JVM (Replikation in der KESO Multi-JVM) (KESO-FTRED)
Student: Tobias Engelhardt (handed in on 31.08.2013 )
Supervisors: Dr.-Ing. Isabella Stilkerich, Dipl.-Inf. Christoph Erhardt


ROM Allocation of Constant Data in a JVM for Embedded Systems (ROM-Allokation von konstanten Objekten in einer JVM für eingebettete Systeme) (KESO/ROM_Objects)
Student: Simon Kuhnle (handed in on 12.2.2014, Thesis file...)
Supervisors: Dipl.-Inf. Christoph Erhardt, Dr.-Ing. Isabella Stilkerich


Semi-Automatische Anwendung von graduellem software-basierten Speicherschutz in der KESO Multi-JVM (KESO-GRADMP)
Student: Michael Strotz (handed in on 9.1.2012, Thesis file...)
Supervisors: Dr.-Ing. Michael Stilkerich


Type-Safe System Services for the KESO Runtime Environment (Typsichere Systemdienste für die KESO-Laufzeitumgebung) (KESO-JSYS)
Student: Martin Hofmann (handed in on 31.5.2015, Thesis file...)
Supervisors: Dr.-Ing. Isabella Stilkerich, Dipl.-Inf. Christoph Erhardt


Variable Classification by Static Analysis in an AUTOSAR-like Environment (Variablenklassifizierung durch statische Analyse in einer AUTOSAR Umgebung) (SCHAEFFLER-VC)
Student: Felix Bräunling (handed in on 30.09.2018, Thesis file...)
Supervisors: Dr.-Ing. Isabella Stilkerich, Dr.-Ing. Peter Ulbrich, Stefanov, Nikolay, Dipl.-Ing. Tobias Klaus

  Contact Last modified: 2018-03-28 14:14   MS, Wa