Device Driver

14,000,000 Leading Edge Experts on the ideXlab platform

Scan Science and Technology

Contact Leading Edge Experts & Companies

Scan Science and Technology

Contact Leading Edge Experts & Companies

The Experts below are selected from a list of 25215 Experts worldwide ranked by ideXlab platform

Gernot Heiser - One of the best experts on this subject based on the ideXlab platform.

  • improved Device Driver reliability through hardware verification reuse
    Architectural Support for Programming Languages and Operating Systems, 2011
    Co-Authors: Leonid Ryzhyk, John Keys, Arun Raghunath, Mona Vij, Balachandra Mirla, Gernot Heiser
    Abstract:

    Faulty Device Drivers are a major source of operating system failures. We argue that the underlying cause of many Driver faults is the separation of two highly-related tasks: Device verification and Driver development. These two tasks have a lot in common, and result in software that is conceptually and functionally similar, yet kept totally separate. The result is a particularly bad case of duplication of effort: the verification code is correct, but is discarded after the Device has been manufactured; the Driver code is inferior, but used in actual Device operation. We claim that the two tasks, and the software they produce, can and should be unified, and this will result in drastic improvement of Device-Driver quality and reduction in the development cost and time to market. In this paper we propose a Device Driver design and verification workflow that achieves such unification. We apply this workflow to develop and test Drivers for four different I/O Devices and demonstrate that it improves the Driver test coverage and allows detecting Driver defects that are extremely hard to find using conventional testing techniques.

  • automatic Device Driver synthesis with termite
    Symposium on Operating Systems Principles, 2009
    Co-Authors: Leonid Ryzhyk, Peter Chubb, Ihor Kuz, Etienne Le Sueur, Gernot Heiser
    Abstract:

    Faulty Device Drivers cause significant damage through down time and data loss. The problem can be mitigated by an improved Driver development process that guarantees correctness by construction. We achieve this by synthesising Drivers automatically from formal specifications of Device interfaces, thus reducing the impact of human error on Driver reliability and potentially cutting down on development costs. We present a concrete Driver synthesis approach and tool called Termite. We discuss the methodology, the technical and practical limitations of Driver synthesis, and provide an evaluation of non-trivial Drivers for Linux, generated using our tool. We show that the performance of the generated Drivers is on par with the equivalent manually developed Drivers. Furthermore, we demonstrate that Device specifications can be reused across different operating systems by generating a Driver for FreeBSD from the same specification as used for Linux.

  • dingo taming Device Drivers
    European Conference on Computer Systems, 2009
    Co-Authors: Leonid Ryzhyk, Peter Chubb, Ihor Kuz, Gernot Heiser
    Abstract:

    Device Drivers are notorious for being a major source of failure in operating systems. In analysing a sample of real defects in Linux Drivers, we found that a large proportion (39%) of bugs are due to two key shortcomings in the Device-Driver architecture enforced by current operating systems: poorly-defined communication protocols between Drivers and the OS, which confuse developers and lead to protocol violations, and a multithreaded model of computation that leads to numerous race conditions and deadlocks. We claim that a better Device Driver architecture can help reduce the occurrence of these faults, and present our Dingo framework as constructive proof. Dingo provides a formal, state-machine based, language for describing Driver protocols, which avoids confusion and ambiguity, and helps Driver writers implement correct behaviour. It also enforces an event-driven model of computation, which eliminates most concurrency-related faults. Our implementation of the Dingo architecture in Linux offers these improvements, while introducing negligible performance overhead. It allows Dingo and native Linux Drivers to coexist, providing a gradual migration path to more reliable Device Drivers.

  • encapsulated user level Device Drivers in the mungi operating system
    2004
    Co-Authors: Ben Leslie, Nicholas Fitzroydale, Gernot Heiser
    Abstract:

    The reliability of Device Drivers is of critical importance to the overall stability of computer systems. This paper presents the software architecture used for userlevel Device Drivers in the Mungi operating system. We argue that this framework provides a safer environment in which to run Device Drivers, while making Device Driver implementation easier and more flexible, thus improving overall reliability of the system.

