ABSTRACT
The architecture of an operating system, e.g. micro kernel or monolithic kernel, is usually seen as something static. Even during the long lasting evolution of operating system code it is extremely hard and, thus, expensive to change the architecture. However, our experience is that architectural evolution is often required and an architecture-neutral way to develop operating system components should be found. After analyzing why architectural flexibility is so difficult to achieve, we propose Aspect-Oriented Programming (AOP) as a solution. An example from the PURE OS family, which is implemented in an aspect-oriented programming language called AspectC++, will demonstrate the usefulness of the approach, which allows to separate the code that implements architectural properties from the core functionality.
- D. Beuche, A. A. Fröhlich, R. Meyer, H. Papajewski, F. Schön, W. Schröder-Preikschat, O. Spinczyk, and U. Spinczyk. On architecture transparency in operating systems. In Proceedings of the 9th ACM SIGOPS European Workshop "Beyond the PC: New Challenges for the Operating System", pages 147--152, Kolding, Denmark, Sept. 2000. Google ScholarDigital Library
- D. Beuche, A. Guerrouat, H. Papajewski, W. Schröder-Preikschat, O. Spinczyk, and U. Spinczyk. The PURE family of object-oriented operating systems for deeply embedded systems. In Proceedings of the 2nd IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC'99), pages 45--53, St Malo, France, May 1999. Google ScholarDigital Library
- Y. Coady, G. Kiczales, M. Feeley, and G. Smolyn. Using AspectC to improve the modularity of path-specific customization in operating system code. In Proceedings of the Joint European Software Engineering Conference (ESEC) and 9th ACM SIGSOFT Internation Symposium on the Foundations of Software Engineering (FSE-9), 2001. Google ScholarDigital Library
- J.-P. Fassino, J.-B. Stefani, J. Lawall, and G. Muller. THINK: A software framework for component-based operating system kernels. In Proceeding of the 2002 USENIX Technical Conference, pages 73--86. USENIX Association, June 2002. Google ScholarDigital Library
- G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J.-M. Loingtier, and J. Irwin. Aspect-oriented programming. In M. Aksit and S. Matsuoka, editors, Proceedings of the 11th European Conference on Object-Oriented Programming (ECOOP '97), volume 1241 of Lecture Notes in Computer Science, pages 220--242. Springer-Verlag, June 1997.Google Scholar
- D. Lohmann and O. Spinczyk. Architecture-Neutral Operating System Components. In 19th ACM Symposium on Operating System Principles (SOSP'03), WiP session, 2003.Google Scholar
- P. Netinant, C. A. Constantinides, T. Elrad, and M. E. Fayad. Supporting aspectual decomposition in the design of operating systems. In Proceeding of the 3rd ECOOP Workshop on Object-Orientation and Operating Systems (ECOOP-OOOSWS'2000), pages 38--46. Universidad de Oviedo, June 2000. ISBN 84-8317-222-4.Google Scholar
- O. Spinczyk, A. Gal, and W. Schröder-Preikschat. AspectC++: An aspect-oriented extension to C++. In Proceedings of the 40th International Conference on Technology of Object-Oriented Languages and Systems (TOOLS Pacific 2002), pages 53--60, Sydney, Australia, Feb. 2002. Google ScholarDigital Library
- Using AOP to develop architectural-neutral operating system components
Recommendations
The Linux Operating System
The enormous consumer market for IBM PCs and compatibles has made them affordable. Now, with a free operating system called Linux, these inexpensive machines can be converted into powerful workstations for teaching, research, and software development. ...
Pluggable AOP: designing aspect mechanisms for third-party composition
Proceedings of the 20th annual ACM SIGPLAN conference on Object oriented programming systems languages and applicationsStudies of Aspect-Oriented Programming (AOP) usually focus on a language in which a specific aspect extension is integrated with a base language. Languages specified in this manner have a fixed, non-extensible AOP functionality. This paper argues the ...
Comments