什么是内核转储(core dump)

 

一直以来没仔细考虑过什么是内核转储,只是在进程运行时碰到了错误时会出现内核转储。这几天在看《Shell编程指南》,觉得说的很清楚,就摘了过来。当然,对Shell编程感兴趣的朋友可以看看这本书,专门讲Shell编程的书籍并不是很多。

这个概念源于UNIX系统,当程序在执行的时候,由于编写的失误或未经过充分的测试,程序对系统构成威胁,就可能会导致核心转储(core dump)令人摸不着头脑。

UNIX系统中,常将“主内存”(main memory)称为核心(core),因为在使用半导体作为内存材料之前,便是使用核心(core)。而核心映像(core image)就是“进程”执行当时的内存内容。当进程发生错误或收到“信号”而终止执行时,系统会将核心映像写入一个文件,以作为调试之用,这就是所谓的核心转储(core dump)。

补充:进程我们通常的定义是程序的一次执行,程序是静态的,而进程具有动态性。进程是操作系统中最成功的概念之一(还有虚拟存储等),进程是操作系统中某个程序某时刻的执行映像,进程是特定时刻CPU占用、内存占用、磁盘占用、IO操作的一个综合体。所以操作系统中进程的管理机制相当复杂。想有更多的了解,可以看看《深入理解计算机系统》这本书。

   以上有些是我个人的理解,如有不恰当的地方,还请指正。

你可能感兴趣的:(操作系统,shell,编程,unix,image,磁盘,测试)