Binary Device Driver Reuse

  • Subject:Virtual Machines
  • Type:Diploma Thesis
  • Date:22.03.2007
  • Supervisor:

    Prof. Dr. Frank Bellosa, Joshua LeVasseur

  • Graduand:Bernhard Poess
  • Links:PDF
  • Abstract:

    This work presents a novel approach to driver reuse and isolation. We propose to deprivilege binary device drivers and to use the original kernel API to interface with the reused drivers.

    We isolate device drivers by running them as regular applications in usermode. The original environment is emulated to the reused device drivers. The drivers run as kernel-mode drivers in their native environment. We use lightweight virtualization to deprivilege device driver binaries and run them in user-mode. To demonstrate our approach we have developed a reference system that reuses Linux 2.6 device drivers on top of a microkernel-based component operating system. We successfully reuse network device drivers. Measurements show that our implementation achieves performance comparable to native Linux systems. However, the CPU utilization of our implementation is significantly lower than that of the Linux system. With roughly 23K source lines of code needed for our emulation environment, the engineering effort is very low.


      author = {Bernhard Poess},
      title = {Binary Device Driver Reuse},
      type = {Diploma Thesis},
      address = {System Architecture Group, University of Karlsruhe, Germany},
      month = mar # "~22",
      year = 2007,
      url = {}