用户名: 密码: 验证码:
基于微内核系统的设备驱动虚拟化技术研究
详细信息    本馆镜像全文|  推荐本文 |  |   获取CNKI官网全文
摘要
随着计算机操作系统的发展,其架构逐渐呈现出多样化。一体化内核由于其在性能等方面的优势,一直是操作系统的主要架构。但随着人们对系统安全性和灵活性的日益关注,其它架构的操作系统也逐渐发展起来。微内核系统以追求更高的安全性和更好的模块化设计为目标,形成了不同于传统一体化内核的系统结构。但由于第一代微内核对系统通信机制IPC的实现不成功,导致微内核系统的性能较差,没有引起研究人员的广泛关注。以L4为代表的第二代微内核系统的出现,实现了同步IPC的通信机制,大大改善了微内核系统的性能问题,使其重新回到人们的视野中。
     微内核只提供策略,并不实现机制。因此,几乎所有位于一体化内核的功能被移到了微内核以外,如设备驱动。目前,为微内核系统实现设备驱动还处于研究阶段,没有统一的方式。
     本文介绍了第二代微内核标准L4的特点,并以它的一个API实现-L4/Fiasco为例,说明微内核的系统结构和核心机制。文章通过对现有微内核系统实现设备驱动方式的研究,着重讨论了使用DROPS项目提供的设备驱动环境DDE,为L4/Fiasco系统实现设备驱动的过程。文章首先为Linux系统实现了并口马达驱动,以此为基础,设计L4/Fiasco上并口驱动实例,完成微内核系统下的并口驱动服务器。L4/Fiasco的系统功能都被设计成服务器的模式,此并口驱动也实现了服务器接口,故其可对位于微内核之上的不同应用程序同时提供服务,实现了设备驱动虚拟化的功能。文章最后对并口驱动服务器的性能进行测试,对使用DDE为微内核实现设备驱动程序的这种方式进行评估和分析。
With the development of computer operating system, its structure becomes diversified. For the advantages in performance, monolithic kernel has been the major structure of the operating system. But as the people increasing concern in system security and flexibility, the other operating systems architecture is gradually developed. Microkernel system in pursuit of greater security and better modular design as the goal formed a kernel architecture which is different from traditional monolithic kernel. However, for the first-generation microkernel have implemented system communication mechanism-IPC unsuccessfully, resulting in poor performance of the microkernel system and hasn't caused widespread concern of researchers. With the appearance of second-generation micro-kernel systems-L4 which achieved synchronous IPC communication mechanism has greatly improved the issue of microkernel system performance, it take the microkernel back in the people's field of vision.
     Microkernel only provides strategy, doesn't implement mechanism. Thus, almost all functions which original in the monolithic kernel are moved outside Microkernel, such as device drivers. At present, the device driver implementation for the microkernel system is still in the research stage, there is no uniform way.
     This article describes characteristics of L4 which is the second generation microkernel standard, and takes one of its API implementation-L4/Fiasco as instance, illustrates microkernel system structure and its core mechanism. By studying the existing device driven implementation approach for microkernel system, this article focuses on the process of implementing device drivers for the L4/Fiasco system, by using device driver environment DDE provided by DROPS project.This article first implements parport motor driver for the Linux system, as it's a basis, then designs the parallel port driver instance on L4/Fiasco, finally completes the parport driver server under the microkernel system. L4/Fiasco system functions are designed into the server mode, this parport driver also implements a server interface, so it's can providing services at the same time to the different applications which located on top of microkernel, and achieved the function of device driver virtualization. At last we test the performance of the parport driver server, in order to assess and analyze the manner which uses DDE building device driver for the microkernel.
