TOSKANA: A Toolkit for Operating System Kernel Aspects

TOSKANA: A Toolkit for Operating System Kernel Aspects
复制标题

TOSKANA:操作系统内核方面的工具包

DOI:
--
复制
发表时间:
2006
期刊:
LNCS Trans. Aspect Oriented Softw. Dev.
影响因子:
--
通讯作者:
Bernd Freisleben
Bernd Freisleben
中科院分区:
--
文献类型:
--
作者:
M. Engel;Bernd Freisleben

文献摘要

被引文献

相似文献

类Unix系统中操作系统内核的开发过程正变得越来越复杂。20世纪70年代的简单、易于理解的内核已经发展成由数百个模块组成的巨大软件系统,这些模块在数百万行代码中实现,导致修复错误和改进功能的资源和时间开销大大增加。内核代码中的许多代码修改和添加都是横切的,因为它们展示了跨模块或跨层的功能,因此面向方面编程(AOP)方法非常适合解决这些问题。由于运行在不同进程或硬件上下文中的内核模式中的各种线程,操作系统代码隐含地涉及动态行为。解决横切问题的方法必须能够动态适应这种不断变化的环境;因此,需要内核中的动态AOP来实现所需的功能。 本文分析了在内核代码中使用动态AOP的可行性。使用TOSKANA系统表明,实现动态AOP特性不仅可以在操作系统内核中实现,而且可以以合理的开销实现。首先,介绍了内核代码中固有的跨模块和跨层属性,并特别考虑了过程C内核代码中的横切关注点。然后,介绍了TOSKANA--我们用于将动态方面部署到操作系统内核的工具包。TOSKANA为内核内函数提供了之前、之后和前后的建议,并支持切入点的规范以及作为动态可交换内核模块的方面本身的实现。使用内核中的动态AOP功能的跨模块和跨层问题及其解决方案的几个示例演示了TOSKANA的用法。给出了性能结果,以表征使用TOSKANA带来的方面部署开销。
The development process for operating system kernels in Unix-like systems is becoming increasingly complex. The simple, easily understandable kernels of the 1970s have evolved into giant software systems consisting of hundreds of modules implemented in millions of lines of code, resulting in greatly increased resource and time overhead for bug fixes as well as functional improvements. Many code modifications and additions in kernel code are crosscutting, since they exhibit cross-module or cross-layer functionality, thus an aspect-oriented programming (AOP) approach is well suited for solving these problems. Operating system code implicitly involves dynamic behavior due to various threads in kernel mode that run in different process or hardware contexts. Methods to solve the crosscutting problems have to be able to adapt dynamically to this changing environment; as a result, dynamic AOP inside the kernel is required to implement required functionality. This paper analyzes the feasibility of using dynamic AOP in kernel code. Using the TOSKANA system, it is shown that implementing dynamic AOP features is not only possible in operating system kernels, but also realizable with a justifiable overhead. First, the cross-module and cross-layer properties inherent in kernel code are presented, with special consideration of crosscutting concerns in procedural C kernel code. Then, TOSKANA—our toolkit for deploying dynamic aspects into an operating system kernel—is introduced. TOSKANA provides before, after and around advice for in-kernel functions and supports the specification of pointcuts as well as the implementation of aspects themselves as dynamically exchangeable kernel modules. The use of TOSKANA is demonstrated by several examples of cross-module as well as cross-layer problems and their solutions using dynamic AOP functionality inside the kernel. Performance results are presented to characterize the aspect deployment overhead incurred by using TOSKANA.