Abstract
CiAO is the first operating-system family that has been developed with AOP concepts from the very beginning. By its aspect-aware design and implementation, CiAO reaches excellent configurability, separation of concerns, and low footprints in the resulting systems that outperform leading commercial implementations. CiAO implements the automotive operating-system standard OSEK/AUTOSAR OS and provides configurability of all fundamental system properties by means of AOP.
We describe the aspect-aware design approach and implementation idioms that led to this efficiency and flexibility. On the example of three larger case studies from CiAO, we demonstrate how AOP can be employed in this respect on different levels of complexity: From highly configurable, yet efficient low-level hardware abstractions over the implementation of central kernel policies up to the decomposition of a complete operating-system specification.
Our results show that by a consequent application of the aspect-aware approach, AOP becomes a promising technology to reach configurability, separation of concerns, and runtime/memory efficiency on all levels of operating-system development.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Åberg, R.A., Lawall, J.L., Südholt, M., Muller, G., Le Meur, A.-F.: On the automatic evolution of an OS kernel using temporal logic and AOP. In: Proceedings of the 18th IEEE International Conference on Automated Software Engineering (ASE 2003), pp. 196–204. IEEE Computer Society Press, Montreal (2003)
Accetta, M., Baron, R., Golub, D., Rashid, R., Tevanian, A., Young, M.: MACH: A New Kernel Foundation for UNIX Development. In: Proceedings of the USENIX Summer Conference, pp. 93–113. USENIX Association (June 1986)
AUTOSAR. Requirements on operating system (version 2.0.1). Technical report, Automotive Open System Architecture GbR (June 2006)
AUTOSAR. Specification of operating system (version 2.0.1). Technical report, Automotive Open System Architecture GbR (June 2006)
Baniassad, E., Clarke, S.: Theme: An approach for aspect-oriented analysis and design. In: Proceedings of the 26th International Conference on Software Engineering (ICSE 2004), pp. 158–167. IEEE Computer Society Press, Washington, DC (2004)
UC Berkeley. TinyOS homepage, http://www.tinyos.net
Beuche, D.: Variant management with pure:variants. Technical report, pure-systems GmbH (2006), http://www.pure-systems.com/fileadmin/downloads/pv-whitepaper-en-04.pdf (visited November 12, 2011)
Beuche, D., Fröhlich, A.A., Meyer, R., Papajewski, H., Schön, F., Schröder-Preikschat, W., Spinczyk, O., Spinczyk, U.: On architecture transparency in operating systems. In: Proceedings of the 9th ACM SIGOPS European Workshop Beyond the PC: New Challenges for the Operating System, pp. 147–152. ACM Press (September 2000)
Carzaniga, A., Di Nitto, E., Rosenblum, D.S., Wolf, A.L.: Issues in supporting event-based architectural styles. In: Proceedings of the 3rd International Workshop on Software Architecture (ISAW 1998), pp. 17–20. ACM Press, New York (1998)
Clarke, S., Walker, R.J.: Composition patterns: An approach to designing reusable aspects. In: Proceedings of the 23rd International Conference on Software Engineering (ICSE 2001), pp. 5–14. IEEE Computer Society Press, Washington, DC (2001)
Coady, Y., Kiczales, G.: Back to the future: A retroactive study of aspect evolution in operating system code. In: Akşit, M. (ed.) Proceedings of the 2nd International Conference on Aspect-Oriented Software Development (AOSD 2003), pp. 50–59. ACM Press, Boston (2003)
Czarnecki, K., Eisenecker, U.W.: Generative Programming. Methods, Tools and Applications. Addison-Wesley (May 2000)
Al Danial. CLOC – count lines of code homepage, http://cloc.sourceforge.net/
del Foyo, L.E.L., Mejia-Alvarez, P., de Niz, D.: Predictable interrupt management for real time kernels over conventional PC hardware. In: Proceedings of the 12th IEEE International Symposium on Real-Time and Embedded Technology and Applications (RTAS 2006), pp. 14–23. IEEE Computer Society Press, Los Alamitos (2006)
Engel, M., Freisleben, B.: TOSKANA: A Toolkit for Operating System Kernel Aspects. In: Rashid, A., Aksit, M. (eds.) Transactions on AOSD II. LNCS, vol. 4242, pp. 182–226. Springer, Heidelberg (2006)
Filman, R.E., Friedman, D.P.: Aspect-oriented programming is quantification and obliviousness. In: Workshop on Advanced SoC (OOPSLA 2000) (October 2000)
Fiuczynski, M., Grimm, R., Coady, Y., Walker, D.: Patch(1) considered harmful. In: Proceedings of the 10th Workshop on Hot Topics in Operating Systems (HotOS 2005). USENIX Association (2005)
Ford, B., Back, G., Benson, G., Lepreau, J., Lin, A., Shivers, O.: The Flux OSKit: A substrate for kernel and language research. In: Proceedings of the 16th ACM Symposium on Operating Systems Principles (SOSP 1997). ACM SIGOPS Operating Systems Review, pp. 38–51. ACM Press (October 1997)
Groher, I., Baumgarth, T.: Aspect-orientation from design to code. In: Proceedings of the 2004 AOSD Early Aspects Workshop, AOSD-EA 2004 (March 2004)
Gybels, K., Brichau, J.: Arranging language features for pattern-based crosscuts. In: Akşit, M. (ed.) Proceedings of the 2nd International Conference on Aspect-Oriented Software Development (AOSD 2003), pp. 60–69. ACM Press, Boston (2003)
Infineon Technologies AG, St.-Martin-Str. 53, 81669 München, Germany. TriCore 1 User’s Manual (V1.3.5), Volume 1: Core Architecture (February 2005)
Kästner, C., Apel, S., Batory, D.: A case study implementing features using AspectJ. In: Proceedings of the 11th Software Product Line Conference (SPLC 2007), pp. 223–232. IEEE Computer Society Press (2007)
Kästner, C., Apel, S., Saif ur Rahman, S., Rosenmüller, M., Batory, D., Saake, G.: On the impact of the optional feature problem: Analysis and case studies. In: Muthig, D., McGregor, J.D. (eds.) Proceedings of the 13th Software Product Line Conference (SPLC 2009), Carnegie Mellon University, Pittsburgh (2009)
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C.V., Loingtier, J.-M., Irwin, J.: Aspect-Oriented Programming. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)
Kleiman, S., Eykholt, J.: Interrupts as threads. ACM SIGOPS Operating Systems Review 29(2), 21–26 (1995)
Kniesel, G., Rho, T.: A definition, overview and taxonomy of generic aspect languages. L’Objet, Special Issue on Aspect-Oriented Software Development 11(2-3), 9–39 (2006)
Liedtke, J.: On μ-kernel construction. In: Proceedings of the 15th ACM Symposium on Operating Systems Principles (SOSP 1995). ACM Press (December 1995)
Lohmann, D., Blaschke, G., Spinczyk, O.: Generic Advice: On the Combination of AOP with Generative Programming in AspectC++. In: Karsai, G., Visser, E. (eds.) GPCE 2004. LNCS, vol. 3286, pp. 55–74. Springer, Heidelberg (2004)
Lohmann, D., Hofer, W., Schröder-Preikschat, W., Spinczyk, O.: Aspect-aware operating-system development. In: Chiba, S. (ed.) Proceedings of the 10th International Conference on Aspect-Oriented Software Development (AOSD 2011), pp. 69–80. ACM Press, New York (2011)
Lohmann, D., Hofer, W., Schröder-Preikschat, W., Streicher, J., Spinczyk, O.: CiAO: An aspect-oriented operating-system family for resource-constrained embedded systems. In: Proceedings of the 2009 USENIX Annual Technical Conference, pp. 215–228. USENIX Association, Berkeley (2009)
Lohmann, D., Scheler, F., Tartler, R., Spinczyk, O., Schröder-Preikschat, W.: A quantitative analysis of aspects in the eCos kernel. In: Berbers, Y., Zwaenepoel, W. (eds.) Proceedings of the ACM SIGOPS/EuroSys European Conference on Computer Systems (EuroSys 2006), pp. 191–204. ACM Press, New York (2006)
Lohmann, D., Streicher, J., Spinczyk, O., Schröder-Preikschat, W.: Interrupt synchronization in the CiAO operating system. In: Proceedings of the 6th AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software (AOSD-ACP4IS 2007), ACM Press, New York (2007)
Love, R.: Linux Kernel Development, 2nd edn. Novell Press (2005)
Neville-Neil, G.V., McKusick, M.K.: The Design and Implementation of the FreeBSD Operating System. Addison-Wesley (2004)
Massa, A.: Embedded Software Development with eCos. New Riders (2002)
OSEK/VDX Group. Operating system specification 2.2.3. Technical report, OSEK/VDX Group (February 2005), http://portal.osek-vdx.org/files/pdf/specs/os223.pdf (visited August 17, 2011)
Parnas, D.L.: Some hypothesis about the “uses” hierarchy for operating systems. Technical report, TH Darmstadt, Fachbereich Informatik (1976)
Reynolds, A., Fiuczynski, M.E., Grimm, R.: On the feasibility of an AOSD approach to Linux kernel extensions. In: Proceedings of the 7th AOSD Workshop on Aspects, Components, and Patterns for Infrastructure Software (AOSD-ACP4IS 2008), pp. 1–7. ACM Press, New York (2008)
Rubini, A., Corbet, J.: Linux Device Drivers. O’Reilly (2001)
Schröder, W.: Eine Familie von UNIX-ähnlichen Betriebssystemen – Anwendung von Prozessen und des Nachrichtenübermittlungskonzeptes beim strukturierten Betriebssystementwurf (December 1986)
Schröder-Preikschat, W.: The Logical Design of Parallel Operating Systems. Prentice Hall PTR (1994)
Solomon, D.A., Russinovich, M.: Inside Microsoft Windows 2000, 3rd edn. Microsoft Press (2000)
Spinczyk, O., Lohmann, D.: Using AOP to develop architecture-neutral operating system components. In: Proceedings of the 11th ACM SIGOPS European Workshop, pp. 188–192. ACM Press, New York (2004)
Spinczyk, O., Lohmann, D.: The design and implementation of AspectC++. Knowledge-Based Systems, Special Issue on Techniques to Produce Intelligent Secure Software 20(7), 636–651 (2007)
Steimann, F.: Domain Models Are Aspect Free. In: Briand, L.C., Williams, C. (eds.) MoDELS 2005. LNCS, vol. 3713, pp. 171–185. Springer, Heidelberg (2005)
Stein, D., Hanenberg, S., Unland, R.: A UML-based aspect-oriented design notation for AspectJ. In: Proceedings of the 1st International Conference on Aspect-Oriented Software Development (AOSD 2002), pp. 106–112. ACM Press, New York (2002)
Yanagisawa, Y., Kourai, K., Chiba, S., Ishikawa, R.: A dynamic aspect-oriented system for OS kernels. In: Proceedings of the 6th International Conference on Generative Programming and Component Engineering (GPCE 2006), pp. 69–78. ACM Press, New York (2006)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Lohmann, D., Spinczyk, O., Hofer, W., Schröder-Preikschat, W. (2012). The Aspect-Aware Design and Implementation of the CiAO Operating-System Family. In: Leavens, G.T., Chiba, S., Haupt, M., Ostermann, K., Wohlstadter, E. (eds) Transactions on Aspect-Oriented Software Development IX. Lecture Notes in Computer Science, vol 7271. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-35551-6_5
Download citation
DOI: https://doi.org/10.1007/978-3-642-35551-6_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-35550-9
Online ISBN: 978-3-642-35551-6
eBook Packages: Computer ScienceComputer Science (R0)