Exploring an Aspect-Oriented Approach to Operating System Code
Yvonne Coady, Gregor Kiczales, Michael J. Feeley · 2007
This paper presents the initial results of our experiment using an aspect-oriented approach to simplify operating system code. The intuition behind this work is that complexity comes from crosscutting concerns. In this experiment, we re-implemented prefetching for page fault handling and file system read requests using a hypothetical language, AspectC -- a variant of AspectJ for C -- and hand-compiled the code to C. We believe that the aspect-oriented code is easier to understand, and in particular that it is easier to understand the interaction between the virtual memory and file system prefetching mechanisms. 1 Introduction Operating systems have a problem with modularity. Complex interactions between components of the system blur module boundaries and make them highly susceptible to erosion. A study of OS/360 done in the early 70s [7] showed that the number of modules involved in a change rose from 14.6% in releases 2--6, to 31.9% in releases 12--16 due to "unintentional interact...