Abstract
Interactions among operating system, drivers, and peripheral devices are important for users to understand data communication at low system level, system architecture, and hardware programming. In this chapter, we study low-level data communication and resource management by conducting the development of a USB device driver. A reverse engineering approach has been adopted in this study, and we focus on exploring the USB protocol and developing a device driver for the Linux operating system. We have performed various experiments to evaluate the device driver from different aspects, and all testing results are remarkably good. We believe this work can provide users a clear practical understanding of data communication from the hardware level to user space applications as well as theoretical foundations to reproduce any unsupported peripheral hardware devices.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Linux Driver Project. http://www.linuxdriverproject.org
USB desktop Missile Launcher. http://www.brookstone.com/usb-desktop-missile-launcher
Anderson, D., & Dzatko, D. (2001). Universal serial bus system architecture (2nd ed.). Addison-Wesley Professional.
Axelson, J. (2009). USB complete: The developer’s guide (4th ed.). Lakeview Research.
Corbet, J., Rubini, A., & Kroah-Hartman, G. (2005). Linux device drivers (3rd ed.). Sebastopol, CA: O’Reilly.
Kadav, A., & Swift, M. (2012). Understanding modern device drivers. ACM SIGARCH Computer Architecture News, 40(1), 87–98.
USBlyzer. http://www.usblyzer.com
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer International Publishing Switzerland
About this paper
Cite this paper
Sedaghat, L., Duerling, B., Huang, X., Tang, Z. (2014). Exploring Data Communication at System Level Through Reverse Engineering: A Case Study on USB Device Driver. In: Wong, W.E., Zhu, T. (eds) Computer Engineering and Networking. Lecture Notes in Electrical Engineering, vol 277. Springer, Cham. https://doi.org/10.1007/978-3-319-01766-2_38
Download citation
DOI: https://doi.org/10.1007/978-3-319-01766-2_38
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-319-01765-5
Online ISBN: 978-3-319-01766-2
eBook Packages: EngineeringEngineering (R0)