应用层 | 内核层 | |
运行位置 | 0-3G的用户空间 | 3-4G的内核空间 |
执行 | ./执行程序 | insmod |
退出 | return 0 | rmmod |
传参 | argc/argv | 宏函数 |
打印 | printf | printk |
编译 | gcc | 借助内核提供的Makefile |
头文件 | man | linux/头文件/vi -t lsource insight |
GPL协议 | 无 | 遵循GPL协议(开源协议) |
导出符号表 | 没有 | 导出符号表 |
一、打印信息所用函数不同:
应用层使用printf打印信息。
printf("打印信息\n");
内核层使用printk打印信息。
printk(消息级别 "打印信息\n");
并且分级别,只有当消息的级别大于终端的级别,消息才可以在终端进行显示
消息级别:打印的信息属于消息级别。
终端级别:终端显示的内容,属于终端级别。
二、外部传参的方式:
应用层常用的传参方式是执行可执行程序时,(包括执行程序)每一个空格分隔开的字符串属于一个参数,如果某一个参数中需有空格,需要使用双引号括起来。
内核层常用的传参方式是,从外部传参时直接使用内部定义的可传参变量名赋值。传递字符时需要传递相对应的ASCII值,传递字符串是,不可以有空格。