Linux 关于 /sys 和 /proc

2022-06-30  本文已影响0人  wjundong

sys 和 proc 是内核启动后生成的虚拟文件系统,将他们挂载到根文件系统后便可以查看其中的内容, 挂载方法是

mount -t sysfs sys /sys
mount -t proc proc /proc

ref

例如 hello 模块驱动, 创建一个字符设备 hello

static int __init hello_init(void)
{
    major = register_chrdev(0, "hello", &drv_hello);

    hello_class = class_create(THIS_MODULE, "hello_class");  
    
    device_create(hello_class, NULL, MKDEV(major, 0), NULL,"hello");

    return 0;
}

执行 insmod 后在 sys 中查找相关信息

/root # find /sys -name "*hello*"
/sys/devices/virtual/hello_class
/sys/devices/virtual/hello_class/hello
/sys/class/hello_class
/sys/class/hello_class/hello
/sys/module/drv_hello
/root #

设备实际的位置是在 /sys/devices/virtual/hello_class/hello, 但在 class 也有内容, class 只是一种分类方式, module 中有是因为 /sys/module 目录包含所有被载入Kernel的模块,无论这些模块是以内联(inlined)方式编译到内核映像文件中还是编译为外模块(.ko文件)

上一篇下一篇

猜你喜欢

热点阅读