Exceptional Kernel -- Using C++ exceptions in the Linux kernel
BibTeX
@MISC{Gylfason_exceptionalkernel,
author = {Halldor Isak Gylfason and Gisli Hjalmtysson},
title = {Exceptional Kernel -- Using C++ exceptions in the Linux kernel},
year = {}
}
OpenURL
Abstract
Driven by the desire to facilitate more maintainable and robust systems, modern programming languages offer explicit constructs to facilitate the handling of exceptional events. The use of exceptions is common in user space programming, and is an integral part of common programming styles and best practices. In spite of this exceptions are rarely used in kernel-space. In fact, some operating systems, such as Linux, refrain altogether from using modern language constructs. We have implemented C++ kernel level run-time support for Linux, supporting the full range of C++ language abstractions, including run time type checking and exception handling. Through detailed instrumentation we show that introducing these mechanisms incurs negligible cost to normal program flow. Moreover, by enhancing the user level GNU g++ implementation we have reduced the cost of throwing and catching exceptions sufficiently, to make their use viable in a variety of in several important scenarios.







