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 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. 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, the KESO building tool.

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

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 provides a per domain configurable heap management strategy (garbage collector).

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


Tobias Engelhard

Simon Kuhnle

Clemens Lang

Johannes Reim

Michael Strotz

Philip Taffner

Former members:
Harald Bauer
Magnus Rauer
Philipp Sommer

Publications

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 (LCTES 2013 Seattle, Washington, USA June 2013). 2013, S. to appear. - ISBN 978-1-4503-2085-6 (BibTeX)

2012

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

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.

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


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


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 Thomm (handed in on 15.07.2006, Thesis file...)
Supervisors: Prof. Dr.-Ing. Wolfgang Schröder-Preikschat, Prof. Michael Franz, Dr.-Ing. Christian Wawersich


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


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


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

  Contact Last modified: 2013-04-09 10:06   MS, Wa