Device driver is an important part of an operating system. All I/O device accesses must be done through device drivers. Because they reside in the kernel address space, a driver fault may lead to a system failure, which is not acceptable for embedded systems with high dependability requirements. Many embedded systems execute safety-critical tasks and hence a system failure will cause a great loss.
Running drivers in user mode can prevent the drivers from damaging the operating system kernel. User mode driver resulted in a large performance degradation when it was proposed during the 1980s. Nonetheless, the performance has been improved due to good implementations of system call and context switch. According to the previous study, the performance of a user mode driver for a Gigabit network card can achieve 93% of that of the kernel mode driver in a Linux-based platform.
Although the performance of user mode drivers has been improved, there is still a crucial problem which handicaps user mode drivers from being utilized widely. That is, drivers have to be modified in order to support a given user mode driver framework. In this thesis, we propose a user mode driver framework, which allows a kernel mode driver to be executed in the user space without any code modifications. The framework emulates the kernel-space execution environment in the user space, In this framework, communication between user mode driver process and the kernel is done through I/O request redirection and shared memory. We implemented the framework on an ARM Linux based embedded system platform. The prototype of our framework supports two classes of user mode drivers: character device drivers and network interface drivers. The former includes a LED and a 7-segment user mode device drivers, and the latter consists of an Ethernet user mode device driver.
Our work has two contributions. First of all, we enable direct execution of kernel mode drivers in the user space without any driver code modifications.. Second, we evaluate the performance of user mode drivers in an embedded system. To the best of our knowledge, no results about performance of user mode drivers on embedded systems have been reported. According to the experimental results, the performance of our user mode drivers can achieve 61%~99% of that of the kernel mode ones. This demonstrates that the framework we propose can improve the reliability of system under the acceptable costs of performance.
Identifer | oai:union.ndltd.org:NSYSU/oai:NSYSU:etd-0817107-115635 |
Date | 17 August 2007 |
Creators | Tu, Ching-chi |
Contributors | Hsung-Pin Chang, Jih-Ching Chiu, Da-Wei Chang |
Publisher | NSYSU |
Source Sets | NSYSU Electronic Thesis and Dissertation Archive |
Language | Cholon |
Detected Language | English |
Type | text |
Format | application/pdf |
Source | http://etd.lib.nsysu.edu.tw/ETD-db/ETD-search/view_etd?URN=etd-0817107-115635 |
Rights | not_available, Copyright information available at source archive |
Page generated in 0.002 seconds