Exploring an Aspect-Oriented Approach to OS Code

Operating system code is complex. But, while substantial complexity is inherent to this domain, we believe that other complexity is caused by modularity problems. In this paper, we explore aspect-oriented programming as a means of making this kind of complexity unnecessary. We show that simple linguistic constructs can be used to modularize prefetching – an aspect of the system that is otherwise unclear because its implementation is spread out in the code.

[1]  Gregor Kiczales,et al.  The need for customizable operating systems , 1993, Proceedings of IEEE 4th Workshop on Workstation Operating Systems. WWOS-III.

[2]  Norman C. Hutchinson,et al.  Kea-a dynamically extensible and configurable operating system kernel , 1996, Proceedings of International Conference on Configurable Distributed Systems.

[3]  Peter Druschel,et al.  Efficient support for incremental customization of OS services , 1993, Proceedings Third International Workshop on Object Orientation in Operating Systems.

[4]  Margo I. Seltzer,et al.  A Comparison of OS Extension Technologies , 1996, USENIX Annual Technical Conference.

[5]  Brian N. Bershad,et al.  Extensibility safety and performance in the SPIN operating system , 1995, SOSP.

[6]  Werner Vogels,et al.  File system usage in Windows NT 4.0 , 1999, SOSP.

[7]  Meir M. Lehman,et al.  Program evolution , 1984, Inf. Process. Manag..

[8]  Larry L. Peterson,et al.  Beyond micro-kernel design: decoupling modularity and protection in Lipto , 1992, [1992] Proceedings of the 12th International Conference on Distributed Computing Systems.

[9]  Cristina V. Lopes,et al.  Aspect-oriented programming , 1999, ECOOP Workshops.

[10]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.