查看linux内核信息
来源:互联网 发布:mac windows程序 编辑:程序博客网 时间:2024/05/20 18:18
关键词
环形缓冲区
printk
klogd
syslogd
dmesg
在头文件 <linux/kernel.h> 中定义了 【8种可用的日志级别字符串】
KERN_EMERG 用于紧急事件消息,它们一般是系统崩溃之前提示的消息。
KERN_ALERT 用于需要立即采取动作的情况。
KERN_CRIT 临界状态,通常涉及严重的硬件或软件操作失败。
KERN_ERR 用于报告错误状态;设备驱动程序会经常使用KERN_ERR来报告来自硬件的问题。
KERN_WARNING 对可能出现问题的情况进行警告,这类情况通常不会对系统造成严重问题。
KERN_NOTICE 有必要进行提示的正常情形。许多与安全相关的状况用这个级别进行汇报。
KERN_INFO 提示性信息。很多驱动程序在启动的时候,以这个级别打印出它们找到的硬件信息。
KERN_DEBUG 用于调试信息。
dmesg是从kernel的ring buffer(环缓冲区)中读取信息的.
那什么是ring buffer呢?
在LINUX中,所有的系统信息(包内核信息)都会传送到ring buffer中.而内核产生的信息由printk()打印出来。
系统启动时所看到的信息都是由该函数打印到屏幕中。 printk()打出的信息往往以 <0>...<2>... 这的数字表明消息的重要级别。高于一定的优先级别会打印到屏幕上,否则只会保留在系统的缓冲区中(ring buffer)。
至于dmesg具体是如何从ring buffer中读取的,大家可以看dmesg.c源代码.很短,比较容易读懂.
是syslogd这个守护进程根据/etc/syslog.conf,将不同的服务产生的Log记录到不同的文件中.
LINUX系统启动后,由/etc/init.d/sysklogd先后启动klogd,syslogd两个守护进程。
其中klogd会通过syslog()系统调用或者读取proc文件系统来从系统缓冲区(ring buffer)中得到由内核printk()发出的信息.而syslogd是通过klogd来读取系统内核信息.
1> 所有系统信息是输出到ring buffer中去的.dmesg所显示的内容也是从ring buffer中读取的.
2> LINUX系统中/etc/init.d/sysklogd会启动2个守护进程:Klogd, Syslogd
3> klogd是负责读取内核信息的,有2种方式:
syslog()系统调用(这个函数用法比较全,大家去MAN一下看看)直接的对/proc/kmsg进行读取(再这提一下,/proc/kmsg是专门输出内核信息的地方)
4> Klogd的输出结果会传送给syslogd进行处理,syslogd会根据/etc/syslog.conf的配置把log信息输出到/var/log/下的不同文件中.
- 查看linux内核信息
- linux查看内核、版本信息
- 查看linux内核版本信息
- 查看linux内核信息及版本信息
- 查看linux版本信息和内核信息
- Linux 查看内核,CPU,内存信息命令
- 查看linux发行版和内核信息
- 查看linux内核版本信息的命令
- linux内核 模块加载并查看信息
- 查看Linux内核、cpu、内存等信息
- 查看Linux内核和发行版本信息
- Linux内核调试信息如何查看
- 查看Linux内核信息的命令
- 查看linux系统内核信息,lsb_release -a
- 查看SAP内核信息
- Linux命令查看linux版本的信息和查看内核的信息的命令
- linux查看内核cpu mem gcc libc信息的命令
- Linux查看版本信息及CPU内核、型号
- 从ARM 环保与节能说起
- openpyxl 读写excel2007使用笔记【感谢鱿鱼哥】
- GPS时间服务器在各大计算机系统集成网络中的应用
- Server2008 中 XQuery 小牛试刀
- 虚拟化看上去很蠢?技术的返祖与进化
- 查看linux内核信息
- 推荐两个安装Cygwin时的快速源
- iphone Push Notification还存在的问题
- maven 打包编译的错误 :sun.misc.BASE64Decoder 是 Sun 的专用 API,可能会在未来版本中删除
- android进程模型
- 书评:《Unix编程艺术》
- SQL Server之旅:(二)Could not load the DLL xpstar90.dll
- 排序算法
- C++学习笔记 堆中的指针数组