
典型的例子如用户态下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文件)
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)