Using a Low-Level Virtual Machine to Improve Dynamic Aspect Support in Operating System Kernels

Current implementations of software providing dynamic aspect functionality in operating system (OS) kernels are quite restricted in the possible joinpoint types for native code they are able to support. Most of the projects implementing advice for native code use basic technologies adopted from instrumentation methods which allow to provide before, after and around joinpoints for functions. More elaborate joinpoints, however, are not available since support for monitoring native code execution in current CPUs is very restricted without extensive extensions of the compiler toolchain. To realize improved ways of aspect activation in OS kernels, we present an architecture that provides an efficient low-level virtual machine running on top of a microkernel system in cooperation with an aspect deployment service to provide novel ways of aspect activation in kernel environments.

[1]  Olaf Spinczyk,et al.  Architecture-Neutral Operating System Components , 2003 .

[2]  Thomas Ledoux,et al.  Aspect-Oriented Software Development , 2003 .

[3]  Yuval Rabani,et al.  Linear Programming , 2007, Handbook of Approximation Algorithms and Metaheuristics.

[4]  Olaf Spinczyk,et al.  Using AOP to develop architectural-neutral operating system components , 2004, EW 11.

[5]  Jacky Estublier,et al.  Describing and using non functional aspects in component based applications , 2002, AOSD '02.

[6]  Daniel Pierre Bovet,et al.  Understanding the Linux Kernel , 2000 .

[7]  Eric Wohlstadter,et al.  Transaction policies for service-oriented computing , 2004, Data Knowl. Eng..

[8]  Adam Stubblefield,et al.  Using Client Puzzles to Protect TLS , 2001, USENIX Security Symposium.

[9]  Mark Russinovich,et al.  Inside Microsoft Windows 2000 , 2000 .

[10]  Hermann Härtig,et al.  Taming Linux , 1998 .

[11]  Roger M. Needham,et al.  On the duality of operating system structures , 1979, OPSR.

[12]  Bryan Cantrill,et al.  Dynamic Instrumentation of Production Systems , 2004, USENIX Annual Technical Conference, General Track.

[13]  Krzysztof Czarnecki,et al.  Generative Programming , 2001, ECOOP Workshops.

[14]  Matthew Smith,et al.  Wireless Ad-Hoc Network Emulation Using Microkernel-Based Virtual Linux Systems , 2004 .

[15]  Pascal Costanza,et al.  Dynamically scoped functions as the essence of AOP , 2003, SIGP.

[16]  A. M. Lister,et al.  Fundamentals of Operating Systems , 1979, Springer New York.

[17]  Premkumar T. Devanbu,et al.  DADO: enhancing middleware to support crosscutting features in distributed, heterogeneous systems , 2003, 25th International Conference on Software Engineering, 2003. Proceedings..

[18]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

[19]  Julia L. Lawall,et al.  Web cache prefetching as an aspect: towards a dynamic-weaving based solution , 2003, AOSD '03.

[20]  John Grundy,et al.  Developing .NET Web Service-based Applications with Aspect-Oriented Component Engineering , 2004 .

[21]  Gregor Kiczales,et al.  Position Summary: Aspect-Oriented System Structure , 2001 .

[22]  Franz J. Hauck,et al.  Aspectix: A Quality-Aware, Object-Based Middleware Architecture , 2001, DAIS.

[23]  Nesa L'abbe Wu,et al.  Linear programming and extensions , 1981 .

[24]  J. Liedtke On -Kernel Construction , 1995 .

[25]  Rob Williams,et al.  Linux device drivers , 2006 .

[26]  Shigeru Chiba,et al.  Load-Time Structural Reflection in Java , 2000, ECOOP.

[27]  Wolfgang Schröder-Preikschat,et al.  On the Design and Development of a Customizable Embedded Operating System , 2004 .

[28]  Daniel Roth,et al.  Web Services Policy Framework (WS- Policy) , 2002 .

[29]  Gregor Kiczales,et al.  D: A Language Framework for Distributed Programming , 1997 .

[30]  Yvonne Coady,et al.  RADAR : Really low-level Aspects for Dynamic Analysis and Reasoning , 2004 .

[31]  Viviane Jonckers,et al.  Aspect-Oriented Programming for Dynamic Web Service Monitoring and Selection , 2004, ECOWS.

[32]  Steve R. Kleiman,et al.  Interrupts as threads , 1995, OPSR.

