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

  • Daniel Lohmann
  • Olaf Spinczyk
  • Wanja Hofer
  • Wolfgang Schröder-Preikschat
Part of the Lecture Notes in Computer Science book series (LNCS, 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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)CrossRefGoogle Scholar
  2. 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. 3.
    AUTOSAR. Requirements on operating system (version 2.0.1). Technical report, Automotive Open System Architecture GbR (June 2006)Google Scholar
  4. 4.
    AUTOSAR. Specification of operating system (version 2.0.1). Technical report, Automotive Open System Architecture GbR (June 2006)Google Scholar
  5. 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)CrossRefGoogle Scholar
  6. 6.
    UC Berkeley. TinyOS homepage, http://www.tinyos.net
  7. 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. 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. 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)CrossRefGoogle Scholar
  10. 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)CrossRefGoogle Scholar
  11. 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)CrossRefGoogle Scholar
  12. 12.
    Czarnecki, K., Eisenecker, U.W.: Generative Programming. Methods, Tools and Applications. Addison-Wesley (May 2000)Google Scholar
  13. 13.
    Al Danial. CLOC – count lines of code homepage, http://cloc.sourceforge.net/
  14. 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)CrossRefGoogle Scholar
  15. 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)CrossRefGoogle Scholar
  16. 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. 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. 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. 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. 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)CrossRefGoogle Scholar
  21. 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. 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. 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. 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)CrossRefGoogle Scholar
  25. 25.
    Kleiman, S., Eykholt, J.: Interrupts as threads. ACM SIGOPS Operating Systems Review 29(2), 21–26 (1995)CrossRefGoogle Scholar
  26. 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. 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. 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)CrossRefGoogle Scholar
  29. 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)CrossRefGoogle Scholar
  30. 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. 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. 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. 33.
    Love, R.: Linux Kernel Development, 2nd edn. Novell Press (2005)Google Scholar
  34. 34.
    Neville-Neil, G.V., McKusick, M.K.: The Design and Implementation of the FreeBSD Operating System. Addison-Wesley (2004)Google Scholar
  35. 35.
    Massa, A.: Embedded Software Development with eCos. New Riders (2002)Google Scholar
  36. 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. 37.
    Parnas, D.L.: Some hypothesis about the “uses” hierarchy for operating systems. Technical report, TH Darmstadt, Fachbereich Informatik (1976)Google Scholar
  38. 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)CrossRefGoogle Scholar
  39. 39.
    Rubini, A., Corbet, J.: Linux Device Drivers. O’Reilly (2001)Google Scholar
  40. 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. 41.
    Schröder-Preikschat, W.: The Logical Design of Parallel Operating Systems. Prentice Hall PTR (1994)Google Scholar
  42. 42.
    Solomon, D.A., Russinovich, M.: Inside Microsoft Windows 2000, 3rd edn. Microsoft Press (2000)Google Scholar
  43. 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. 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. 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)CrossRefGoogle Scholar
  46. 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)CrossRefGoogle Scholar
  47. 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)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Daniel Lohmann
    • 1
  • Olaf Spinczyk
    • 2
  • Wanja Hofer
    • 1
  • Wolfgang Schröder-Preikschat
    • 1
  1. 1.Friedrich-Alexander-Universität Erlangen-NürnbergGermany
  2. 2.Technische Universität DortmundGermany

Personalised recommendations