|
- 2015
Linux设备驱动的内核服务需求特征
|
Abstract:
重用Linux的设备驱动可以极大拓展新兴操作系统的应用场景, 然而目前对Linux设备驱动对内核服务的需求的理解仍然不足, 重用驱动的工作仍然缺乏辅助工具。该文选取了6类共271个Linux设备驱动作为样本, 基于源代码和历史记录进行分析和统计, 表明Linux设备驱动对内核服务的需求具有通用接口倾向性, 同类设备驱动对内核服务的需求具有相似性, 而不同类驱动的需求特征则有明显不同。这些结论有助于指导Linux设备驱动的重用和相应辅助工具的设计与开发。
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.
[1] | 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. |
[2] | 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. |
[3] | Genode Labs. Genode Operating Framework [Z/OL]. [2014-05-01]. http://genode.org/. |
[4] | 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. |
[5] | 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. |
[6] | Linux Foundation. Internal API changes [Z/OL]. [2011-05-01]. http://www.linuxfound ation.org/content/ 44-internal-api-changes. |
[7] | 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. |
[8] | 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. |
[9] | 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. |
[10] | 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. |
[11] | Cloudius Systems. OSv-the operating system designed for the cloud [Z/OL]. [2014-05-01]. http://osv.io/. |
[12] | 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. |