论文部分内容阅读
计算机系统的稳定性越来越为人们所重视,而计算机系统的稳定性很大程度上取决于操作系统的稳定性。研究表明,设备驱动程序是导致操作系统内核崩溃的主要原因。如何改进现有设备驱动模型以提高操作系统稳定性始终是计算机领域的一个研究热点。本文正是基于这样的背景提出并研究了一种基于内核态Java虚拟机的安全设备驱动模型,使用类型安全的Java语言来开发驱动程序,目的是降低因驱动程序而引起的内核不稳定。主要研究内容包括Java驱动模型的架构、内核态Java虚拟机的设计以及Java驱动程序的编程模型。内核态Java虚拟机是驱动模型安全性的基础,因此它的设计是本文重点阐述的内容。
为了验证模型的可行性,本文实现了一个虚拟字符设备、一个USB鼠标以及一个USB网卡的Java驱动,并重点对USB网卡进行了稳定性和性能相关的测试。测试结果表明,与C驱动相比,Java驱动在提高系统稳定性上有明显优势,表现在消除了很多与指针相关的编译错误,能够及时发现并阻止常见的运行错误,而这些错误在C驱动中很容易就导致内核的崩溃甚至破坏内核数据;在性能方面,Java驱动对设备性能几乎没有影响,即设备依然正常工作,但是造成系统性能一定程度的下降,表现为占用了更多的CPU,这是采用Java驱动付出的代价。
目前模型的设计主要是基于Linux平台,其它平台若对驱动的访问也是通过标准化的接口进行的,则现在的模型很容易被移植到该平台上。