skip to main content
10.1145/3167132.3167250acmconferencesArticle/Chapter ViewAbstractPublication PagessacConference Proceedingsconference-collections
research-article

Unified hardware abstraction layer with device masquerade

Published: 09 April 2018 Publication History

Abstract

Device drivers are a major concern for existing and new operating systems (OSs) in terms of the development cost and code quality. Unfortunately, the OS-dependent nature of device drivers makes their reuse or unification complicated because the execution environments of device drivers are tightly coupled with the hosting OS kernel. Previous studies of porting device drivers from major OSs suffer from various conflicts and engineering cost, and unmodified reuse of device drivers with virtual machines (VMs) incurs non-negligible overhead. In this paper, we present the design and implementation of a unified hardware abstraction layer that uses a thin hypervisor, on which an OS kernel runs with a single device driver for each device class, thereby reducing the development costs of device drivers for OSs that run on bare-metal machines. Our key technique is device masquerade; rather than virtualizing devices with fat software layers, a thin hypervisor converts physical devices into standardized abstract devices with minimum efforts. We exploit a de facto standard interface to hardware devices that allows clean separation of the abstraction layer implementation from OS kernels and easy deployment in practical use. To reduce virtualization overhead, the hypervisor supports only a single VM and allows pass-through access to already standardized devices such as interrupt controllers. The experimental results confirmed that the performance of our system was comparable to that on a bare-metal machine without any hypervisors.

References

