1(中国科学院大学 北京 100049);2(中国科学院软件研究所基础软件国家工程研究中心 北京 100190);3(计算机科学国家重点实验室(中国科学院软件研究所) 北京 100190) (libin@iscas.ac.cn)
出版日期:
2021-01-01基金资助:
中国科学院战略性先导科技专项(XDA-Y01-01,XDC02010600)Recommending Interface Patches for Forward Porting of Linux Device Drivers Based on Existing Instances
Li Bin1,2, He Yeping1,2,3, Ma Hengtai1,2, Rui Jianwu1,21(University of Chinese Academy of Sciences, Beijing 100049);2(National Engineering Center of Fundamental Software, Institute of Software, Chinese Academy of Sciences, Beijing 100190);3(State Key Laboratory of Computer Science(Institute of Software, Chinese Academy of Sciences), Beijing 100190)
Online:
2021-01-01Supported by:
This work was supported by the CAS Strategic Priority Program (XDA-Y01-01, XDC02010600).摘要/Abstract
摘要: Linux内核版本频繁升级对驱动程序带来的关联影响程度和影响范围都很大,为了修复这种关联影响带来的驱动程序调用内核接口的不一致性错误,不断修改旧版本驱动代码进行前向移植是一个持续和紧迫的问题.驱动演化辅助理解、驱动移植中间库辅助适配和驱动移植辅助信息等方面的已有研究,通过检索语句级别的辅助信息提高了驱动移植的效率.但是已有方法仅关注了检索辅助信息本身却并没有区分其中包含的有效补丁素材,因此还需要人工分析和手工构造适配性补丁.为了克服上述限制,提出了一种全新的方法旨在推荐驱动前向移植中接口错误的高质量补丁.观察发现,依赖相同内核接口服务的多个不同驱动程序之间存在相同或相似的内核接口调用,内核版本升级后其他驱动的历史开发信息中可能存在这种复用接口及其使用变更的已有实例代码.利用出错接口语句和相似已有实例的共性分析错误问题的特点,通过已有实例的辅助作用抽取针对性的接口修改方式和修改内容等细粒度素材生成待推荐补丁.具体结合分界点识别、相似度计算、细粒度差异比较和频度计算确定有效修改方式.提出了一种基于已有实例差异特征的分类算法,通过区分修改内容的不同类型分别从2种数据源提取.最后使用编辑脚本技术生成推荐补丁列表.在9个不同类型的真实驱动程序上的实验表明,该方法能够推荐驱动移植中7类接口错误补丁,有效补丁占比约67.4%,对现有辅助方法形成了有效补充和拓展.
参考文献
相关文章 15
[1] | 汪烨, 陈骏武, 夏鑫, 姜波. 智能需求获取与建模研究综述[J]. 计算机研究与发展, 2021, 58(4): 683-705. |
[2] | 鲍阳, 杨志斌, 杨永强, 谢健, 周勇, 岳涛, 黄志球, 郭鹏. 基于限定中文自然语言需求的SysML模型自动生成方法[J]. 计算机研究与发展, 2021, 58(4): 706-730. |
[3] | 王春晖, 金芝, 赵海燕, 崔牧原. 一种用户故事需求质量提升方法[J]. 计算机研究与发展, 2021, 58(4): 731-748. |
[4] | 钟仁毅, 王翀, 梁鹏, 罗忠. 基于版本更新日志的移动应用演化趋势自动分析[J]. 计算机研究与发展, 2021, 58(4): 763-776. |
[5] | 陈磊, 王丹丹, 王青, 石琳. 基于图挖掘扩展学习的增强需求跟踪恢复方法[J]. 计算机研究与发展, 2021, 58(4): 777-793. |
[6] | 蒲勇霖, 于炯, 鲁亮, 李梓杨, 国冰磊, 廖彬. 基于Storm平台的数据恢复节能策略[J]. 计算机研究与发展, 2021, 58(3): 479-496. |
[7] | 毛安琪, 汤小春, 丁朝, 李战怀. 集中式集群资源调度框架的可扩展性优化[J]. 计算机研究与发展, 2021, 58(3): 497-512. |
[8] | 周鹏, 武延军, 赵琛. 一种融合程序员和神经网络的自动化程序生成方法[J]. 计算机研究与发展, 2021, 58(3): 638-650. |
[9] | 于畅, 王雅文, 林欢, 宫云战. 基于故障检测上下文的等价变异体识别算法[J]. 计算机研究与发展, 2021, 58(1): 83-97. |
[10] | 王继娜, 陈军华, 高建华. 基于排序损失的ECC多标签代码异味检测方法[J]. 计算机研究与发展, 2021, 58(1): 178-188. |
[11] | 张云洁, 张璇, 王旭, 任峻民, 唐子淇. 基于边际贡献的需求变更技术债务量化评估[J]. 计算机研究与发展, 2021, 58(1): 208-223. |
[12] | 于亚新, 张文超, 李振国, 李莹. 基于超图的EBSN个性化推荐及优化算法[J]. 计算机研究与发展, 2020, 57(12): 2556-2570. |
[13] | 沈洁, 龙标, 姜浩, 黄春. 飞腾处理器上向量三角函数的设计实现与优化[J]. 计算机研究与发展, 2020, 57(12): 2610-2620. |
[14] | 马卿云, 季航旭, 赵宇海, 毛克明, 王国仁. 一种分布式异构带宽环境下的高效数据分区方法[J]. 计算机研究与发展, 2020, 57(12): 2683-2693. |
[15] | 谭坚, 罗巧玲, 王丽一, 胡夏晖, 范昊, 徐占. 基于SMT求解器的微处理器指令验证数据约束生成技术[J]. 计算机研究与发展, 2020, 57(12): 2694-2702. |
PDF全文下载地址:
https://crad.ict.ac.cn/CN/article/downloadArticleFile.do?attachType=PDF&id=4338