计算机研究与发展2021,Vol.58Issue(1) :189-207.DOI:10.7544/issn1000-1239202120200284

基于已有实例的Linux驱动程序前向移植接口补丁推荐

Recommending Interface Patches for Forward Porting of Linux Device Drivers Based on Existing Instances

李斌 贺也平 马恒太 芮建武
计算机研究与发展2021,Vol.58Issue(1) :189-207.DOI:10.7544/issn1000-1239202120200284

基于已有实例的Linux驱动程序前向移植接口补丁推荐

Recommending Interface Patches for Forward Porting of Linux Device Drivers Based on Existing Instances

李斌 1贺也平 2马恒太 1芮建武1
扫码查看

作者信息

  • 1. 中国科学院大学 北京100049;中国科学院软件研究所基础软件国家工程研究中心 北京100190
  • 2. 中国科学院大学 北京100049;中国科学院软件研究所基础软件国家工程研究中心 北京100190;计算机科学国家重点实验室(中国科学院软件研究所)北京100190
  • 折叠

摘要

Linux内核版本频繁升级对驱动程序带来的关联影响程度和影响范围都很大,为了修复这种关联影响带来的驱动程序调用内核接口的不一致性错误,不断修改旧版本驱动代码进行前向移植是一个持续和紧迫的问题驱动演化辅助理解、驱动移植中间库辅助适配和驱动移植辅助信息等方面的已有研究,通过检索语句级别的辅助信息提高了驱动移植的效率但是已有方法仅关注了检索辅助信息本身却并没有区分其中包含的有效补丁素材,因此还需要人工分析和手工构造适配性补丁.为了克服上述限制,提出了一种全新的方法旨在推荐驱动前向移植中接口错误的高质量补丁观察发现,依赖相同内核接口服务的多个不同驱动程序之间存在相同或相似的内核接口调用,内核版本升级后其他驱动的历史开发信息中可能存在这种复用接口及其使用变更的已有实例代码利用出错接口语句和相似已有实例的共性分析错误问题的特点,通过已有实例的辅助作用抽取针对性的接口修改方式和修改内容等细粒度素材生成待推荐补丁具体结合分界点识别、相似度计算、细粒度差异比较和频度计算确定有效修改方式提出了一种基于已有实例差异特征的分类算法,通过区分修改内容的不同类型分别从2种数据源提取最后使用编辑脚本技术生成推荐补丁列表在9个不同类型的真实驱动程序上的实验表明,该方法能够推荐驱动移植中7类接口错误补丁,有效补丁占比约674%,对现有辅助方法形成了有效补充和拓展.

关键词

驱动移植/已有实例/接口复用/修改方式/补丁推荐/接口错误

引用本文复制引用

基金项目

中国科学院战略性先导科技专项(XDA-Y01-01)

中国科学院战略性先导科技专项(XDC02010600)

出版年

2021
计算机研究与发展
中国科学院计算技术研究所 中国计算机学会

计算机研究与发展

CSTPCDCSCD北大核心
影响因子:2.649
ISSN:1000-1239
被引量2
参考文献量3
段落导航相关论文