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.
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
Please look here for the complete list of CiAO publications.
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
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
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
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)
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)