Leonid Ryzhyk - One of the best experts on this subject based on the ideXlab platform.

  • User-guided Device Driver synthesis
    2020
    Co-Authors: Leonid Ryzhyk, Adam Walker, John Keys, Alexander Legg, Arun Raghunath, Michael Stumm, Mona Vij
    Abstract:

    Abstract Automatic Device Driver synthesis is a radical approach to creating Drivers faster and with fewer defects by generating them automatically based on hardware Device specifications. We present the design and implementation of a new Driver synthesis toolkit, called Termite-2. Termite-2 is the first tool to combine the power of automation with the flexibility of conventional development. It is also the first practical synthesis tool based on abstraction refinement. Finally, it is the first synthesis tool to support automated debugging of input specifications. We demonstrate the practicality of Termite-2 by synthesizing Drivers for a number of I/O Devices representative of a typical embedded platform

  • Predicate Abstraction for Reactive Synthesis
    2015
    Co-Authors: Adam Walker, Leonid Ryzhyk
    Abstract:

    Abstract—We present a predicate-based abstraction refinement algorithm for solving reactive games. We develop solutions to the key problems involved in implementing efficient predicate abstraction, which previously have not been addressed in game settings: (1) keeping abstractions concise by identifying relevant predicates only, (2) solving abstract games efficiently, and (3) computing and solving abstractions symbolically. We imple-mented the algorithm as part of an automatic Device Driver syn-thesis toolkit and evaluated it by synthesising Drivers for several real-world I/O Devices. This involved solving game instances that could not be feasibly solved without using abstraction or using simpler forms of abstraction. I

  • improved Device Driver reliability through hardware verification reuse
    Architectural Support for Programming Languages and Operating Systems, 2011
    Co-Authors: Leonid Ryzhyk, John Keys, Arun Raghunath, Mona Vij, Balachandra Mirla, Gernot Heiser
    Abstract:

    Faulty Device Drivers are a major source of operating system failures. We argue that the underlying cause of many Driver faults is the separation of two highly-related tasks: Device verification and Driver development. These two tasks have a lot in common, and result in software that is conceptually and functionally similar, yet kept totally separate. The result is a particularly bad case of duplication of effort: the verification code is correct, but is discarded after the Device has been manufactured; the Driver code is inferior, but used in actual Device operation. We claim that the two tasks, and the software they produce, can and should be unified, and this will result in drastic improvement of Device-Driver quality and reduction in the development cost and time to market. In this paper we propose a Device Driver design and verification workflow that achieves such unification. We apply this workflow to develop and test Drivers for four different I/O Devices and demonstrate that it improves the Driver test coverage and allows detecting Driver defects that are extremely hard to find using conventional testing techniques.

  • automatic Device Driver synthesis with termite
    Symposium on Operating Systems Principles, 2009
    Co-Authors: Leonid Ryzhyk, Peter Chubb, Ihor Kuz, Etienne Le Sueur, Gernot Heiser
    Abstract:

    Faulty Device Drivers cause significant damage through down time and data loss. The problem can be mitigated by an improved Driver development process that guarantees correctness by construction. We achieve this by synthesising Drivers automatically from formal specifications of Device interfaces, thus reducing the impact of human error on Driver reliability and potentially cutting down on development costs. We present a concrete Driver synthesis approach and tool called Termite. We discuss the methodology, the technical and practical limitations of Driver synthesis, and provide an evaluation of non-trivial Drivers for Linux, generated using our tool. We show that the performance of the generated Drivers is on par with the equivalent manually developed Drivers. Furthermore, we demonstrate that Device specifications can be reused across different operating systems by generating a Driver for FreeBSD from the same specification as used for Linux.

  • dingo taming Device Drivers
    European Conference on Computer Systems, 2009
    Co-Authors: Leonid Ryzhyk, Peter Chubb, Ihor Kuz, Gernot Heiser
    Abstract:

    Device Drivers are notorious for being a major source of failure in operating systems. In analysing a sample of real defects in Linux Drivers, we found that a large proportion (39%) of bugs are due to two key shortcomings in the Device-Driver architecture enforced by current operating systems: poorly-defined communication protocols between Drivers and the OS, which confuse developers and lead to protocol violations, and a multithreaded model of computation that leads to numerous race conditions and deadlocks. We claim that a better Device Driver architecture can help reduce the occurrence of these faults, and present our Dingo framework as constructive proof. Dingo provides a formal, state-machine based, language for describing Driver protocols, which avoids confusion and ambiguity, and helps Driver writers implement correct behaviour. It also enforces an event-driven model of computation, which eliminates most concurrency-related faults. Our implementation of the Dingo architecture in Linux offers these improvements, while introducing negligible performance overhead. It allows Dingo and native Linux Drivers to coexist, providing a gradual migration path to more reliable Device Drivers.

