论文部分内容阅读
计算机自诞生之日起,软件故障调试一直以来就是程序员最繁忙的工作之一。随着计算机技术的快速发展,对于软件调试技术的要求也越来越苛刻。在一些重要的环境中,要求可以对一次系统故障即可找出其原因,这无疑对传统的重现错误、不断跟踪、逐行调试的技术产生了巨大的挑战。一个有效的办法就是在系统崩溃时将现场保存起来以供日后分析,Linux作为一个新兴的操作系统,其主线内核并没有提供一个有效系统崩溃内存转储机制,这导致社区中各种系统崩溃内存转储机制的诞生。虽然目前可以适用于Linux的系统崩溃内存转储机制有很多,如LKCD,Netdump, Diskdump等,但是这些系统崩溃内存转储机制并不是可以使用在所有的平台和系统上。本文将介绍一种新的可以用于Linux之下的系统崩溃内存转储VMDump,VMDump是一个基于网络的C/S架构的内存转储机制,在客户端运行用于捕捉内存映像的程序,在服务器端运行接收数据的程序。当客户端的系统发生崩溃时,VMDump会把客户端的系统内存捕捉下来,并传输到服务器端进行保存。VMDump在客户端和服务器之间的通信采用内核RPC的方式,这种方法大大简化了编程的复杂度,同时也增加了网络传输效率。VMDump是一个在特定的系统架构(Egenera的刀架服务器)下使用的内存转储机制,它使得即使在于特定的系统架构,Linux也可以提供可靠稳定的服务成为可能。同时,VMDump产生的内存转储文件格式与LKCD所产生的文件的格式相兼容,这样可以利用已经存在的内存转储文件分析工具,如lcrash,crash进行分析,而无需自行开发另外一套内存转储文件分析工具。VMDump的出现,不仅为Egenera刀架服务器提供了一个系统崩溃内存转储机制,提高了系统的稳定级别,而且还为Linux社区提供了另外一种系统崩溃内存转储的新的尝试。因此,VMDump不但在实用性上具有价值,而且在理论研究上也具有较高的参考价值。