[33]  John A. Zinky,et al.  QoS Aspect Languages and Their Runtime Integration , 1998, LCR.

[34]  Ophir Frieder,et al.  On-the-fly program modification: systems for dynamic updating , 1993, IEEE Software.

[35]  Robert O'Callahan,et al.  Lackwit: A Program Understanding Tool Based on Type Inference , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[36]  J. Liedtke /spl mu/-kernels must and can be small , 1996, Proceedings of the Fifth International Workshop on Object-Orientation in Operation Systems.

[37]  Gregor Kiczales,et al.  Exploring an Aspect-Oriented Approach to OS Code , 2001 .

[38]  Richard Harrison,et al.  Symbian OS C++ for Mobile Phones , 2003 .

[39]  Krzysztof Czarnecki,et al.  Generative programming - methods, tools and applications , 2000 .

[40]  James R. Larus,et al.  Singularity Design Motivation , 2004 .

[41]  Julia L. Lawall,et al.  Proceedings of the 2002 Usenix Annual Technical Conference Think: a Software Framework for Component-based Operating System Kernels , 2022 .

[42]  Paul Jones,et al.  Secrets and Lies: Digital Security in a Networked World , 2002 .

[43]  Denis Caromel,et al.  Partial behavioral reflection: spatial and temporal selection of reification , 2003, OOPSLA '03.

[44]  Markus Dahm Byte Code Engineering with the BCEL API , 2007 .

[45]  Hector J. Levesque,et al.  Hard and Easy Distributions of SAT Problems , 1992, AAAI.

[46]  Clemens A. Szyperski,et al.  Component software - beyond object-oriented programming , 2002 .

[47]  Michael Haupt,et al.  Virtual machine support for dynamic join points , 2004, AOSD '04.

[48]  Andreas Eberhart Towards Universal Web Service Clients , 2002, EuroWeb.

[49]  Wouter Joosen,et al.  Dynamic and selective combination of extensions in component-based applications , 2001, Proceedings of the 23rd International Conference on Software Engineering. ICSE 2001.

[50]  Allen Van Gelder,et al.  A perspective on certain polynomial-time solvable classes of satisfiability , 2003, Discret. Appl. Math..

[51]  Pamela Zave,et al.  An experiment in feature engineering , 2003 .

[52]  Deepak Gupta,et al.  A Formal Framework for On-line Software Version Change , 1996, IEEE Trans. Software Eng..

[53]  Jeffrey K. Hollingsworth,et al.  An API for Runtime Code Patching , 2000, Int. J. High Perform. Comput. Appl..

[54]  Gregor Kiczales,et al.  Using aspectC to improve the modularity of path-specific customization in operating system code , 2001, ESEC/FSE-9.

[55]  Hidehiko Masuhara,et al.  Modeling Crosscutting in Aspect-Oriented Mechanisms , 2003, ECOOP.

[56]  Olivier Motelet,et al.  Status of work on AOP at the OCM , 2001 .

[57]  Danilo Beuche,et al.  The PURE family of object-oriented operating systems for deeply embedded systems , 1999, Proceedings 2nd IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC'99) (Cat. No.99-61702).

[58]  Andrew Warfield,et al.  Xen and the art of virtualization , 2003, SOSP '03.

[59]  S. Chiba,et al.  Remote pointcut: a language construct for distributed AOP , 2004, AOSD '04.

[60]  KiczalesGregor,et al.  Using aspectC to improve the modularity of path-specific customization in operating system code , 2001 .

[61]  Vinny Cahill,et al.  Language-independent aspect-oriented programming , 2003, OOPSLA '03.

[62]  Daniel Mahrenholz,et al.  An Aspect-Oriented Implementation of Interrupt Synchronization in the PURE Operating System Family∗ , 2002 .

[63]  Jan Bosch,et al.  Design and use of software architectures - adopting and evolving a product-line approach , 2000 .

[64]  Gregor Kiczales,et al.  Back to the future: a retroactive study of aspect evolution in operating system code , 2003, AOSD '03.

[65]  Joshua LeVasseur,et al.  Towards Scalable Multiprocessor Virtual Machines , 2004, Virtual Machine Research and Technology Symposium.

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

[67]  Bernd Freisleben,et al.  Supporting autonomic computing functionality via dynamic operating system kernel aspects , 2005, AOSD '05.

[68]  Michael Haupt,et al.  Micro-measurements for Dynamic Aspect-Oriented Systems , 2004, Net.ObjectDays.