Friedrich-Alexander-Universität Erlangen-Nürnberg  /   Technische Fakultät  /   Department Informatik

CiAO: An Aspect-Oriented Operating-System Family

CiAO is a family of research operating systems that has been developed from scratch using concepts of aspect-oriented programming (AOP) and software product-line engineering. CiAO targets the domain of hard real-time embedded systems, such as automotive and avionics applications. The CiAO-AS family member implements the automotive OSEK OS and AUTOSAR OS standards with configurable protection policies (memory protection, timing protection, and service protection). CiAO combines excellent configurability with a clear separation of concerns in the code (no #ifdef hell!) and a very competetive resource footprint of the resulting kernels.

Goals

Throughout the entire operating-system design cycle, we must be careful to separate policy decisions from implementation details (mechanisms). This separation allows maximum flexibility if policy decisions are to be changed later. (Silberschatz et al., “Operating System Concepts”, p. 72, 2005)
The primary goal of CiAO is architectural configurability – that is, configurability of even fundamental, architectural kernel policies, like synchronization or protection. Further engineering goals are efficiency with respect to hardware resources, configurability in general, and portability with respect to hardware platforms. The approach to achieve these goals in the implementation is aspect-aware operating-system development. The basic idea behind aspect-aware operating-system development is the strict decoupling of policies and mechanisms by using aspects as the primary composition technique: Kernel mechanisms are glued together and extended by binding, policy or extension aspects; they support these aspects by ensuring that all relevant internal control-flow transitions are available as potential join points. To learn more about these ideas, take a look at our USENIX '09, AOSD '11 and TAOSD IX papers.

Besides the OS kernel, the CiAO design approach has also been applied to the development of a TCP/IP stack. The CiAO/IP stack outperforms leading IP stack implementations for deeply embedded systems (uIP, lwIP) with respect to code size, throughput, and energy. CiAO/IP is part of CiAO, but can also be used independently. To learn more about CiAO/IP, take a look at our MobiSys '12 paper.

Applications and Related Projects

  • CiAO and CiAO/IP are used as operating system and communication stack in our I4Copter and I4Nano quadrocopter platforms on an Infineon TriCore 1796 and an ARM Cortex M3. An x86 version is available for educational purposes.

  • The development of CiAO is continued in the danceOS project , which targets dependable embedded systems on unreliable hardware. Within danceOS , CiAO will be hardened against hardware faults by further extension aspects and provide novel multi-core OS abstractions to serve dependable applications.

  • A direct descendant of CiAO in this respect is the dependable dosek kernel, which employs more advanced whole-program optimizations and generation of dependability aspects.

  • The design approach of aspect-aware operating-system development is continued in the iRTSS project (SFB/TRR 89 Invasive Computing, Project C1), which targets future massively-parallel multi/many-core systems.

  • The AspectC++ language and aspect weaver provides the language foundation for CiAO aspects.

  • The Sloth minimal effort kernel for embedded systems is a descendant of CiAO, which provides even finer-grained automatic tailoring with respect to the underlying hardware platform.

  • The KESO multi-JVM for deeply embedded systems runs on top of CiAO to provide fine-grained memory protection and a typesafe run-time environment even on resource-thrifty embedded sysetms.

Selected Publications

Please look here for the complete list of CiAO publications.

TAOSD IX

Lohmann, Daniel ; Spinczyk, Olaf ; Hofer, Wanja ; Schröder-Preikschat, Wolfgang: The Aspect-Aware Design and Implementation of the CiAO Operating-System Family. In: Transactions on Aspect-Oriented Software Development (TAOSD IX) (2012), No. 7271, pp 168-215
[doi>10.1007/978-3-642-35551-6_5] (BibTeX)

MobiSys '12

Borchert, Christoph ; Lohmann, Daniel ; Spinczyk, Olaf: CiAO/IP: A Highly Configurable Aspect-Oriented IP Stack. In: Seshan, Srinivasan ; Zhong, Lin (Ed.) : MobiSys '12: Proceedings of the 10th international conference on Mobile systems, applications, and services (MobiSys '12 Low Wood Bay, Lake District, United Kingdom). New York, NY, USA : ACM Press, 2012, pp 435-448. - ISBN 978-1-4503-1301-8
[doi>10.1145/2307636.2307676] (BibTeX)

AOSD '11

Lohmann, Daniel ; Hofer, Wanja ; Schröder-Preikschat, Wolfgang ; Spinczyk, Olaf: Aspect-Aware Operating System Development. In: Chiba, Shigeru (Ed.) : Proceedings of the 10th International Conference on Aspect-Oriented Software Development (AOSD 2011) (10th International Conference on Aspect-Oriented Software Development (AOSD 2011) Porto de Galinhas, Brazil March 2011). New York, NY, USA : ACM Press, 2011, pp 69-80. - ISBN 978-1-4503-0605-8
[doi>10.1145/1960275.1960285] (BibTeX)

USENIX '09

Lohmann, Daniel ; Hofer, Wanja ; Schröder-Preikschat, Wolfgang ; Streicher, Jochen ; Spinczyk, Olaf: CiAO: An Aspect-Oriented Operating-System Family for Resource-Constrained Embedded Systems. In: USENIX Association (Ed.) : Proceedings of the 2009 USENIX Annual Technical Conference (USENIX 2009) (2009 USENIX Annual Technical Conference (USENIX 2009) San Diego, CA, USA June 2009). Berkeley, CA, USA : USENIX Association, 2009, pp 215-228. - ISBN 978-1-931971-68-3 (BibTeX)

EuroSys '06

Lohmann, Daniel ; Scheler, Fabian ; Tartler, Reinhard ; Spinczyk, Olaf ; Schröder-Preikschat, Wolfgang: A Quantitative Analysis of Aspects in the eCOS Kernel. In: European Chapter of ACM SIGOPS (Org.) : Proceedings of the EuroSys 2006 Conference (EuroSys 2006 Leuven, Belgium April 18-21, 2006). Belgium : ACM Press, 2006, pp 191-204. - ISBN 1-59593-322-0 (BibTeX)

People Involved in CiAO

Project Lead and Applicant

CiAO had partly been supported by the DFG (SCHR 603/4, 2004–2010).

Researchers

Research Students

Christian Dietrich

Theses

Please look here for the complete list of CiAO-related theses, including ongoing and finished works.

Open Topics