获得。这个崩溃转储子系统直接在目录 /var/dumps 中创建崩溃转储文件,而且并不使用交换区。这样就使某些事情变得更为容易,但也意味着在知道问题已经出现在哪里的时候,文件系统已被系统修改。生成的崩溃转储的格式是标准的 core 文件格式,所以可以利用 gdb 这类工具进行事后的分析。这个工具包也提供了另外的分析器,可以从崩溃转储文件中解析出比 gdb 更丰富的信息。 4.5.6 用户模式的 Linux 虚拟机 用户模式 Linux 是一个很有意思的概念。它作为一个独立的可移植的 Linux 内核而构建,包含在子目录 arch/um 中。然而,它并不是运行在某种新的硬件上,而是运行在基于 Linux 系统调用接口所实现的虚拟机之上。因此,用户模式 Linux 可以使 Linux 内核成为一个运行在 Linux 系统之上单独的、用户模式的进程。 把一个内核的复本当作用户模式下的进程来运行可以带来很多好处。因为它运行在一个受约束的虚拟处理器之上,所以有错误的内核不会破坏“真正的”系统。对软/硬件的不同配置可以在相同的框架中轻易地进行尝试。并且,对于内核开发人员来说最值得注目的特点在于,可以很容易地利用 gdb 或其它调试器对用户模式 Linux 进行处理。归根结底,它只是一个进程。很明显,用户模式 Linux 有潜力加快内核的开发过程。 迄今为止,用户模式 Linux 虚拟机还未在主流内核中发布;要下载它,必须访问它的 web 站点()。需要提醒的是,它仅可以集成到 2.4.0 之后的早期 2.4 内核版本中;当然等到本书出版的时候,版本支持方面可能会做得更好。 目前,用户模式 Linux 虚拟机也存在一些重大的限制,不过大部分可能很快就会得到解决。虚拟处理器当前只能工作于单处理器模式;虽然虚拟机可以毫无问题地运行在 SMP 系统上,但它仍是把主机模拟成单 CPU 模式。不过,对于驱动编写者来说,最大的麻烦在于,用户模式内核不能访问主机系统上的硬件设备。因此,尽管用户模式 Linux虚拟机对于本书中的大多数样例驱动程序的调试非常有用,却无法用于调试那些处理实际硬件的驱动程序。最后一点,用户模式 Linux虚拟机仅能运行在 IA-32 体系结构之上。 因为对所有这些问题的修补工作正在进行之中,所以在不远的将来,对于 Linux 设备驱动程序的开发人员,用户模式 Linux虚拟机可能会成为一个不可或缺的工具。 4.5.7 Linux 跟踪工具包 Linux 跟踪工具包(LTT)是一个内核补丁,包含了一组可以用于内核事件跟踪的相关工具集。跟踪内容包括时间信息,而且还能合理地建立在一段指定时间内所发生事件的完整图形化描述。因此,LTT不仅能用于调试,还能用来捕捉性能方面的问题。 在 Web 站点