linux下/dev、/sys/devices 和 /sys/dev 之间区别

/dev,设备文件存储目录,应用程序通过对这些文件的读写和控制,可以访问实际的设备;

/sys/devices 目录,按照设备挂接的总线类型,组织成层次结构,保存了系统所有的设备;是文件系统管理设备的最重要的目录结构;

这是内核设备\color{red}{按总线类型分层放置的目录结构}, devices 中的所有设备都是连接于某种总线之下,在这里的每一种具体总线之下可以

找到每一个具体设备的符号链接,它也是构成 Linux 统一设备模型的一部分;

/sys/dev 下有两个子目录,block和char,存放的是\color{red}{块设备和字符设备的主次号码},形式为(major:minor),它\color{red}{指向 /sys/devices 目录下的设备}

  1. sysfs的挂载点是/sys目录, sysfs是一个虚拟的文件系统(还有其它的虚拟文件系统,例如usbfs和procfs),sysfs导出了内核的数据结构。
  2. /sys/dev/ 和/sys/devices是sysfs按\color{red}{面向对象管理的思想来组织},sysfs最主要是用来描绘Linux kernel 2.6中的设备驱动模型,用户态的
    后台程序(udev)会动态地周期性的扫描/sys目录中的属性项来自动管理设备文件(也称为设备节点),\color{red}{从而在/dev目录会建立或者删除对应的设备文件}

1、/dev 下放的是设备文件,是由应用层mknod创建的文件。如果底层驱动对mknod的设备号有对应的驱动,如open等函数,那么应用层open "/dev/**"时,就会调用到底层的驱动。说白了,/dev下放的是内核和应用层交互的文件,让应用层去open,write,poll等。
2、/sys 是个文件系统,你写内核代码时,如果有调用kobj_init等函数,就会在/sys下的相应目录生成相应文件。 它的作用是将内核注册的设备、驱动、BUS连成一个树形结构。 另外,应用层也可以通过读写/sys下的文件和内核进行交互(ktype)。 说白了/sys就是一个树形结构,让你明白内核都有哪些驱动和设备已经bus,方便电源管理。
————————————————
原文链接:https://blog.csdn.net/u012590688/article/details/46489641

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • ping 出现 dup! 解决方案: udev 详解 如果你使用Linux比较长时间了,那你就知道,在对待设备文件...
    小灰灰1999阅读 293评论 0 0
  • 转自,格式做了调整。 如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略。...
    mikeliuy阅读 7,858评论 0 1
  • 前言 此文始于 2019-04-02,这是在简书的第一篇文章,目的是为了练习 markdown语法。先选择一篇文章...
    蜗牛行者阅读 9,658评论 0 6
  • 特殊文件系统 1.proc文件系统 /proc是一个位于内存中的伪文件系统(in-memory pseudo-fi...
    Mr_Michael阅读 1,423评论 0 1
  • linux设备模型bus,device,driver作者 codercjg 在 10 十一月 2015, 2:43...
    codercjg阅读 573评论 0 1