Friedrich-Alexander-Universität UnivisSucheDeutsch FAU-Logo
Techn. Fakultät Willkommen am Department Informatik FAU-Logo
Logo IMMD
Lehrstuhl für Informatik 4
 People
Department Informatik  >  Informatik 4  > CiAO

CiAO   (CiAO is Aspect-Oriented)

Aim of the CiAO project is the development of a fine-grained operating system product-line for embedded and deeply embedded systems. By using aspect-oriented programming techniques (namely AspectC++), a so far unreached level of granularity and variability should be achieved.

Motivation

Operating systems for embedded and deeply embedded devices have to scale with a very broad variety of requirements, coming both from the hardware and application level. Different hardware architectures and configurations have to be supported, while resources (in terms of memory, power consumption and CPU speed) are often strictly constrained. Applications typically have very different requirements to the services and strategies implemented by the underlying OS.This leads to a product-line approach, where the variability and commonality among OS family members is expressed by feature models. A variant management tool (namely pure::variants by pure-systems GmbH) is used to extract and statically configure the concrete operating system based on an application-specific feature selection.

The overall quality of an OS product-line depends mostly on the offered levels of variability and granularity. A crucial point is the mapping of all selectable and configurable features to their corresponding, well encapsulated implementation components. Especially the encapsulation of non-functional properties is often limited, due to their crosscutting character. Fundamental system policies, like synchronization or activation points for the scheduler, have typically to be reflected in many points of the OS component code. This makes it almost impossible to implement them as independent encapsulated entities and thereby restricts variability and granularity. Aspect-oriented programming (AOP) has proven to be a promising way to deal with crosscutting concerns. It allows encapsulating the implementations of crosscutting concerns in entities called as-pects, which are then woven into the OS component code (e.g. classes) at build time. A well-directed application of AOP principles in the development of OS product lines can therefore lead to a higher variability and granularity of the selectable OS features, as their implementations can not only be encapsulated by classes, but also by aspects. This potentially results in very flexible systems that offer configurability of even fundamental architectural properties.

Major Goals and Questions

Major goal of the CiAO project is the evaluation of AOP in the context of: operating systems, software product-lines, and the domain of deeply embedded devices.

  • Is AOP suitable for the goal of higher variability and granularity in system software product lines?
  • What are the costs (in terms of system resources such as memory or CPU speed) induced by AOP in this context? Is AOP affordable in a domain that is strongly driven by hardware cost pressure?
  • What are the principal limitations of configurability? Is it even possible to implement fundamental architectural properties of operating systems, such as isolation, interaction, or synchronization strategies in a configurable way?

Related Projects

  • KESO is a Java run-time environment providing software-based memory protection, targeting deeply embedded systems. By deploying KESO on CiAO, configurable hardware-based and software-based memory protection techniques are to be evaluated thoroughly.
  • The I4Copter project is to be used as a demonstrator for the CiAO OS platform.

Supporters

CiAO is partly supported by the DFG (German Research Council) under grant no. SCHR 603/4.

  Contact