Documenting and automating collateral evolutions in Linux device drivers
The internal libraries of Linux are evolving rapidly, to address new requirements and
improve performance. These evolutions, however, entail a massive problem of collateral …
improve performance. These evolutions, however, entail a massive problem of collateral …
A graph-based approach to API usage adaptation
Reusing existing library components is essential for reducing the cost of software
development and maintenance. When library components evolve to accommodate new …
development and maintenance. When library components evolve to accommodate new …
Practical dynamic software updating for C
Software updates typically require stop** and restarting an application, but many systems
cannot afford to halt service, or would prefer not to. Dynamic software updating (DSU) …
cannot afford to halt service, or would prefer not to. Dynamic software updating (DSU) …
Identifying linux bug fixing patches
In the evolution of an operating system there is a continuing tension between the need to
develop and test new features, and the need to provide a stable and secure execution …
develop and test new features, and the need to provide a stable and secure execution …
Precise and scalable detection of double-fetch bugs in OS kernels
During system call execution, it is common for operating system kernels to read userspace
memory multiple times (multi-reads). A critical bug may exist if the fetched userspace …
memory multiple times (multi-reads). A critical bug may exist if the fetched userspace …
42 variability bugs in the linux kernel: a qualitative analysis
Feature-sensitive verification pursues effective analysis of the exponentially many variants of
a program family. However, researchers lack examples of concrete bugs induced by …
a program family. However, researchers lack examples of concrete bugs induced by …
Dynamic software updates: a VM-centric approach
Software evolves to fix bugs and add features. Stop** and restarting programs to apply
changes is inconvenient and often costly. Dynamic software updating (DSU) addresses this …
changes is inconvenient and often costly. Dynamic software updating (DSU) addresses this …
{SymDrive}: Testing Drivers without Devices
Device-driver development and testing is a complex and error-prone undertaking. For
example, testing errorhandling code requires simulating faulty inputs from the device. A …
example, testing errorhandling code requires simulating faulty inputs from the device. A …
Coccinelle: 10 years of automated evolution in the Linux kernel
The Coccinelle C-program matching and transformation tool was first released in 2008 to
facilitate specification and automation in the evolution of Linux kernel code. The novel …
facilitate specification and automation in the evolution of Linux kernel code. The novel …
Meditor: inference and application of API migration edits
Developers build programs based on software libraries. When a library evolves,
programmers need to migrate their client code from the library's old release (s) to new …
programmers need to migrate their client code from the library's old release (s) to new …