学位论文 > 优秀研究生学位论文题录展示

基于网络的Linux内核崩溃转储机制

作 者: 江卫
导 师: 杨灿;李建光
学 校: 华南理工大学
专 业: 计算机技术
关键词: Linux内核 崩溃内存转储 内核调试 系统调试 内核RPC
分类号: TP316.81
类 型: 硕士论文
年 份: 2010年
下 载: 82次
引 用: 0次
阅 读: 论文下载
 

内容摘要


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

全文目录


摘要  5-6
Abstract  6-10
插图目录  10-11
表格目录  11-12
第一章 绪论  12-16
  1.1 本文的研究目的  12-15
  1.2 本文的贡献  15-16
第二章 Linux 内核简介  16-21
  2.1 Linux 的起源  16
  2.2 Linux 内核结构组成  16-19
  2.3 Linux 源代码的组成  19-20
  2.4 本章总结  20-21
第三章 Linux 下的崩溃内存转储  21-33
  3.1 LKCD  21-22
  3.2 Netdump  22-25
    3.2.1 Netdump 的设计  22-24
    3.2.2 Netdump 的设置  24-25
  3.3 Diskdump  25
  3.4 Diskdump 的安全性  25-26
  3.5 Diskdump 的可靠性  26
  3.6 对内核的影响  26
  3.7 KDump  26-29
    3.7.1 Kexec  27
    3.7.2 KDump 简短的开发历史  27-29
      3.7.2.1 KDump 设计概览  28-29
  3.8 MKdump  29-30
    3.8.1 MKdump 的工作方式  29
    3.8.2 Mkexec  29-30
    3.8.3 迷你内核  30
    3.8.4 迷你内核的转储格式  30
  3.9 Linux 下的内存转储分析工具  30-32
    3.9.1 lcrash  30-31
    3.9.2 Alicia  31
    3.9.3 crash  31-32
  3.10 本章总结  32-33
第四章 Linux 的内存模型  33-40
  4.1 内核地址类型  33-34
  4.2 物理内存描述  34-36
  4.3 线性地址空间  36-37
  4.4 Linux 中的分页模型  37-39
  4.5 本章总结  39-40
第五章 Linux 的通知链  40-44
  5.1 通知链(Notifier Chains)  40-41
  5.2 通知链的类型  41-42
  5.3 使用通知链  42-43
  5.4 本章总结  43-44
第六章 ELF 文件格式  44-50
  6.1 ELF 介绍  44
  6.2 文件格式  44-45
  6.3 数据表示  45
  6.4 ELF 文件头部  45-47
  6.5 区域头部  47-48
  6.6 符号表  48-49
  6.7 本章总结  49-50
第七章 Linux 的模块机制  50-56
  7.1 内核模块的基本组成  50-51
  7.2 模块的编译  51-52
  7.3 模块的加载  52-53
  7.4 模块的卸载  53
  7.5 查找模块  53
  7.6 内核符号表  53-54
  7.7 模块参数  54-55
  7.8 本章总结  55-56
第八章 基于网络的Linux 内核崩溃转储  56-79
  8.1 客户端和服务器的通信协议  57-59
  8.2 服务器的设计  59-61
  8.3 客户端的设计  61-74
    8.3.1 内存转储设备  61-63
      8.3.1.1 与服务器进行通信  61-62
      8.3.1.2 为上层的内存转储核心提供接口  62-63
    8.3.2 vmcore 模块  63-74
      8.3.2.1 捕捉系统崩溃事件  63-64
      8.3.2.2 保护崩溃现场  64-68
      8.3.2.3 内存转储文件格式  68-71
      8.3.2.4 保存内存映像  71-74
  8.4 编译安装  74-75
  8.5 系统崩溃的方法  75-76
  8.6 分析内存转储文件  76-78
  8.7 本章总结  78-79
结论  79-81
参考文献  81-84
致谢  84

相似论文

  1. NAT网关port triggering功能设计与实现,TP393.08
  2. 基于Linux的实时嵌入式操作系统内核的改进研究,TP316.2
  3. TCP协议结束控制流状态转换的研究,TP393.04
  4. 基于嵌入式Linux的系统构建及桌面应用程序研究,TP316.81
  5. 基于ARM的嵌入式linux移植技术,TP316.81
  6. 基于Linux内核的块级连续数据保护系统设计与实现,TP309
  7. 基于XSBase255的嵌入式系统软件设计与研究,TP368.1
  8. 基于ARM9的3G直放站监控系统的研究与实现,TN929.5
  9. 基于Android平台的动态电源管理技术研究,TN86
  10. 受电弓滑板磨耗检测系统的设计及调试,U269.32
  11. 基于ARM的物流分拣控制系统研究,TP273.5
  12. 新拥塞控制协议在Linux系统中的实现和性能分析,TP393.04
  13. 基于数控系统的嵌入式Linux实时操作系统平台研究,TP316.2
  14. 基于Linux内核的Rootkit研究,TP316.81
  15. 基于进程文件系统的Linux内核辅助调试工具,TP316.81
  16. 实时嵌入式系统追踪调试技术研究,TP368.12
  17. 高效基带芯片调试方法的研究及其在MTK手机开发中的应用,TN929.5
  18. 纯电动汽车控制器设计与开发,U469.72
  19. 基于PLC的自动生产线实验平台的研究,TP273
  20. MES终端的嵌入式Linux软件平台技术研究,TP368.12

中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 计算机软件 > 操作系统 > 网络操作系统 > UNIX操作系统
© 2012 www.xueweilunwen.com