Font Size: a A A

Research And Implementation Of The Communication Mechanism For Non-Kernel Device Drivers

Posted on:2017-03-04Degree:MasterType:Thesis
Country:ChinaCandidate:Z TanFull Text:PDF
GTID:2308330485460564Subject:Computer technology
Abstract/Summary:PDF Full Text Request
With the development and improvement of computer technology and computer hardware, the safety and reliability of operating systems is gaining more and more attention. Kernel is the core of operating systems. More than half of kernel codes are made up of device drivers. Study has shown that most of kernel bugs are found in device drivers. Device drivers always run in kernel-space with system level permission, which means that if some bugs or malicious code exist in device drivers, it could harm the entire operating systems. A bug in device drivers could even render the whole system unusable. In this paper, we propose a methodology that could effectively move part of device drivers from kernel-space to user-space and thus, isolating bugs in device drivers from the rest of the kernel. To reduce the extra overhead introduced by this split, we propose a communication mechanism that helps improve the interaction between user-space and kernel-space within device drivers.To isolate device drivers, the typical way is to split device drivers into kernel-space part and user-space part. Based on the analysis of existing work of splitting device drivers, we come up with a methodology that could effectively move part of a device driver from kernel space to user space. Following the methodology, we analyze the functions of an audio device driver and a network device driver, and successfully find the functions that are suitable for migration to user-space. In order to make device drivers run normally after splitting, the communication mechanism between Linux kernel-space and user-space is studied. A new communication mechanism is proposed, which is based on completion and IOCTL system call. We also design related data structures to support the proposed communication mechanism. Under this mechanism, data exchange between two modules is realized by request and response. In order to reduce communication extra loss between kernel-space and user-space, we also studied the non-kernel data shared. To a certain extent, the above research has achieved bugs isolation technology of device driver, ensuring reliability of operation system without reducing the operating efficiency of device drivers and operation systems performance.The experimental results show that the split device drivers are able to achieve all the functionality as the original drivers, and will not increase too much system overhead when in process of running. Future work can be focused on the automation of splitting device drivers.
Keywords/Search Tags:Reliability of operating systems, Device drivers, Kernel-space device, drivers, User-space device drivers
PDF Full Text Request
Related items