[1]
Apache Software Foundation. 2012. ab - Apache HTTP server benchmarking tool. https://httpd.apache.org/docs/2.4/programs/ab.html. (2012).
[2]
Sean Kenneth Barker and Prashant Shenoy. 2010. Empirical Evaluation of Latency-sensitive Application Performance in the Cloud. In Proceedings of the First Annual ACM SIGMM Conference on Multimedia Systems (MMSys '10). ACM, New York, NY, USA, 35--46.
[3]
Andrew Baumann, Paul Barham, Pierre-Evariste Dagand, Tim Harris, Rebecca Isaacs, Simon Peter, Timothy Roscoe, Adrian Schüpbach, and Akhilesh Singhania. 2009. The Multikernel: A New OS Architecture for Scalable Multicore Systems. In Proceedings of the ACM SIGOPS 22nd Symposium on Operating Systems Principles (SOSP '09). ACM, New York, NY, USA, 29--44.
[4]
Adam Belay, George Prekas, Ana Klimovic, Samuel Grossman, Christos Kozyrakis, and Edouard Bugnion. 2014. IX: A Protected Dataplane Operating System for High Throughput and Low Latency. 49--65.
[5]
Andy Chou, Junfeng Yang, Benjamin Chelf, Seth Hallem, and Dawson Engler. 2001. An Empirical Study of Operating Systems Errors. In Proceedings of the Eighteenth ACM Symposium on Operating Systems Principles (SOSP '01). ACM, New York, NY, USA, 73--88.
[6]
Takaaki Fukai, Yushi Omote, Takahiro Shinagawa, and Kazuhiko Kato. 2015. OS-Independent Live Migration Scheme for Bare-Metal Clouds. In Proceedings of the 2015 IEEE/ACM 8th International Conference on Utility and Cloud Computing. 80--89.
[7]
Shantanu Goel and Dan Duchamp. 1996. Linux Device Driver Emulation in Mach. In Proceedings of the USENIX Annual Technical Conference.
[8]
Abel Gordon, Nadav Har'El, Alex Landau, Muli Ben-Yehuda, and Avishay Traeger. 2012. Towards Exitless and Efficient Paravirtual I/O. In Proceedings of the 5th Annual International Systems and Storage Conference (SYSTOR '12). ACM, New York, NY, USA, Article 10, 6 pages.
[9]
Intel Corporation. 2007. Interrupt Moderation Using Intel GbE Controllers. https://www.intel.com/content/dam/doc/application-note/gbe-controllers-interrupt-moderation-appl-note.pdf. (2007).
[10]
Intel Corporation. 2009. Intel®82579 Gigabit Ethernet PHY Datasheet v2.1. (2009). http://www.intel.com/content/dam/doc/datasheet/82579-gbe-phy-datasheet-vol-2-1.pdf
[11]
Intel Corporation. 2016. Intel®82599 10 GbE Controller Datasheet. (2016). http://www.intel.com/content/dam/www/public/us/en/documents/datasheets/82599-10-gbe-controller-datasheet.pdf
[12]
A. Iosup, S. Ostermann, M. N. Yigitbasi, R. Prodan, T. Fahringer, and D. Epema. 2011. Performance Analysis of Cloud Computing Services for Many-Tasks Scientific Computing. IEEE Transactions on Parallel and Distributed Systems 22, 6 (June 2011), 931--945.
[13]
K42 Team. 2002. Utilizing Linux kernel components in K42. Technical Report. IBM Research.
[14]
Joshua LeVasseur, Volkmar Uhlig, Jan Stoess, and Stefan Götz. 2004. Unmodified Device Driver Reuse and Improved System Dependability via Virtual Machines. In Proceedings of the 6th Symposium on Opearting Systems Design & Implementation (OSDI '04). 17--30.
[15]
Jochen Liedtke. 1996. Toward Real Microkernels. Commun. ACM 39, 9 (Sept. 1996), 70--77.
[16]
Keith Loepere. 1992. Mach 3 Kernel Principles (2 ed.). Open Software Foundation and Carnegie Mellon University.
[17]
Gal Motika and Shlomo Weiss. 2012. Virtio network paravirtualization driver: Implementation and performance of a de-facto standard. Computer Standards & Interfaces 34, 1 (2012), 36 -- 47.
[18]
NVM Express Workgroup. 2017. NVM Express Revision 1.3a. (2017). http://nvmexpress.org/wp-content/uploads/NVM-Express-1_3a-20171024_ratified.pdf
[19]
OASIS Open. 2016. Virtual I/O Device (VIRTIO) Version 1.0. (March 2016). http://docs.oasis-open.org/virtio/virtio/v1.0/virtio-v1.0.pdf
[20]
Yushi Omote, Takahiro Shinagawa, and Kazuhiko Kato. 2015. Improving Agility and Elasticity in Bare-metal Clouds. In Proceedings of the Twentieth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '15). ACM, New York, NY, USA, 145--159.
[21]
Nicolas Palix, Gaël Thomas, Suman Saha, Christophe Calvès, Julia Lawall, and Gilles Muller. 2011. Faults in Linux: Ten Years Later. In Proceedings of the Sixteenth International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS XVI). ACM, New York, NY, USA, 305--318.
[22]
Rusty Russell. 2008. Virtio: Towards a De-facto Standard for Virtual I/O Devices. ACM SIGOPS Operating Systems Review 42, 5 (July 2008), 95--103.
[23]
Takahiro Shinagawa, Hideki Eiraku, Kouichi Tanimoto, Kazumasa Omote, Shoichi Hasegawa, Takashi Horie, Manabu Hirano, Kenichi Kourai, Yoshihiro Oyama, Eiji Kawai, Kenji Kono, Shigeru Chiba, Yasushi Shinjo, and Kazuhiko Kato. 2009. BitVisor: A Thin Hypervisor for Enforcing I/O Device Security. In Proceedings of the 2009 ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments (VEE '09). ACM, New York, NY, USA, 121--130.
[24]
VMWare, Inc. 2017. VMWare vSphere. (2017). https://www.vmware.com/products/vsphere.html

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SAC '18: Proceedings of the 33rd Annual ACM Symposium on Applied Computing
April 2018
2327 pages
ISBN:9781450351911
DOI:10.1145/3167132
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 09 April 2018

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. device driver
  2. hardware abstraction layer
  3. operating system

Qualifiers

  • Research-article

Conference

SAC 2018
Sponsor:
SAC 2018: Symposium on Applied Computing
April 9 - 13, 2018
Pau, France

Acceptance Rates

Overall Acceptance Rate 1,650 of 6,669 submissions, 25%

Upcoming Conference

SAC '25
The 40th ACM/SIGAPP Symposium on Applied Computing
March 31 - April 4, 2025
Catania , Italy

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 161
    Total Downloads
  • Downloads (Last 12 months)9
  • Downloads (Last 6 weeks)1
Reflects downloads up to 17 Feb 2025

Other Metrics

Citations

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media