The Design of Application-Tailorable Operating System Product Lines

  • Daniel Lohmann
  • Wolfgang Schröder-Preikschat
  • Olaf Spinczyk
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3956)


System software for deeply embedded devices has to cope with a broad variety of requirements and platforms, but especially with strict resource constraints. To compete against proprietary systems (and thereby to facilitate reuse), an operating system product line for deeply embedded systems has to be highly configurable and tailorable. It is therefore crucial that all selectable and configurable features can be encapsulated into fine-grained, exchangeable and reusable implementation components. However, the encapsulation of non-functional properties is often limited, due to their cross-cutting character. Fundamental system policies, like synchronization or activation points for the scheduler, have typically to be reflected in many points of the operating system component code. The presented approach is based on feature modeling, C++ class composition and overcomes the above mentioned problems by means of aspect-oriented programming (AOP). It facilitates a fine-grained encapsulation and configuration of even non-functional properties in system software.


Embed System Software Product Line Program Family Processor State Embed Operating System 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
  2. 2.
    OSEK/VDX standard,
  3. 3.
    Åberg, R.A., Lawall, J.L., Südholt, M., Muller, G., Meur, A.-F.L.: On the automatic evolution of an os kernel using temporal logic and aop. In: 18th IEEE Int. Conf. on Automated Software Engineering (ASE 2003), Montreal, Canada, pp. 196–204. IEEE, Los Alamitos (2003)CrossRefGoogle Scholar
  4. 4.
    Beuche, D.: Variant management with pure:variants. Technical report, puresystems GmbH (2003),
  5. 5.
    Beuche, D., Guerrouat, A., Papajewski, H., Schröder-Preikschat, W., Spinczyk, O., Spinczyk, U.: The PURE family of object-oriented operating systems for deeply embedded systems. In: 2nd IEEE Int. Symp. on OO Real-Time Distributed Computing (ISORC 1999), St Malo, France, May 1999, pp. 45–53 (1999)Google Scholar
  6. 6.
    Beuche, D., Spinczyk, O., Schröder-Preikschat, W.: Fine-grained application specific customization for embedded software. In: Proceedings of the International IFIP TC10 Workshop on Distributed and Parallel Embedded Systems (DIPES 2002), Montreal, Canada, pp. 141–151. Kluwer Academic Publishers, Dordrecht (2002)Google Scholar
  7. 7.
    Coady, Y., Kiczales, G.: Back to the future: A retroactive study of aspect evolution in operating system code. In: Akşit, M. (ed.) 2nd Int. Conf. on Aspect-Oriented Software Development (AOSD 2003), Boston, MA, USA, pp. 50–59. ACM, New York (2003)CrossRefGoogle Scholar
  8. 8.
    Coady, Y., Kiczales, G., Feeley, M., Smolyn, G.: Using AspectC to improve the modularity of path-specific customization in operating system code. In: ESEC/FSE 2001 (2001)Google Scholar
  9. 9.
    Colyer, A., Clement, A.: Large-scale AOSD for middleware. In: Lieberherr, K. (ed.) 3rd Int. Conf. on Aspect-Oriented Software Development (AOSD 2004), Lancaster, UK, pp. 56–65. ACM, New York (2004)CrossRefGoogle Scholar
  10. 10.
    Colyer, A., Clement, A., Bodkin, R., Hugunin, J.: Using AspectJ for component integration in middleware. In: 18th ACM Conf. on OOP, Systems, Languages, and Applications (OOPSLA 2003), pp. 339–344. ACM, New York (2003)Google Scholar
  11. 11.
    Cordsen, J., Schröder-Preikschat, W.: Object-Oriented Operating System Design and the Revival of Program Families. In: 2nd Int. W’shop on Object Orientation in Operating Systems (I-WOOOS 1991), Palo Alto, CA, October 17-18, pp. 24–28 (1991)Google Scholar
  12. 12.
    Czarnecki, K., Eisenecker, U.W.: Generative Programming. Methods, Tools and Applications. AW (May 2000)Google Scholar
  13. 13.
    Devillechaise, M., Menaud, J., Muller, G., Lawall, J.: Web cache prefetching as an aspect: Towards a dynamic-weaving based solution. In: Akşit, M. (ed.) 2nd Int. Conf. on Aspect-Oriented Software Development (AOSD 2003), Boston, MA, USA, pp. 110–119. ACM, New York (2003)CrossRefGoogle Scholar
  14. 14.
    Driesen, K., Hölzle, U.: The direct cost of virtual function calls in C++. In: 11th ACM Conf. on OOP, Systems, Languages, and Applications (OOPSLA 1996) (October 1996)Google Scholar
  15. 15.
    Fiuczynski, M., Grimm, R., Coady, Y., Walker, D.: Patch (1) considered harmful. In: 10th W’shop on Hot Topics in Operating Systems (HotOS 2005). USENIX (2005)Google Scholar
  16. 16.
    Gal, A., Schröder-Preikschat, W., Spinczyk, O.: Open components. In: Proceedings of the First OOPSLA Workshop on Language Mechanisms for Programming Software Components, Tampa, Florida, October 2001, pp. 75–78 (2001)Google Scholar
  17. 17.
    Habermann, A.N., Flon, L., Cooprider, L.: Modularization and Hierarchy in a Family of Operating Systems. CACM 19(5), 266–272 (1976)CrossRefMATHGoogle Scholar
  18. 18.
    Harrison, W., Ossher, H.: Subject-oriented programming—a critique of pure objects. In: 8th ACM Conf. on OOP, Systems, Languages, and Applications (OOPSLA 1993), September 1993, pp. 411–428 (1993)Google Scholar
  19. 19.
    Hunleth, F., Cytron, R.: Footprint and feature management using aspectoriented programming techniques. In: 2002 Joint LCTES & SCOPES Conferences (LCTES/SCOPES 2002), Berlin, Germany, pp. 38–45. ACM, New York (2002)Google Scholar
  20. 20.
    Kahn, J.M., Katz, R.H., Pister, K.S.J.: Next century challenges: Mobile networking for “smart dust”. In: International Conference on Mobile Computing and Networking (MOBICOM 1999), pp. 271–278.Google Scholar
  21. 21.
    Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., 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
  22. 22.
    Lauer, H.C., Needham, R.M.: On the duality of operating system structures. ACM OSR 13(2), 3–19 (1979)Google Scholar
  23. 23.
    Lohmann, D., Schröder-Preikschat, W., Spinczyk, O.: Functional and nonfunctional properties in a family of embedded operating systems. In: 10th IEEE Int. W’shop on Object-oriented Real-time Dependable Systems (WORDS 2005), Sedona, AZ, USA, February 2005, pp. 413–420 (2005)Google Scholar
  24. 24.
    Lohmann, D., Spinczyk, O.: Architecture-Neutral Operating System Components. In: 23rd ACM Symp. on OS Principles (SOSP 2003), October 2003, WiP presentation (2003)Google Scholar
  25. 25.
    Lohmann, D., Spinczyk, O., Schröder-Preikschat, W.: On the configuration of non-functional properties in operating system product lines. In: 4th AOSD W’shop on Aspects, Components and Patterns for Infrastructure Software (AOSD-ACP4IS 2005), Chicago, IL, USA, pp. 19–25. Northeastern University, Boston (NU-CCIS-05-03) (2005)Google Scholar
  26. 26.
    Matsuoka, S., Yonezawa, A.: Analysis of inheritance anomaly in object-oriented concurrent programming languages. MIT Press, Cambridge (1993)Google Scholar
  27. 27.
    Parnas, D.L.: On the design and development of program families. IEEE TOSE SE-2(1), 1–9 (1976)Google Scholar
  28. 28.
    Rashid, A., Leidenfrost, N.: Supporting flexible object database evolution with aspects. In: Karsai, G., Visser, E. (eds.) GPCE 2004. LNCS, vol. 3286, pp. 75–94. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  29. 29.
    Schön, F., Schröder-Preikschat, W., Spinczyk, O., Spinczyk, U.: On interrupttransparent synchronization in an embedded object-oriented operating system. In: 3rd IEEE Int. Symp. on OO Real-Time Distributed Computing (ISORC 2000), Newport Beach, CA, USA, March 2000, pp. 270–277 (2000)Google Scholar
  30. 30.
    Spinczyk, O., Lohmann, D.: Using AOP to develop architecture-neutral operating system components. In: 11th SIGOPS European W’shop, Leuven, Belgium, pp. 188–192. ACM, New York (2004)Google Scholar
  31. 31.
    Spinczyk, O., Lohmann, D., Urban, M.: Advances in AOP with AspectC++. In: Fujita, H., Mejri, M. (eds.) New Trends in Software Methodologies, Tools and Techniques (SoMeT 2005), Tokyo, Japan. Frontiers in Artificial Intelligence and Applications, vol. 129, pp. 33–53. IOS Press, Amsterdam (2005)Google Scholar
  32. 32.
    Tennenhouse, D.: Proactive computing. CACM, 43–45 (May 2000)Google Scholar
  33. 33.
    Tešanović, A., Sheng, K., Hansson, J.: Application-tailored database systems: a case of aspects in an embedded database. In: 8th Int. Database Engineering and Applications Symp (IDEAS 2004), Coimbra, Portugal. IEEE, Los Alamitos (2004)Google Scholar
  34. 34.
    Walls, C.: The Perfect RTOS, 2004. Embedded world (2004)Google Scholar
  35. 35.
    Weiser, M.: The computer for the 21st centrury. Scientific American 265(3), 94–104 (1991)CrossRefGoogle Scholar
  36. 36.
    Weiss, D.M., Lai, C.T.R.: Software Product-Line Engineering: A Family-Based Software Development Process. Addison-Wesley, Reading (1999)Google Scholar
  37. 37.
    Zhang, C., Jacobsen, H.-A.: Quantifying aspects in middleware platforms. In: 2nd Int. Conf. on Aspect-Oriented Software Development (AOSD 2003), pp. 130–139. ACM Press, New York (2003)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Daniel Lohmann
    • 1
  • Wolfgang Schröder-Preikschat
    • 1
  • Olaf Spinczyk
    • 1
  1. 1.Department of Computer SciencesFriedrich-Alexander University of Erlangen-NurembergErlangenGermany

Personalised recommendations