Font Size: a A A

Study And Implementation On Automatic Updating Of Linux Device Drivers

Posted on:2019-07-02Degree:MasterType:Thesis
Country:ChinaCandidate:Y Y RenFull Text:PDF
GTID:2348330542991662Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
Device drivers are an important part of the operating system kernel,playing a pivotal role in the kernel.Moreover,device drivers often account for more than 50%of source codes of the kernel,while the device drivers are directly dependent with the hardware and the corresponding design logic is very complex.Thereafter,the workload of developing and maintaining device drivers is extremely heavy,which makes device drivers to be a major source of vulnerabilities of operating system kernel.Among the many operating systems,the Linux is the first candidate of operating systems for a wide range of servers and smart devices.In order to meet new needs and to improve system performance continuously,the Linux kernel has evolved rapidly and those evolutions require that realted device drivers to be updated in time.Especially,device drivers are more dependent on the functions and data structures of the kernel,so any changes to the kernel and the interface of library to support device drivers can cause a large amount of adjustments to those associated device drivers.There is no doubt that the updating of device drivers will be more and more frequently.It should be pointed out that,at present,the updating of device drivers is almost completely done manually,which is time-consuming and error-prone,therefore the automation of device driver updates is imperatively.In summary,this paper is to carry out the study on automatic methods and techniques for updating device drivers,and this has both important practical significance and application value.Firstly,difference analysis as for Linux kernels,GCC plugin and abstract syntax tree,function call graph and other related work as well as collateral evolution problem about device drivers have been studied and discussed in this paper.Then,the interface that device drivers depend on the kernel is analyzed and discussed in detail,while changes of such interface is classified and an automatic method of updating Linux device drivers based on source codes is put forward and the corresponding assisted updating model is built.Furthermore,the device-driver-dependent kernel interfaces(i.e.functions,macros and data structures)are extracted automatically.In addition,the differences of such interfaces are analyzed and are classified according to their influence on collateral updating of device drivers.Thereafter,the corresponding auxiliary information and prompts for updating device drivers are generated for developers to be used to implement fast and reliable updating of device drivers.At the same time,a set of tools to support automatic updating of device drivers are designed and implemented in this paper.They are a tool to extract device-drivers-dependent kernel interfaces for the Linux device drivers(including dependency analysis tools for header files and interface declaration analysis tools),a tool to analyze differences between device-drivers-dependent kernel interfaces for two versions of kernels,and a tool to generate auxiliary information for updating of device drivers.Test results for the prototypes have been show that the updating method and the prototypes are highly practical and they can effectively improve the development and maintenance for device drivers.In the meantime,the concepts and calculation methods for the rate of false reporting and the rate of missing reporting about prompt information for auxiliary updating are put forword and discussed,and they can be as the quantitative indexes used to evaluate auxiliary update work for device drivers.The study about automatic updating of device drivers in this paper is just the first step about such efforts.Works about automatic modification as for source codes of device drivers and its integration with relevant development process and development environment can be done in further research.
Keywords/Search Tags:Device Drivers, Automatic Updating, Kernel-dependent Interfaces, Source Codes, Linux
PDF Full Text Request
Related items