当前位置:主页 > 科技论文 > 软件论文 >

Linux内核错误追溯系统的研究与设计

发布时间:2018-07-04 10:50

  本文选题:Linux + 错误追溯 ; 参考:《北京工业大学》2016年硕士论文


【摘要】:Linux内核代码量大、逻辑关系复杂,因此对内核中的错误进行追溯和调试一直以来都是一件既耗费时间又耗费精力的事情。已有的错误追溯方法和技术种类繁多、效果各异,但几乎都是面向一般的应用程序,很难或者无法适用到Linux内核上,且传统的Linux内核错误调试方法复杂不直观,对使用者要求也高。因此,研究并设计针对Linux内核错误追溯的系统具有一定的研究和实用意义。Linux内核错误按照错误的发生阶段可以分为静态编译错误和动态运行错误。本文首先研究了国内外错误追溯相关技术,分析了各种错误追溯技术的特点,然后分别针对静态编译错误和动态运行错误提出了对应的错误处理方法,并结合已有技术设计并实现了Linux内核错误追溯系统。主要研究内容如下:1、针对静态编译错误,本文选择需要频繁跟随内核进行升级更新的设备驱动进行研究。Linux设备驱动数量众多,在更新过程中会遇到大量编译错误。本文采用静态程序分析技术对不同版本间的Linux内核接口进行了差异分析,并结合历史提交信息检索技术对设备驱动更新错误进行分析和解释,设计并实现了可以对Linux设备驱动更新错误进行追溯的系统。2、针对动态运行错误,本文根据其错误信息少、难以定位的特点提出了一种静态和动态程序分析技术相结合的方法进行错误追溯。静态方面使用静态程序分析技术对Linux内核中的函数调用信息进行收集,并且对单一函数采用静态后向程序切片技术来实现。动态方面,本文使用动态执行信息收集技术对Linux内核的运行过程进行记录,用来在分析过程中还原真实的内核执行流程。两种技术的结合使用可以确保能够对真实运行的函数进行程序切片,使得切片结果更加精确,更加便于开发者调试和追溯运行错误。3、最后对上述两部分分别设计了实验来验证可行性。通过对几个真实的设备驱动进行更新,并使用工具来辅助解决编译问题,成功地将实验中的设备驱动升级到版本较新的Linux内核中。对于运行错误,则通过使用工具分析一个已知的Linux内核错误来验证方法的可行性。
[Abstract]:Linux kernel has a large amount of code and complex logic relations, so tracing and debugging errors in the kernel has always been a time-consuming and energy-consuming thing. There are many kinds of error tracing methods and techniques, but almost all of them are oriented to general applications, which are difficult or unable to be applied to Linux kernel, and the traditional methods of debugging errors in Linux kernel are complicated and not intuitionistic. High requirements for users. Therefore, the research and design of Linux kernel error tracing system has certain research and practical significance. Linux kernel errors can be divided into static compilation errors and dynamic running errors according to the occurrence stage of the errors. This paper first studies the related technologies of error tracing at home and abroad, analyzes the characteristics of various error tracing techniques, and then puts forward corresponding error handling methods for static compilation errors and dynamic running errors, respectively. The Linux kernel error tracing system is designed and implemented in combination with the existing technology. The main research contents are as follows: 1. Aiming at the static compilation error, this paper selects the device driver that needs to follow the kernel frequently to update the device driver. The Linux device driver has a large number of device drivers, and will encounter a large number of compilation errors in the update process. This paper analyzes the differences of Linux kernel interface between different versions by using static program analysis technology, and analyzes and explains the update error of device driver with history submission information retrieval technology. This paper designs and implements the system. 2, which can trace the update error of Linux device driver. This paper presents a method of combining static and dynamic program analysis techniques to trace errors. In the static aspect, the static program analysis technique is used to collect the function call information in the Linux kernel, and the static backward program slicing technique is used to realize the single function. On the dynamic side, this paper uses dynamic execution information collection technology to record the running process of Linux kernel, which is used to restore the real kernel execution flow in the analysis process. The combination of the two techniques ensures the ability to slice real-world functions, making the slicing results more accurate. It is more convenient for developers to debug and trace error. 3. Finally, experiments are designed to verify the feasibility of the above two parts. By updating several real device drivers and using tools to help solve the compilation problem, the experimental device drivers were successfully upgraded to the newer Linux kernel. For running errors, verify the feasibility of the method by analyzing a known Linux kernel error using a tool.
【学位授予单位】:北京工业大学
【学位级别】:硕士
【学位授予年份】:2016
【分类号】:TP311.56;TP316.81


本文编号:2095832

资料下载
论文发表

本文链接:https://www.wllwen.com/kejilunwen/ruanjiangongchenglunwen/2095832.html


Copyright(c)文论论文网All Rights Reserved | 网站地图 |

版权申明:资料由用户190c0***提供,本站仅收录摘要或目录,作者需要删除请E-mail邮箱bigeng88@qq.com