易截截图软件、单文件、免安装、纯绿色、仅160KB

linux内核printk调试


linux内核printk调试(摘录《Linux安全体系分析与编程》)
linux内核printk调试(摘录《Linux安全体系分析与编程》)
1  printk及控制台的日志级别
函数printk的使用方法和printf相似,用于内核打印消息。printk根据日志级别(loglevel)对消息进行分类。
日志级别用宏定义,日志级别宏展开为一个字符串,在编译时由预处理器将它和消息文本拼接成一个字符串,因此printk 函数中日志级别宏和格式字符串间不能有逗号。
下面是两个printk的例子,一个用于打印调试信息,另一个用于打印临界条件信息。
printk(KERN_DEBUG "Here I am: %s:%i\n", _ _FILE_ _, _ _LINE_ _);
printk(KERN_CRIT "I'm trashed; giving up on %p\n", ptr);
printk的日志级别定义如下(在linux26/includelinux/kernel.h中):
#defineKERN_EMERG"<0>"/*紧急事件消息,系统崩溃之前提示,表示系统不可用*/
#defineKERN_ALERT"<1>"/*报告消息,表示必须立即采取措施*/
#defineKERN_CRIT"<2>"/*临界条件,通常涉及严重的硬件或软件操作失败*/
#defineKERN_ERR"<3>"/*错误条件,驱动程序常用KERN_ERR来报告硬件的错误*/
#defineKERN_WARNING"<4>"/*警告条件,对可能出现问题的情况进行警告*/
#defineKERN_NOTICE"<5>"/*正常但又重要的条件,用于提醒。常用于与安全相关的消息*/
#defineKERN_INFO"<6>"/*提示信息,如驱动程序启动时,打印硬件信息*/
#defineKERN_DEBUG"<7>"/*调试级别的消息*/
 
extern int console_printk[];
 
#define console_loglevel  (console_printk[0])
#define default_message_loglevel  (console_printk[1])
#define minimum_console_loglevel  (console_printk[2])
#define default_console_loglevel  (console_printk[3])
日志级别的范围是0~7,没有指定日志级别的printk语句默认采用的级别是 DEFAULT_ MESSAGE_LOGLEVEL,其定义列出如下(在linux26/kernel/printk.c中):
/*没有定义日志级别的printk使用下面的默认级别*/
#define DEFAULT_MESSAGE_LOGLEVEL 4 /* KERN_WARNING 警告条件*/
内核可把消息打印到当前控制台上,可以指定控制台为字符模式的终端或打印机等。默认情况下,“控制台”就是当前的虚拟终端。
为了更好地控制不同级别的信息显示在控制台上,内核设置了控制台的日志级别console_loglevel。printk日志级别的作用


相关文档:

Linux Grep命令使用的详细介绍

Linux Grep命令使用的详细介绍
1. grep简介
  grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行
打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。Unix的
grep家族包括grep、 egrep和fgrep。egrep和fgrep的命令只跟grep有很小不 ......

linux下svn客户端安装及环境配置

一、svn客户端安装及环境配置.
果所在的linux机器上没有安装svn客户端,则首先安装svn客户端:
1.       subversion-1.4.3.tar.bz2  subversion-deps-1.4.3.tar.bz2
 
2.       使用
   tar xvfj subversion-1.4.3.tar.bz2
t ......

Linux常用命令表

用户系统相关命令
 用户切换
 用户切换:  su [选项] [使用者]
 用户管理
  增加用户账号:  useradd [选项] 用户名
  设置用户账号属性: usermod [选项] 属性值
  删除对应用户账号: userdel [选项] 用户名
  增加组账号: ......

linux修改ssh端口和禁止root远程登陆设置

linux修改ssh端口22
vi /etc/ssh/ssh_config
vi /etc/ssh/sshd_config
然后修改为port 8888
以root身份service sshd restart (redhat as3)
使用putty,端口8888
Linux下SSH默认的端口是22,为了安全考虑,现修改SSH的端口为1433,修改方法如下 :
/usr/sbin/sshd -p 1433
为增强安全
先增加一个普通权限的用户: ......

linux系统编程 系统调用

1.fork
            创建一个新进程
2.clone          
按指定条件创建子进程
3.execve
          运行可执行文件
4.exit       ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号