Lahoda Vlastimil - One of the best experts on this subject based on the ideXlab platform.

  • Device Driver for the SICK LMS111 laser scanner for Raspberry Pi 2
    Vysoké učení technické v Brně. Fakulta elektrotechniky a komunikačních technologií, 2018
    Co-Authors: Lahoda Vlastimil
    Abstract:

    Práce se věnuje návrhu a realizaci ovladače laserového skeneru pro minipočítač Raspberry Pi 2. V první části seznamuje čtenáře se základními informacemi o laserovém skeneru SICK LMS111-10100 a Raspberry Pi 2. Dále se věnuje rešerši vývojového prostředí a výběru programovacího jazyka. Následuje návrh a realizace třídy pro plnohodnotné ovládání skeneru z Raspberry PI 2.This thesis is focused on design and realization of the laser scanner Driver SICK LMS111-1010 for minicomputer Raspberry Pi 2. In the first part the reader is familiar with the basic information about the laser scanner SICK LMS111-10100 and Raspberry Pi 2. It also focuses on the research Integrated Development Environment and the selection of the programming language. Following is the design and implementation of a class for full control of SICK LMS111-10100 skener from Raspberry Pi.

  • Device Driver for the SICK LMS111 laser scanner for Raspberry Pi 2
    Vysoké učení technické v Brně. Fakulta elektrotechniky a komunikačních technologií, 2018
    Co-Authors: Lahoda Vlastimil
    Abstract:

    This thesis is focused on design and realization of the laser scanner Driver SICK LMS111-1010 for minicomputer Raspberry Pi 2. In the first part the reader is familiar with the basic information about the laser scanner SICK LMS111-10100 and Raspberry Pi 2. It also focuses on the research Integrated Development Environment and the selection of the programming language. Following is the design and implementation of a class for full control of SICK LMS111-10100 skener from Raspberry Pi

Wang Youzhao - One of the best experts on this subject based on the ideXlab platform.

  • Device Driver development for embedded windows ce
    Computer Engineering, 2006
    Co-Authors: Wang Youzhao
    Abstract:

    A key aspect of the modular design of Windows CE is that original equipment manufacturers(OEMs) and independent hardware vendors(IHVs) can implement Device Drivers that support their own hardware without additional development from Microsoft.This paper introduces the system structure of Windows CE and the process of developing Device Drivers for Windows CE.It provides an overview of Device-Driver architecture,elaborates the Windows CE Device-Driver models and interrupt handle.Windows CE supports the following four Driver models: native Device Driver,stream interface Device Driver,universal serial bus(USB) Device Driver,network Driver interface specification(NDIS) Driver.

Haibing Guan - One of the best experts on this subject based on the ideXlab platform.

  • high performance network virtualization with sr iov
    Journal of Parallel and Distributed Computing, 2012
    Co-Authors: Yaozu Dong, Xiaowei Yang, Kun Tian, Guangdeng Liao, Haibing Guan
    Abstract:

    Virtualization poses new challenges to I/O performance. The single-root I/O virtualization (SR-IOV) standard allows an I/O Device to be shared by multiple Virtual Machines (VMs), without losing performance. We propose a generic virtualization architecture for SR-IOV-capable Devices, which can be implemented on multiple Virtual Machine Monitors (VMMs). With the support of our architecture, the SR-IOV-capable Device Driver is highly portable and agnostic of the underlying VMM. Because the Virtual Function (VF) Driver with SR-IOV architecture sticks to hardware and poses a challenge to VM migration, we also propose a dynamic network interface switching (DNIS) scheme to address the migration challenge. Based on our first implementation of the network Device Driver, we deployed several optimizations to reduce virtualization overhead. Then, we conducted comprehensive experiments to evaluate SR-IOV performance. The results show that SR-IOV can achieve a line rate throughput (9.48 Gbps) and scale network up to 60 VMs, at the cost of only 1.76% additional CPU overhead per VM, without sacrificing throughput and migration.

  • high performance network virtualization with sr iov
    High-Performance Computer Architecture, 2010
    Co-Authors: Yaozu Dong, Xiaowei Yang, Kun Tian, Haibing Guan
    Abstract:

    Virtualization poses new challenges to I/O performance. The single-root I/O virtualization (SR-IOV) standard allows an I/O Device to be shared by multiple Virtual Machines (VMs), without losing runtime performance. We propose a generic virtualization architecture for SR-IOV Devices, which can be implemented on multiple Virtual Machine Monitors (VMMs). With the support of our architecture, the SR-IOV Device Driver is highly portable and agnostic of underlying VMM. Based on our first implementation of network Device Driver, we applied several optimizations to reduce virtualization overhead. Then, we carried out comprehensive experiments to evaluate SR-IOV performance and compare it with paravirtualized network Driver. The results show SR-IOV can achieve line rate (9.48Gbps) and scale network up to 60 VMs at the cost of only 1.76% additional CPU overhead per VM, without sacrificing throughput. It has better throughout, scalability, and lower CPU utilization than paravirtualization.