每当Linux系统崩溃之时,人们看到的不是微软视窗操作系统那种经典的“蓝屏”现象,取而代之的是显示系统崩溃报告签名(被称作“oops”,该单词是吃惊的感叹词,相当于“哎呀”),以此来帮助开发人员弄清系统出错的原因。也许有人举得这个称呼有点傻傻的感觉,但是这种Linux系统的特性有着其不可取代的作用。
跟踪这些“oops”是Kerneloops机构的一个职责。根据这些提交的系统崩溃报告签名,这家机构已经成功地修复了很多的Linux系统bug,从而在很大程度上提升了Linux系统核心(kernel)质量。这些点点滴滴的跟踪“oops”以及修复系统bug的努力已经成为了Linux获得众多企业用户和其他用户青睐的重要因素。
英特尔开源技术中心kernel工程师Arjan van de Ven向InternetNews.com网站透露表示,“Linux所谓的‘oops’就相当于微软Windows系统的‘蓝屏’,这两个概念其实在产生原因和工作原理上都是一样的。我们Linux没有在整个屏幕上涂上蓝色和错误代码信息,而是在上面显示系统崩溃报告签名。”
其实Kerneloops机构是由Van de Ven独自经营的,尽管“oops”的搜集检测和报告途径大部分都是自动提交上来,但是Kerneloops还是为Fedora、OpenSUSE以及Debian的用户提供了专门提交“oops”记录的客户端程序。随着Linux市场份额的逐步增长,这个开源系统逐步走向那些非技术性的商业用户和一般用户,如此看来“oops”记录的提交功能就显得越发重要,像诸如红帽子这样子的大型Linux产商都已经把“oops”记录客户端提交功能设置成其Fedora Linux系统的默认选项。
Van de Ven解释道,“许多的用户都不知道如何去发现这些系统问题以及将BUG发送到哪里。安装了“oops”记录的提交客户端的用户仅仅只需轻轻点击一下鼠标,我相信绝大多数的用户还是倾向于这种简便的提交方式。”
Fedora项目领军人Paul Frields向InternetNews.com网站透露表示,“Kerneloops程序包能够自动将Linux内核崩溃信息传递到一个存储库,Linux系统核心维护人员就可以调用这个存储库的信息来进行有针对性的系统诊断并且修复系统的BUG。”
Frields称,“Fedora加入其中是因为我们积极地跟踪系统内核崩溃信息。Kerneloops的功能将会对我们与诸如内核开发社区之类(kernel developer community)上游软件提供商之间的合作提供极大的支持。Fedora的推广既有符合社区的利益又能对我们根据“oops”记录修改系统BUG来提升内核代码质量的工作带来很多帮助。
此外,Kerneloops可以还通过Linux内核邮件列表(Linux Kernel Mailing List是诸如Linux内核bug和相关设计的重要技术问题的“集中营”,以下简称LKML)来收集“oops”记录。此外Kerneloops还周期性地向LKML发送典型的严重内核bug邮件信息。Van de Ven指出,如果有足够的用户反馈信息来反映一个内核bug问题,那么内核开发人员就会据此跟踪这个系统bug并尽全力修正。
Van de Ven表示,“一般来说,内核开发人员是看重Kerneloops的,毕竟我(Kerneloops)提供的内核bug越多,他们掌握的信息则越多。如果某个系统问题只有一个提交的报告,那么这很可能就是个案而已,但是如果有500份提交报告反映的是同一个系统问题,那么这个问题就是这些内核开发人员所要解决的一个真正的系统bug。”
因此Van de Ven认为这些提交报告从很大程度上有助于Linux开发人员的bug修正工作,这对整个系统内核质量的改善起到了积极的作用。考虑到Kerneloops组织所获得的提交报告数量因不同版本的内核系统而异,所以提交报告的具体数目难以衡量。
Van de Ven表示,“目前我们致力解决的就是让众多用户深受其害系统bug。如果你看这些各不相同的bug数量,你会感到有些疑惑。2.6.25版本内核一共有1300多个bug,但是这其中有半数之多的bug只发生过一次。我们的确修复了好多bug,往往这些我们修复过的bug才是那些真的亟待解决的棘手问题。对于目前的2.6.27RC(候选版本)的Linux内核而言,Van de Ven以及看到了一些早期问题的趋势,这其中最显著的就是在USB设备使用时移除相关驱动所导致的问题,这会在二十大“oops”当中排名前五位。Van de Ven表示,“就目前而言,这可是最热门的系统内核bug之一。”
改善提高整个Linux内核质量的努力正逐渐成为深受业界关注的焦点。为了能够提高驱动代码的质量,近期Linux基金会也在致力于简化内核任务。然而并不是所有的人都在热议最好避免bug代码的方案,要么在系统内核开发之时就尽全力避免此类错误保证代码质量,要么就得花费大力气在出了问题之后亡羊补牢。
Novell公司开放平台方案研究员Greg Kroah-Hartman向InternetNews.com透露表示,“在协助上游内核开发人员跟踪系统问题和修复哪些问题上,Kerneloops做得非常地不错。非用户们提交给kernel组织的信息对于在内核开发阶段发现问题帮助很大”。与此同时,Van de Ven表示希望看到更多的人参与到发现修复bug的工作上来。