当前位置: 技术问答>linux和unix
有什么区别?/dev目录、sys/module目录、/proc/modules目录等
来源: 互联网 发布时间:2016-10-27
本文导语: 我的系统是centos 2.6.18,最近在学习简单的驱动编程。 请问 /dev下的设备文件 /sys/module下的模块目录 /proc/modules下的模块 /proc/devices中注册的设备 有什么区别和联系?请从模块、驱动、设备文件、的角度解释一下。 我...
我的系统是centos 2.6.18,最近在学习简单的驱动编程。
请问
/dev下的设备文件
/sys/module下的模块目录
/proc/modules下的模块
/proc/devices中注册的设备
有什么区别和联系?请从模块、驱动、设备文件、的角度解释一下。
我发现它们彼此有重叠但又各不相同。
具体的一问:
1、加载了下面一个简单的模块之后,这些目录或文件那些会变化?
#include
#include
MODULE_LICENSE("Dual BSD/GPL");
static int __init hello_init(void)
{
printk("Hello world entern");
return 0;
}
static void __exit hello_exit(void)
{
printk("Hello world exitn");
}
module_init(hello_init);
module_exit(hello_exit);
2、如果加载了一个简单的设备驱动(以模块方式)后,这些目录或文件会怎么变?
3、insmod后、mknod后,这些目录或文件怎么变?
谢谢!
请问
/dev下的设备文件
/sys/module下的模块目录
/proc/modules下的模块
/proc/devices中注册的设备
有什么区别和联系?请从模块、驱动、设备文件、的角度解释一下。
我发现它们彼此有重叠但又各不相同。
具体的一问:
1、加载了下面一个简单的模块之后,这些目录或文件那些会变化?
#include
#include
MODULE_LICENSE("Dual BSD/GPL");
static int __init hello_init(void)
{
printk("Hello world entern");
return 0;
}
static void __exit hello_exit(void)
{
printk("Hello world exitn");
}
module_init(hello_init);
module_exit(hello_exit);
2、如果加载了一个简单的设备驱动(以模块方式)后,这些目录或文件会怎么变?
3、insmod后、mknod后,这些目录或文件怎么变?
谢谢!
|
/dev/下是设备节点号, 你的驱动中注册了,就需要在此创建一个节点, 留user操作使用。
/sys/module 是一个 sysfs 目录层次, 包含当前加载模块的信息. /proc/moudles 是旧式的, 那种信息的单个文件版本. 其中的条目包含了模块名, 每个模块占用的内存数量, 以及使用计数. 另外的字串追加到每行的末尾来指定标志, 对这个模块当前是活动的.
/proc 文件系统是一种特殊的、由程序创建的文件系统,内核使用它向外界输出信息。/proc 下面的每个文件都绑定于一个内核函数,这个函数在文件被读取时,动态地生成文件的"内容",例如,/proc/modules 列出的是当前载入模块的列表。这样可以动态访问其中进程和内核信息。
/sys/module 是一个 sysfs 目录层次, 包含当前加载模块的信息. /proc/moudles 是旧式的, 那种信息的单个文件版本. 其中的条目包含了模块名, 每个模块占用的内存数量, 以及使用计数. 另外的字串追加到每行的末尾来指定标志, 对这个模块当前是活动的.
/proc 文件系统是一种特殊的、由程序创建的文件系统,内核使用它向外界输出信息。/proc 下面的每个文件都绑定于一个内核函数,这个函数在文件被读取时,动态地生成文件的"内容",例如,/proc/modules 列出的是当前载入模块的列表。这样可以动态访问其中进程和内核信息。
|
1、加载了下面一个简单的模块之后,这些目录或文件那些会变化?
/sys/module/目录会增加hello这个模块的基本信息
/proc/modules文件会增加hello模块名字
/proc/devices文件没有变化
/sys/module/目录会增加hello这个模块的基本信息
/proc/modules文件会增加hello模块名字
/proc/devices文件没有变化