Applications do not typically view the kernel as a source of bad input. However, the kernel can behave in unusual (yet permissible) ways for which applications are badly unprepared. We present Murphy, a language-agnostic tool that helps developers discover and isolate run-time fail-ures in their programs by simulating difficult-to-reproduce but completely-legitimate interactions between the appli-cation and the kernel. Murphy makes it easy to enable or disable sets of kernel interactions, called gremlins, so developers can focus on the failure scenarios that are im-portant to them. Gremlins are implemented using the ptrace interface, intercepting and potentially modify-ing an application’s system call invocation while requiring no invasive ...
The monolithic nature of modern OS kernels leads to a constant stream of bugs being discovered autom...
Despite the existence of an overwhelming amount of research on the quality of system software, Opera...
Traditionally, debugging refers to the process of locating the pro-gram portions which are responsib...
Applications do not typically view the kernel as a source of bad input. However, the kernel can beha...
Applications do not typically view the kernel as a source of bad input. However, the kernel can beh...
This paper presents EXE, an effective bug-finding tool that automatically generates inputs that cras...
The Linux kernel does not export a stable, well-defined ker-nel interface, complicating the developm...
Hardware errors are projected to increase in modern computer systems due to shrinking feature sizes ...
Kernel concurrency bugs are notoriously difficult to find during testing since they are only trigger...
The Linux kernel offers more than ten thousands configuration options that can be combined to build ...
Reproducing a failure is the first and most important step in debugging because it enables us to und...
With the growing use of computers in almost every aspect of our lives, software failures have greate...
Modern operating systems (OSs) consist of numerous interacting components, many of which are develop...
Software defects, commonly known as bugs, present a serious challenge for system reliability and dep...
The high complexity of modern software, and our pervasive reliance on that software, has made the pr...
The monolithic nature of modern OS kernels leads to a constant stream of bugs being discovered autom...
Despite the existence of an overwhelming amount of research on the quality of system software, Opera...
Traditionally, debugging refers to the process of locating the pro-gram portions which are responsib...
Applications do not typically view the kernel as a source of bad input. However, the kernel can beha...
Applications do not typically view the kernel as a source of bad input. However, the kernel can beh...
This paper presents EXE, an effective bug-finding tool that automatically generates inputs that cras...
The Linux kernel does not export a stable, well-defined ker-nel interface, complicating the developm...
Hardware errors are projected to increase in modern computer systems due to shrinking feature sizes ...
Kernel concurrency bugs are notoriously difficult to find during testing since they are only trigger...
The Linux kernel offers more than ten thousands configuration options that can be combined to build ...
Reproducing a failure is the first and most important step in debugging because it enables us to und...
With the growing use of computers in almost every aspect of our lives, software failures have greate...
Modern operating systems (OSs) consist of numerous interacting components, many of which are develop...
Software defects, commonly known as bugs, present a serious challenge for system reliability and dep...
The high complexity of modern software, and our pervasive reliance on that software, has made the pr...
The monolithic nature of modern OS kernels leads to a constant stream of bugs being discovered autom...
Despite the existence of an overwhelming amount of research on the quality of system software, Opera...
Traditionally, debugging refers to the process of locating the pro-gram portions which are responsib...