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 single driver may support dozens of devices, and a developer may not have access to any of them. Consequently, many Linux driver patches include the comment “compile tested only.” SymDrive is a system for testing Linux and FreeBSD drivers without their devices present. The system uses symbolic execution to remove the need for hardware, and extends past tools with three new features. First, SymDrive uses static-analysis and source-to-source transformation to greatly reduce the effort of testing a new driver. Second, SymDrive checkers are ordinary C code and execute in the kernel, where they have full access to kernel and driver state. Finally, SymDrive provides an executiontracing tool to identify how a patch changes I/O to the device and to compare device-driver implementations. In applying SymDrive to 21 Linux drivers and 5 FreeBSD drivers, we found 39 bugs.
منابع مشابه
[Artefacts of questionnaire-based psychological testing of drivers].
BACKGROUND The purpose of this article is to draw attention to a significant role of social approval variable in the qustionnaire-based diagnosis of drivers' psychological aptitude. MATERIAL AND METHODS Three questionnaires were used: Formal Characteristics of Behavior - Temperament Inventory (FCB-TI), Eysenck Personality Questionnaire (EPQ-R(S) and Impulsiveness Questionnaire (Impulsiveness,...
متن کاملBehavior-Driven Testing of Windows Device Drivers
Commercial-off-the-shelf operating systems (COTS OSs) increasingly favor adaptability to support diverse application and hardware peripherals in detriment to targeting robustness of OS services. The COTS OSs interface to hardware devices is provided by the device-drivers1. Furthermore, drivers have themselves become add-on COTS components, enhancing OS’s adaptability. Unfortunately, drivers con...
متن کاملآزمون های غیرمخرب در پیشرانه های جامد (علمی-ترویجی)
Non-destructive testing methods are used to detecting defects in materials and evaluation of materials properties without causing changes to their usable properties. They are applied in industry to provide the assurance of high quality for semi-manufactured products, final products, devices and materials. Except of many civilian applications they are widely used in rocket and aviation industry ...
متن کاملBetween a rock and a hardware place: Ultraviolet and the case for Userspace Virtual hardware
At the boundary of all operating systems are device drivers, software modules, usually run in fully privileged mode, that connect specific hardware devices with the more general kernel API. Device drivers are highly complex pieces of software. They have to contend with asynchronous event notifications from both hardware and software (often simultaneously), subtle kernel threading and locking mo...
متن کاملImproving Robustness Testing of COTS OS Extensions
Operating systems (OS) are increasingly geared towards support of diverse peripheral components, both hardware (HW) and software (SW), rather than explicitly focused on increased reliability of delivered OS services. The interface between the OS and the HW devices is provided by device drivers. Furthermore, drivers have become add-on COTS components to support the OS’s capabilities of widesprea...
متن کامل