Abstract：Reuse of Linux device drivers allows new operating systems to be deployed over a wider range of hardware platforms. However, there are few tools to help developers reuse device drivers due to the lack of a thorough understanding of the requirement characteristics for kernel services by device drivers. The source codes of 271 device drivers in 6 categories were analyzed to identify their required kernel services. The results show that the drivers prefer generic interfaces over specialized ones. In addition, drivers in the same category have similar requirements while drivers in different categories do not. The conclusions will guide the reuse of Linux device drivers and the design of tools to help developers reuse drivers.
茅俊杰, 陈渝. Linux设备驱动的内核服务需求特征[J]. 清华大学学报（自然科学版）, 2015, 55(8): 911-915.
MAO Junjie, CHEN Yu. Requirement characteristics for kernel services of Linux device drivers. Journal of Tsinghua University(Science and Technology), 2015, 55(8): 911-915.
 Klein G, Elphinstone K, Heiser G, et al. seL4: Formal verification of an OS kernel [C]// Proceedings of the 22nd ACM Symposium on Operating Systems Principles. Big Sky, Montana: ACM Press, 2009: 207-220.
 Andrew B, Simon P, Adrian S, et al. Your computer is already a distributed system. Why isn't your OS [C]// Proceeding of 12th workshop on Hot Topics in Operating Systems. Monte Verita, Switzerland: USENIX Association, 2009: 1-5.
 Clements A, Kaashoek F, Zeldovich N, et al. The scalable commutativity rule: Designing scalable software for multicore processors [C]// Proceedings of the 24th ACM Symposium on Operating Systems Principles. Farmington, Pennsylvania, USA: ACM Press, 2013: 1-17.
 Cloudius Systems. OSv-the operating system designed for the cloud [Z/OL]. [2014-05-01]. http://osv.io/.
 LeVasseur J, Uhlig V, Stoess J, et al. Unmodified device driver reuse and improved system dependability via virtual machines [C]// Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation, San Francisco, CA, USA: USENIX Association, 2004: 17-30.
 Ryzhyk L, Chubb P, Kuz I, et al. Automatic device driver synthesis with Termite [C]// Proceedings of the 22nd ACM Symposium on Operating System Principles. Big Sky, MT, USA: ACM Press, 2009: 73-86.
 Boyd-Wickizer S, Zeldovich N. Tolerating Malicious Device Drivers in Linux [C]// Proceedings of USENIX Annual Technical Conference. Boston, MA, USA: USENIX Association, 2010: 1-14.
 Genode Labs. Genode Operating Framework [Z/OL]. [2014-05-01]. http://genode.org/.
 Kadav A, Swift M. Understanding modern device drivers [C]// Proceedings of the 17th international conference on Architectural Support for Programming Languages and Operating Systems. London, UK: ACM Press, 2012: 87-98.
 Tschudin P, Reveillere L, Jiang L, et al. Understanding the genetic makeup of Linux device drivers [C]// Proceedings of the Seventh Workshop on Programming Languages and Operating Systems. Farmington, Pennsylvania, USA: ACM Press, 2013: 3-6.
 Linux Foundation. Internal API changes [Z/OL]. [2011-05-01]. http://www.linuxfound ation.org/content/ 44-internal-api-changes.
 Padioleau Y, Lawall J, Muller G. Understanding collateral evolution in Linux device drivers [C]// Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems. Leuven, Belgium: ACM Press, 2006: 59-71.