Developers often extend large, C-based software systems, including operating systems, databases, and web servers, in an ad-hoc manner to meet their performance and functionality requirements. Many of the extensions represent crosscutting concerns in that they do not fit within a single program module and are scattered throughout the source. Maintaining and applying such extensions with commonly used tools, notably diff and patch, is time consuming and error prone. Furthermore, it is challenging to ensure correctness when composing multiple extensions. This work makes crosscutting concerns part of the architecture of C-based systems by leveraging aspect-oriented software development techniques. Specifically, extensions are captured as aspects, which provide a language-supported methodology for expressing crosscutting concerns. The work also builds a new set of tools that extract, inject, and translate system extensions represented as aspects. Moreover, the work develops static program analysis technology that aids in the semantic separation of extension from mainline code and safe composition of extensions. To validate the tools' effectiveness, the PIs conduct case studies on the Linux kernel and open source extensions such as the Nooks system that provides device driver isolation and recovery. For the educational community, the work offers an attractive approach to hands-on learning about real-world systems. For the system software community, the work offers the ability to more rapidly and seamlessly move from idea to design to implementation for new system-level extensions. Finally, for the broader community of commercial developers and their customers, the work offers a path to more flexible reuse of system software.

Agency
National Science Foundation (NSF)
Institute
Division of Computer and Network Systems (CNS)
Type
Standard Grant (Standard)
Application #
0615129
Program Officer
Mohamed G. Gouda
Project Start
Project End
Budget Start
2006-08-01
Budget End
2010-07-31
Support Year
Fiscal Year
2006
Total Cost
$301,451
Indirect Cost
Name
New York University
Department
Type
DUNS #
City
New York
State
NY
Country
United States
Zip Code
10012