有关文件的信息好象很缺乏。其实它一点也不神秘,并且在整个事情当中它并不象看上去那么得重要。但是由于缺乏必要的文档说明,使其显得比较神秘。它就象耳垂,我们每个人都有,但却不知道是干什么用的。本网页就是用来说明这个问题的。
注意,我并不会是百分之一百正确的。例如,一个系统很可能没有/proc文件系统支持,但是大多数系统肯定有。这里我假定你是“随大流的”,并有一个典型配置的系统。
某些有关内核出错(oops)的阐述来自于AlessandroRubini的“Linux设备驱动程序”一书,我是从其中学到大部分内核编程知识的。
什么是符号(Symbols)?内核符号表(KernelSymbolTable)是什么东西?什么是文件?/proc/ksyms
什么是一个Oops?一个Oops与文件有什么关系呢?静态转换,将使用文件。
动态转换,该方式用于可加载模块,不使用,因此与本讨论没有关系,但我仍然对其加以简单说明。
应该位于什么地方?/boot/
/
/usr/src/linux/
在2.5.x系列内核的某个版本,Linux内核会开始untar成linux-version,而非只是linux(请举手表决--有多少人一直等待着这样做?)。我不知道klogd是否已经修改为在/usr/src/linux-version/中搜索。TODO:查看klogd源代码。
在线手册上对此也没有完整描述,请看:
stracelsof211/dev/null|grepSystemreadlink("/proc/22711/fd/4","/boot/",4095)=23
ps,satan
#straceps211/dev/null|grepSystemopen("/boot/",O_RDONLY|O_NONBLOCK|O_NOCTTY)=6
以及其它许多软件,象dosemu,需要有一个正确的文件。
如果我没有一个好的,会发生什么问题?我如何对上述情况进行补救?/boot/
/boot/
/boot/
/boot/
/boot/
/usr/src/linux/(对于nosound版本)