linux版本差异性分析优化与patch生成

linux版本差异性分析优化与patch生成

ID:23529139

大小:2.78 MB

页数:85页

时间:2018-11-08

linux版本差异性分析优化与patch生成_第1页
linux版本差异性分析优化与patch生成_第2页
linux版本差异性分析优化与patch生成_第3页
linux版本差异性分析优化与patch生成_第4页
linux版本差异性分析优化与patch生成_第5页
资源描述:

《linux版本差异性分析优化与patch生成》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、中文图书分类号:TP391密级:公开UDC:004学校代码:10005硕士专业学位论文PROFESSIONALMASTERDISSERTATION论文题目:Linux版本差异性分析优化与PATCH生成论文作者:罗浩专业类别/领域:计算机技术指导教师:王丹论文提交日期:2017年5月UDC:004学校代码:10005中文图书分类号:TP391学号:S201407085密级:公开北京工业大学硕士专业学位论文(全日制)题目:Linux版本差异性分析优化与PATCH生成英文题目:LINUXVERSIONDIFFERENTIATIONANALYSIS

2、OPTIMIZATIONANDPATCHGENERATION论文作者:罗浩专业类别/领域:计算机技术研究方向:计算机软件技术申请学位:工程硕士专业学位指导教师:王丹教授所在单位:信息学部答辩日期:2017年5月授予学位单位:北京工业大学独创性声明本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得北京工业大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并

3、表示了谢意。签名:罗浩日期:2017年5月27日关于论文使用授权的说明本人完全了解北京工业大学有关保留、使用学位论文的规定,即:学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论文。(保密的论文在解密后应遵守此规定)签名:罗浩日期:2017年5月27日导师签名:王丹日期:2017年5月27日摘要摘要Linux内核代码量极大,逻辑关系复杂,为了方便其他开发者更好的编写诸如驱动程序、文件系统等内核模块内容,Linux内核团队建立了庞大且高效的Linux内核API体系,以方

4、便开发者使用。随着Linux项目的不断发展壮大,其API演化速度也在逐渐加快,而想要将内核模块进行版本适应,使之能够工作在更新或者更符合设计者要求的内核版本中就不得不跨过API修改这一道鸿沟。因此,随着Linux内核API数量的增加及对其修改次数的不断增多,研究并设计一套能够自动化完成内核模块版本适应的系统存在着很高的研究价值和应用价值。为解决版本适应问题,关键在于对版本间API变化信息进行收集和分析,并自动化地根据这些信息对源代码进行修改。在能够提供足够多修改信息的基础上,研制通过这些信息进行自动化修改的工具。本文研究重点就集中到对修改信

5、息的处理和转化为工具可识别内容上。具体研究内容包括:1、提出了一种采用抽象语法树作为主体的变化信息的收集方法。首先,通过编译工具获取两个版本源代码的抽象语法树内容的差异,以之作为修改信息源。由于源代码中普遍存在对于变化来说不敏感的内容,本文重点研究解决了如何从中提取能够代表最大范围源代码修改的信息,其中包括如何对从编译器中得到的信息进行分类合并,并对不敏感信息进行抽象化处理,以保证修改信息的泛用性和准确性,并将无用信息简化等。相比现有的基于文本分析和编译错误分析方法而言,这种方法能够更精确全面地获取修改信息并且更方便对其进行划分。2、提出了

6、一种将进行过处理的修改信息生成为Patch的处理方法。该方法通过对AST-Pattern中所表现出的修改信息进行收集,并保证其能够解决正确地对源代码中需要修改的部分进行匹配等问题。以此为基础设计并实现了通过语义信息生成Patch的方法,并通过这一方法来完成源代码的自动化修改。3、设计并实现了验证系统。本文通过对API修改进行分析和定义,选取了5个包含驱动和文件系统在内的内核模块,总结了从Linux-3.10版本到3.17版本间全部93个与其相关的API修改提交作为分析主体,验证本文系统在分析差异信息后所自动化做出的源代码修改和开发人员实际作

7、出的修改之间的差异,并以此为基础分析本文系统的可行性以及实现效果,并进一步提出未来的改进方向。关键词:Linux;内核模块移植;源代码分析-I-AbstractAbstractLinuxkernelcodeisverylargeandcomplex,inordertofacilitateotherdeveloperstodevelopkernelmodulebetter,LinuxkernelteamestablishedalotsofLinuxkernelAPIfordeveloperstouse.Withthegrowingoflinu

8、x,thenumberofitsAPIisevolutionwithahighspeed.Toadaptionkernelmodulefromaversiontoanother,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。