首页> 中文学位 >基于覆盖测试的linux内核裁剪
【6h】

基于覆盖测试的linux内核裁剪

代理获取

目录

中文摘要

英文摘要

目录

1 绪论

1.1课题的研究目的和意义

1.2研究现状

1.3课题主要研究工作

1.4论文结构

2 插装覆盖测试工具的设计

2.1覆盖测试

2.2插装工具设计

2.3词法语法分析程序设计

2.4分布式代码插桩

3 Linux内核分析

3.1 Linux内核

3.2 X86架构

3.3读取变量数值

3.4嵌入式系统变量读取

4 覆盖测试

4.1插桩后代码编译

4.2数据获取

4.3嵌入式系统覆盖测试

5 数据分析与结论

5.1数据的分析

5.2大量函数的裁剪方法

6 总结与展望

6.1总结

6.2展望

参考文献

展开▼

摘要

嵌入式系统是一种以应用为中心,完成某项特定功能的计算机系统。受资源限制,嵌入式系统应尽可能做到成本低,效率高。设计过程包括处理器选择,硬件设计,操作系统移植,应用程序设计四部分。这四部分中处理器选择,硬件设计,应用程序设计都可以根据功能需要直接设计,但嵌入式操作系统则需要根据现有的成熟的操作系统裁剪,定制而来。由于操作系统代码极多,在定制,裁剪过程中需要耗费大量的时间,而且只能做到有限的裁剪。
  本文针对这一问题设计一种新的linux内核裁剪方法:编写插桩程序在操作系统内核代码中每个函数入口处插入一变量自加的语句,通过变量的值来统计函数调用次数。对嵌入式系统覆盖测试后通过在内核中添加的系统调用读出这一数据,根据这一数据裁剪去调用次数为0的函数,对内核实现函数级的裁剪。同时,在文中详细论述了这一方法在x86架构下实现与测试的过程,以及向嵌入式系统推广的方法。测试结果表明,这一方法能够裁剪掉内核定制工具不能裁剪的多余函数,也可以给内核定制过程提供参考数据,使得系统更为精简,定制裁剪过程更为方便。
  本文的主要内容有:
  (1)插桩程序编写:提取关键字集合,总结正则表达式,生成DFA状态转换表,编写插桩程序,能够在正确的位置插入正确的语句,并编写了分布式代码插桩程序,进一步减少了插桩时间。
  (2)内核数据获取:分析x86保护模式,linux内核进程管理,内存分布,系统调用过程,修改linux内核,在其中添加系统调用,解决用户进程访问内核数据的权限,寻址等问题,可以实时读取所插入的数据,也可以把数据写入文件。
  (3)覆盖测试与数据分析:结合上述两点内容,对内核插桩后,并编译,安装内核,编写应用程序读取插桩数据,并分析数据,根据数据裁剪部分内核,测试运行。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号