加入收藏 | 设为首页 | 会员中心 | 我要投稿 云计算网_泰州站长网 (http://www.0523zz.com/)- 视觉智能、AI应用、CDN、行业物联网、智能数字人!
当前位置: 首页 > 服务器 > 系统 > 正文

Linux kernel测试初探

发布时间:2016-09-26 02:14:05 所属栏目:系统 来源:百度质量部
导读:副标题#e# Linux基金会在4月3日公布了Linux开发年报,向我们展示了linux kernel作为世上最大开源合作项目之一的魅力。自2005年以来,共有800家公司7800名开发人员参与Linux kernel开发,最近一年也有200家公司共1000名开发人员参与。目前在Linus Torvalds的

5. 对待变化。由于Linux kernel经常变化,不可能每次变动都同等对待。针对-rc候选发布版本,需要严格地测试,因为它们一旦被认为是稳定的之后就会正式发布,并很可能由发行商选中到发行版中。而针对-next树或者以前的-mm树,因为它们太容易变化了,没有时间和资源运行全量测试,通常只执行最基本的测试。

6. 工具。Linux测试工具众多,可见http://ltp.sourceforge.net/tooltable.php,覆盖率、安全性、调试、网络、性能等方方面面工具都应有尽有。

7. 性能测试。Linux kernel对性能要求也比较高,性能测试通常要注意的几点:(1)最好是利用benchmark,以取得可信数据;(2)避免I/O缓存因素,缓存对性能影响较大;(3)确保测量环境的稳定性,特别是比较前后版本时。Autotest中也包含性能测试自动化,一次升级导致的性能问题和修复如下图六所示,2.6.14-rc2-mm1版本与2.6.14-rc1-mm1版本相比执行时间由101增加到了111,性能降低了10%,直到2.6.16-rc1-mm4版本才修复。

Linux kernel测试初探

图六 Autotest性能测试执行结果图

8. 可测性。Linux kernel在可测性方面也有较好支持。

(1)内核模块化。启动内核模块支持后,内核的某些部分就可以在需要的时候才装载到内存中,使内核变得更小,运行更快。模块化的内核部分可以在系统运行期间装载或者卸载。

(2)内核hacking 选项,编译一个测试用的内核,有助有内核特定功能的调试,也需要注意有部分选项会导致性能降低。

(3)Magic SysRq键,神奇的键盘快捷键,可以利用快捷键直接向内核传递特定的指定。

(4)多种信息收集方式,内核的bug不一定是导致系统崩溃,一些严重的错误通过日志等表现出来,信息收集就变得犹为重要了。可以通过Syslog, console, dmesg等方式dump和显示日志,除此之外,还可以通过串口和网络控制台远程收集信息。

(5)kexec快速重启系统,使用 kexec可以直接重新启动到另一个内核,不再必须通过固件和引导装载程序阶段,能为测试节省大量时间。

(6)使用biselect追查问题,当发现一个bug却不知道是由哪个补丁引入时,使用二分查找,代码管理系统git以及补丁管理工具quilt都支持二分查找。

9. 覆盖率。关于Linux kernel的测试覆盖率,没有看到最新的统计,不过以前数据多是在20%左右的分支覆盖率。

虽然说自动化测试越来越重要,但是将内核部分测试自动化却是非常困难的,自动化只涵盖了一少部分功能,性能的自动化看起来做得更多些。质量更多还是由开发人员以及社区测试来保证。另外一方面看,Linux kernel本身的架构应该也有较高的容错性和可扩展性,以支持如此大量又频繁的修改。

说明

写本文时,我还并没有实际参与过Linux kernel的开发或测试,只是对其有兴趣,于是在网上查阅了大量文档,有些信息可能已经过时或者与实际情况不符,仅供参考。

引用说明

网上链接

Crackerjack Project http://ossipedia.ipa.go.jp/crackerjack/index.html

Linux命名争议 http://en.wikipedia.org/wiki/GNU/Linux_naming_controversy

Linux Test Project,测试Linux kernel以及相关功能 http://ltp.sourceforge.net/

Linux测试工具 http://ltp.sourceforge.net/tooltable.php

Linux 维基百科 http://en.wikipedia.org/wiki/Linux

Linux Kernel维基百科 http://en.wikipedia.org/wiki/Linux_kernel

开发流程 http://linuxwireless.org/en/developers/process

Autotest项目http://autotest.github.com/

Greg Kroah Hartman on the Linux Kernel视频http://www.youtube.com/watch?v=L2SED6sewRw

http://stackoverflow.com/questions/3177338/how-is-linux-kernel-tested

kernel官网 http://www.kernel.org

Linux kernel邮件列表FQA http://ftp.osuosl.org/pub/linux/docs/lkml/

Pdf电子书

《Best Practices in Linux Kernel Testing》

《Linux Kernel Tester’s Guide》version 0.3,中文版《Linux 内核测试指南》

《How to Participate in the Linux Community》2008.8

《Linux Kernel Development:How Fast it is Going, Who is Doing It, What They are Doing, and Who is Sponsoring It》2012.3

文章来源:百度质量部

(编辑:云计算网_泰州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读