Skip to main content

The Aspect-Aware Design and Implementation of the CiAO Operating-System Family

  • Chapter
Book cover Transactions on Aspect-Oriented Software Development IX

Part of the book series: Lecture Notes in Computer Science ((TAOSD,volume 7271))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Å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)

    Chapter  Google Scholar 

  2. 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)

    Google Scholar 

  3. AUTOSAR. Requirements on operating system (version 2.0.1). Technical report, Automotive Open System Architecture GbR (June 2006)

    Google Scholar 

  4. AUTOSAR. Specification of operating system (version 2.0.1). Technical report, Automotive Open System Architecture GbR (June 2006)

    Google Scholar 

  5. 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)

    Chapter  Google Scholar 

  6. UC Berkeley. TinyOS homepage, http://www.tinyos.net

  7. 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)

  8. 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)

    Google Scholar 

  9. 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)

    Chapter  Google Scholar 

  10. 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)

    Chapter  Google Scholar 

  11. 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)

    Chapter  Google Scholar 

  12. Czarnecki, K., Eisenecker, U.W.: Generative Programming. Methods, Tools and Applications. Addison-Wesley (May 2000)

    Google Scholar 

  13. Al Danial. CLOC – count lines of code homepage, http://cloc.sourceforge.net/

  14. 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)

    Chapter  Google Scholar 

  15. 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)

    Chapter  Google Scholar 

  16. Filman, R.E., Friedman, D.P.: Aspect-oriented programming is quantification and obliviousness. In: Workshop on Advanced SoC (OOPSLA 2000) (October 2000)

    Google Scholar 

  17. 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)

    Google Scholar 

  18. 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)

    Google Scholar 

  19. Groher, I., Baumgarth, T.: Aspect-orientation from design to code. In: Proceedings of the 2004 AOSD Early Aspects Workshop, AOSD-EA 2004 (March 2004)

    Google Scholar 

  20. 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)

    Chapter  Google Scholar 

  21. 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)

    Google Scholar 

  22. 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)

    Google Scholar 

  23. 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)

    Google Scholar 

  24. 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)

    Chapter  Google Scholar 

  25. Kleiman, S., Eykholt, J.: Interrupts as threads. ACM SIGOPS Operating Systems Review 29(2), 21–26 (1995)

    Article  Google Scholar 

  26. 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)

    Google Scholar 

  27. Liedtke, J.: On μ-kernel construction. In: Proceedings of the 15th ACM Symposium on Operating Systems Principles (SOSP 1995). ACM Press (December 1995)

    Google Scholar 

  28. 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)

    Chapter  Google Scholar 

  29. 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)

    Chapter  Google Scholar 

  30. 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)

    Google Scholar 

  31. 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)

    Google Scholar 

  32. 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)

    Google Scholar 

  33. Love, R.: Linux Kernel Development, 2nd edn. Novell Press (2005)

    Google Scholar 

  34. Neville-Neil, G.V., McKusick, M.K.: The Design and Implementation of the FreeBSD Operating System. Addison-Wesley (2004)

    Google Scholar 

  35. Massa, A.: Embedded Software Development with eCos. New Riders (2002)

    Google Scholar 

  36. 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)

  37. Parnas, D.L.: Some hypothesis about the “uses” hierarchy for operating systems. Technical report, TH Darmstadt, Fachbereich Informatik (1976)

    Google Scholar 

  38. 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)

    Chapter  Google Scholar 

  39. Rubini, A., Corbet, J.: Linux Device Drivers. O’Reilly (2001)

    Google Scholar 

  40. Schröder, W.: Eine Familie von UNIX-ähnlichen Betriebssystemen – Anwendung von Prozessen und des Nachrichtenübermittlungskonzeptes beim strukturierten Betriebssystementwurf (December 1986)

    Google Scholar 

  41. Schröder-Preikschat, W.: The Logical Design of Parallel Operating Systems. Prentice Hall PTR (1994)

    Google Scholar 

  42. Solomon, D.A., Russinovich, M.: Inside Microsoft Windows 2000, 3rd edn. Microsoft Press (2000)

    Google Scholar 

  43. 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)

    Google Scholar 

  44. 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)

    Google Scholar 

  45. 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)

    Chapter  Google Scholar 

  46. 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)

    Chapter  Google Scholar 

  47. 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)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics