Aspect-aware operating system development

The domain of operating systems has often been mentioned as an "ideal candidate" for the application of AOP; fundamental policies we find in these systems, such as synchronization or preemption, seem to be inherently cross-cutting in their implementation. Their clear separation into dedicated aspect modules should facilitate better evolvability and - the focus of this paper - configurability. Our experience with applying AOP to the domain of highly configurable embedded operating systems has shown, however, that these advantages can by no means be taken for granted. To reveal maximum configurability of central system policies, aspects and their potential interactions with the system have to be taken into account much earlier, that is, "from the very beginning". We propose the analysis and design process of aspect-aware development, which leads to such an "aspect-friendly" system structure and demonstrate its feasibility on the example of CiAO, an AUTOSAR-OS-compliant operating system that provides configurability of all fundamental system policies by means of AOP.

[1]  Ondrej Lhoták,et al.  Adding trace matching with free variables to AspectJ , 2005, OOPSLA '05.

[2]  Sven Apel,et al.  A Case Study Implementing Features Using AspectJ , 2007, 11th International Software Product Line Conference (SPLC 2007).

[3]  Friedrich Steimann,et al.  Domain models are aspect free , 2005, MoDELS'05.

[4]  Anthony Massa,et al.  Embedded Software Development with eCos , 2002 .

[5]  Olaf Spinczyk,et al.  Puma: An Aspect-Oriented Code Analysis and Manipulation Framework for C and C++ , 2011, LNCS Trans. Aspect Oriented Softw. Dev..

[6]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[7]  Gregor Kiczales,et al.  Back to the future: a retroactive study of aspect evolution in operating system code , 2003, AOSD '03.

[8]  Shigeru Chiba,et al.  A dynamic aspect-oriented system for OS kernels , 2006, GPCE '06.

[9]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[10]  Olaf Spinczyk,et al.  Generic Advice: On the Combination of AOP with Generative Programming in AspectC++ , 2004, GPCE.

[11]  Gunter Saake,et al.  On the impact of the optional feature problem: analysis and case studies , 2009, SPLC.

[12]  Wolfgang Schröder-Preikschat,et al.  CiAO: An Aspect-Oriented Operating-System Family for Resource-Constrained Embedded Systems , 2009, USENIX Annual Technical Conference.

[13]  Julia L. Lawall,et al.  On the automatic evolution of an OS kernel using temporal logic and AOP , 2003, 18th IEEE International Conference on Automated Software Engineering, 2003. Proceedings..

[14]  Daniel P. Friedman,et al.  Aspect-Oriented Programming is Quantification and Obliviousness , 2000 .

[15]  A. Nico Habermann,et al.  Modularization and hierarchy in a family of operating systems , 1976, CACM.

[16]  Robert Grimm,et al.  Patch (1) Considered Harmful , 2005, HotOS.

[17]  Robert Grimm,et al.  On the feasibility of an AOSD approach to Linux kernel extensions , 2008, ACP4IS@AOSD.

[18]  Bernd Freisleben,et al.  TOSKANA: A Toolkit for Operating System Kernel Aspects , 2006, LNCS Trans. Aspect Oriented Softw. Dev..

[19]  Wolfgang Schröder-Preikschat,et al.  A quantitative analysis of aspects in the eCos kernel , 2006, EuroSys.

[20]  Günter Kniesel,et al.  A Definition, Overview and Taxonomy of Generic Aspect Languages , 2006, Obj. Logiciel Base données Réseaux.

[21]  Steve R. Kleiman,et al.  Interrupts as threads , 1995, OPSR.

[22]  Yuanfang Cai,et al.  Modularity Analysis of Logical Design Models , 2006, 21st IEEE/ACM International Conference on Automated Software Engineering (ASE'06).

[23]  Olaf Spinczyk,et al.  Using AOP to develop architectural-neutral operating system components , 2004, EW 11.

[24]  Danilo Beuche,et al.  On architecture transparency in operating systems , 2000, EW 9.

[25]  Dean W. Gonzalez,et al.  “=” considered harmful , 1991, ALET.

[26]  Olaf Spinczyk,et al.  The design and implementation of AspectC++ , 2007, Knowl. Based Syst..

[27]  Danilo Beuche,et al.  The PURE family of object-oriented operating systems for deeply embedded systems , 1999, Proceedings 2nd IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC'99) (Cat. No.99-61702).