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 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).
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.
License / Download
KESO is distributed under the terms of the GNU Lesser General Public License, version 3.
KESO is available as a snapshot
(2011-10-05).
The Documentation area contains various information that should help you
getting started with KESO.
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)
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, 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)
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)