Automated Porting of Device Drivers
- Share
- Partager sur Facebook
- Partager sur LinkedIn
Exploratory project
Abstract
Device drivers are the leading cause of operating system (OS) failures. However, our study found that the overall quality of drivers is improving rapidly under Linux. Furthermore, Linux supports the largest number of devices, and these devices are supported until no users can be found. This project aims to propose an operating system-independent implementation of device drivers, thereby facilitating the creation of new versions for different operating systems. Linux drivers are used as a driver repository to extract an operating system-independent version. To do this, the extraction process is based on a description of the operating system’s internal API. Then, using the description of another internal API (for a different version of the operating system or a different operating system), the goal is to re-target the operating system-independent driver version. This process is useful either for porting drivers or for ensuring driver portability across operating systems.
Scientific findings
The internships aim to identify the internal Linux APIs involved in the driver code for the selected devices. These internal APIs are described for a specific version. In the case of network devices, the network subsystem API is involved, as are the power management API, the memory management API, and the packet management API, among others. Initially, we examine the case of backporting when at least one of these APIs is different.
Summary
Thanks to the APD2 project, a new collaboration has been established between the ERODS group at LIG and the SLS group at the TIMA laboratory. The coordinators supervised Damien Crastes de Paulet’s internship in 2016 (Polytech, RICM4) and are currently overseeing Gerardo Larreinegabe’s research project (UFR IM2AG, M1 in Computer Science). Damien had studied the Linux BCM63xx SPI driver and its equivalent in Contiki for the AT91 microcontroller. Gerardo is beginning to study a network driver used for virtual machines. This research project will be followed by an internship. Additionally, the collaboration between the ERODS group and the Whisper group at INRIA has been strengthened. A paper is currently under review for HoTOS 2017, and a one-week visit by Nicolas Palix is scheduled for April.
Coordinators
Nicolas Palix, Assistant Professor atUniversité Grenoble Alpes, LIG-ERODS research group.
Frédéric Rousseau, Professor at the University of Grenoble Alpes, TIMA-SLS research group.
Key publications on this topic
[1] Hui Chen, Guillaume Godet-Bar, Frédéric Rousseau, and Frédéric Pétrot. “Device driver generation targeting multiple operating systems using a model-driven methodology.” In RSP 2014, New Delhi, India, October 16–17, 2014, pp. 30–36. IEEE, 2014.
[2] Nicolas Palix, Gaël Thomas, Suman Saha, Christophe Calves, Gilles Muller, and Julia Lawall. Faults in Linux 2.6. ACM Transactions on Computer Systems (TOCS), 32(2):4, June 2014.
[3] Vitaly Chipounov and George Candea. Reverse engineering of binary device drivers with revnic. In Proceedings of the 5th European Conference on Computer Systems, pp. 167–180. ACM, 2010.
[4] Leonid Ryzhyk, Peter Chubb, Ihor Kuz, Etienne Le Sueur, and Gernot Heiser. “Automatic device driver synthesis with Termite.” In ACM Symposium on Operating Systems Principles, SOSP ’09, pp. 73–86, New York, NY, USA, 2009. ACM.
Further information
- Share
- Partager sur Facebook
- Partager sur LinkedIn