linux获取内核信息过程:
1.内核printk打印信息会先根据等级与当前终端等级console_loglevel决定是否向终端输出打印,同时会将信息保存到一个环形记录缓冲区,该缓冲区最多可保存LOG_BUF_LEN的内核信息,当缓冲区达到最大值时,新信息会覆盖掉旧的信息,以保证信息不会因为失控而消耗内存。当然缺点也是显而易见的,那就是以前旧的信息有可能会丢失。
2.用户空间的守护进程klogd从记录缓冲区获取内核信息,再通过守护进程syslogd将它们保存在系统日志文件/var/log/messages(此为默认文件,你可以通过/etc/syslog.conf进行修改)中。
以上为个人的总结,如有差错,请指教。