Skip to Main content Skip to Navigation
New interface
Reports (Research report)

Generation of Debugging Interfaces for Linux Kernel Services

Abstract : The Linux kernel does not export a stable, well-defined kernel interface, complicating the development of kernel-level services, such as device drivers and file systems. While there does exist a set of functions that are exported to external modules, these are continually changing, and have implicit, ill-documented reconditions, which, if not satisfied, can cause the entire system to crash or hang. However, no specific debugging support is provided. In this paper, we present Diagnosys, an approach to automatically constructing a debugging interface for the Linux kernel. In our approach, a designated kernel maintainer uses Diagnosys to identify pre and post conditions on the use of the exported functions. The maintainer then publishes this information for download by service developers, who can use Diagnosys to generate a debugging interface specialized to their code. This interface is then included within a service implementation, such that when the service is tested it records information about potential problems. The recorded information is then made available to the service developer on reboot after a kernel crash or hang. We have tested our approach on several recent releases of the Linux kernel. We first show that the debugging interfaces generated by our approach provide useful log information in the case of faults. We then show that safety holes are prevalent in the Linux kernel, and that many of the functions exported by the Linux kernel to kernel-level services have non-trivial implicit pre and post conditions that must be respected to ensure their safe execution. Finally, we show that our approach incurs only a slight performance penalty.
Document type :
Reports (Research report)
Complete list of metadata

Cited literature [1 references]  Display  Hide  Download
Contributor : Gilles Muller Connect in order to contact the contributor
Submitted on : Tuesday, November 15, 2011 - 11:54:32 AM
Last modification on : Wednesday, October 26, 2022 - 8:16:12 AM
Long-term archiving on: : Friday, November 16, 2012 - 10:55:23 AM


Files produced by the author(s)


  • HAL Id : hal-00641262, version 1


Tegawendé Bissyandé, Laurent Réveillère, Julia L. Lawall, Gilles Muller. Generation of Debugging Interfaces for Linux Kernel Services. [Research Report] RR-7800, INRIA. 2011, pp.28. ⟨hal-00641262⟩



Record views


Files downloads