Automatic device driver isolation protects against bugs in operating systems
UNIVERSITY PARK, Pennsylvania — The kernel of an operating system acts as a translator between the user and the machine. To improve kernel reliability, developers can isolate device drivers from the operating system and prevent a failure of one component from affecting other components. Isolation, however, requires impractical human effort.
A team of researchers, led by G. Gary Tan and Trent Jaeger, professors of computer science and engineering at Penn State, set out to develop a framework that could automate and reduce the amount of manual work needed for driver isolation. device in the presence of difficult kernel models.
The researchers presented their framework at the 16th USENIX Symposium on Operating Systems Design and Implementation (OSDI ’22), which took place July 11-13 in Carlsbad, California. OSDI is a premier conference in operating systems research and brings together professionals from academia and industry to discuss system software design, implementation and implications, according to its website.
The operating system kernel controls and coordinates all hardware and software in the computer. Device drivers allow the kernel to interact with hardware without knowing component details. For example, when a user asks their computer to print a document, the kernel invokes some interface functions provided by a printer driver, which processes the data and sends the job to the printer.
According to Tan, to effectively isolate device drivers and maintain kernel-driver communication, developers had to inspect the large and complex communication interface between a driver and the kernel and decide what data needed to be synchronized by looking at all driver interactions. and the core. They also had to deal with difficult synchronization patterns such as data concurrency, writing thousands of lines of code to ensure smooth operations.
“Isolation is an effective technique for improving the reliability of software systems, such as the kernel, but relying on human effort to isolate drivers is unrealistic, so we decided to develop a framework to automate the process,” Tan said. “With isolation, a component’s failure is confined to its own domain; bugs in one component cannot directly affect the rest of the system. This greatly improves reliability.