引文
[I]Benjamin Roch, TU Wien, Monolithic kernel vs. Microkernel,2004.
    [2]http://en.wikipedia.org/wiki/Monolithic_kernel.
    [3]http://en.wikipedia.org/wiki/Microkernel.
    [4]Microkernel-Based Operating Systems Lecture Documentation, http://os.inf.tudresden.de/Studium/KMB/WS2008/.
    [5]A.Chou and J. Yang and B. Chelf and S. Hallem and D. Engler. An Empirical Study of Operating System Errors. In Proc.18th ACM Symp. On Oper. Syst. Prin, pages 73-88,2001.
    [6]M.Swift, M. Annamalai, B. Bershad, and H. Levy. Recovering Device Drivers. In Proc. Sixth Symp. On Oper. Syst. Design and Impl., pages 1-15,2004.
    [7]Michael M. Swift, Brian N. Bershad, and Henry M. Levy. Improving the reliability of commodity operating systems. In Proceedings of the 19th ACM Symposium on Operating Systems Principles, pages 207-222, Bolton Landing, NY, October 2003. doi:10.1145/1047915.1047919
    [8]J. N. Herder, H. Bos, B. Gras, P. Homburg, and A. S. Tanenbaum. Reorganizing UNIX for Reliability. In Proc.11th Asia-Pacific Computer Systems Architecture Conference, Sept.2006.
    [9]http://os.inf.tu-dresden.de/L4.
    [10]http://en.wikipedia.org/wiki/Virtualization
    [11]Amit Singh, "An Introduction to Virtualization", http://www.kernelthread.com/publications/virtualization/
    [12]http://en.wikipedia.org/wiki/Operating_system-level_virtualization
    [13]Joshua LeVasseur, Volkmar Uhlig, Jan Stoess, Stefan Gotz, Unmodified Device Driver Reuse and Improved System Dependability via Virtual Machines, Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation, 2004
    [14]B. Ford, G. Back, G. Benson, J. Lepreau, A. Lin, and O. Shivers. The Flux OSKit: A substrate for kernel and language research. In Proc. of the 16th ACM Symposium on Operating Systems Principles, Saint-Malo, France, Oct.1997.
    [15]http://en.wikipedia.org/wiki/Paravirtualization
    [16]Jorrit N. Herder, Herbert Bos, Ben Gras, Philip Homburg, and Andrew S. Tanenbaum, Construction of a Highly Dependable Operating System, Proceedings of the Sixth European Dependable Computing Conference,2006
    [17]M. Swift, M. Annamalai, B. Bershad, and H. Levy. Recovering Device Drivers. In Proc. Sixth Symp. On Oper. Syst. Design and Impl., pages 1-15,2004.
    [18]M. Swift, B. Bershad, and H. Levy. Improving the Reliability of Commodity Operating Systems.23(1):77-110,2005.
    [19]Joshua LeVasseur, Volkmar Uhlig, A Sledgehammer Approach to Reuse of Legacy Device Drivers, Proceedings of the 11th workshop on ACM SIGOPS European workshop,2004
    [20]http://wiki.tudos.org/DDE/
    [21]Dresden Real-Time Operating System, http://os.inf.tu-dresden.de/drops/overview.html,2002.
    [22]Fiasco, http://os.inf.tu-dresden.de/fiasco/
    [23]Adam Lackorzynski, L4Linux on L4Env, Dresden University of Technology Department of Computer Science Operating Systems Group, December,2002.
    [24]Jochen Liedtke. u-kernels must and can be small.5Th Workshop on Object-Orientation in Operating Systems (IWOOOS), October 1996
    [25]R. Rashid, R. Baron, A. Forin, D. Golub, M. Jones, D. Julin, D. Orr, and R. Sanzi, "Mach:A foundation for open systems," in Proc.2Nd. Workshop Workstation Operating System, Sept.1989.
    [26]http://www.14ka.org/projects/pistachio/
    [27]ZHOU Qingguo, DING Ying, LI Canyu, CHENG Guanghui, Nicholas McGuire, A Case Study of Microkernel for Education, IEEE International Symposium on IT in Medicine & Education 2009, Shandong
    [28]H. Hartig, R. Baumgartl, M. Borriss, Cl.-J. Hamann, M. Hohmuth, F. Mehnert, L. Reuther, S. Schonberg, J. Wolter, DROPS - OS Support for Distributed Multimedia Applications, Proceedings of the Eigth ACM SIGOPS European Workshop (EW 98), Sintra, Portugal, September 1998.
    [29]Alan Au, Gernot Heiser, L4 User Manual Version 1.14, The University of New South Wales, Sydney 2052, Australia:School of Computer Science and Engineering, March,1999
    [30]H. Hartig, M. Hohmuth, J. Liedtke, S. Schonberg, J. Wolter, The Performance of μ-Kernel-based Systems, Appeared at 16th SOSP; also in "Wiss. Beitrage zur Informatik", TU Dresden, Fakultat Informatik, Heft,1997
    [31]Jochen Liedtke, Improving IPC by kernel design, In Proceedings of the 14th ACM Symposium on OS Principles, page:175-88, Asheville, NC, USA, December 1993.
    [32]Jochen Liedtke, Kevin Elphinstone, Sebastian Schonberg, Hermann Hartig. Achieved IPCPerformance.6th Workshop on Hot Topics in Operating Systems (HotOS), May 5-6,1997, Chatham (Cape Code), Massachusetts
    [33]Jochen Liedtke, On u-kernel construction, In Proceedings of the 15th ACM Symposium on OS Principles, pages 237-250, Copper Mountain, CO, USA, December 1995.
    [34]Operating System Research Group, TU Dresden. - L4Env - An Environment for L4 Applications, Operating Systems Research Group Technische Univeritat Dresden, June,2003.
    [35]Roland Aigner. DICE Version 3.3.0 User's Manual, November 2007. Available at URL:http://www.inf.tu-dresden.de/content/institutes/sya/os/forschung/projekte/dice/ manual-3.3.0.pdf.13
    [36]D. B. Golub, G. G. Sotomayor, Jr., and F. L. Rawson Ⅲ. An architecture for device drivers executing as user-level tasks. In Proc. of the USENIX Mach Ⅲ Symposium, Sante Fe, NM, Apr.1993.
    [37]B. Leslie, P. Chubb, N. Fitzroy-Dale, S. Gotz, C. Gray, L. Macpherson, Y.-T. S. Daniel Potts, K. Elphinstone, and G. Heiser. User-Level Device Drivers:Achieved Performance. Journal of Computer Science and Technology,20(5), Sept.2005.
    [38]http://en.wikipedia.org/wiki/Parallel_port
    [39]linux/Documentation/devices.txt
    [40]Jonathan Corbet, Alessandro Rubini, and Greg Kroah Hartman, Linux Device Drivers, Version3, OReilly Media, Inc2005
    [41]Dirk Vogt, USB for the L4 Environment,23. September 2008, Technische Universitat Dresden, Fakultat Informatik, Institut fur Systemarchitektur, Professur fur Betriebssysteme.
    [42]Cheng Guanghui, Nicholas Mc Guire, L4/Fiasco/L4Linux Kickstart, Distributed & Embedded Systems Lab, Lanzhou University, December,2006.

© 2004-2018 中国地质图书馆版权所有 京ICP备05064691号 京公网安备11010802017129号

地址:北京市海淀区学院路29号 邮编:100083

电话:办公室:(+86 10)66554848;文献借阅、咨询服务、科技查新:66554700