Linux sys文件系统的用处

Linux sys文件系统的用处,第1张

sys文件系统,驱动,设备模型 中提到了sys文件系统,I2C设备驱动,设备模型之间的关系。读完不禁要问/sys/文件系统搞这么复杂又啥实际的用处呢?创建很多文件和文件夹,如/sys/devices/** /sys/bus/** 目的是什么?我理解sys文件系统是内核态把自己知道的信息呈现给用户态,方便用户态的使用。

典型的例子如用户态下lscpi查看系统的pci设备,如果你运行strace lspci的话就会发现lspci正是访问了sys文件系统,非常方便的把复杂的pci设备们呈现出来。

其他例子,笔者曾经开发过内核模块,在模块中用module_param声明一些参数,内核sys文件系统就会在/sys/module/ModuleName/parameters/路径下生成一些文件,方便用户态下对内核模块的控制和干预。

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

ref

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

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

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


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7292458.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-03
下一篇2023-04-03

发表评论

登录后才能评论

评论列表(0条)

    保存