加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux内核如何创建sysfs?

发布时间:2020-12-14 00:30:04 所属栏目:Linux 来源:网络整理
导读:我已经开始查看我的OS课程的 linux内核代码了.因为我对sys文件系统(sysfs)感兴趣.我有兴趣了解sysfs何时以及如何创建? linux内核代码中的哪些文件生成此文件系统? 我在我的系统上安装了linux内核,并开始调试代码. 我已经参考了这个文档来理解sysfs文件系统
我已经开始查看我的OS课程的 linux内核代码了.因为我对sys文件系统(sysfs)感兴趣.我有兴趣了解sysfs何时以及如何创建? linux内核代码中的哪些文件生成此文件系统?

我在我的系统上安装了linux内核,并开始调试代码.

我已经参考了这个文档来理解sysfs文件系统:
[sysfs]:https://www.kernel.org/doc/Documentation/filesystems/sysfs.txt

但是本文档仅解释了目录结构,目录创建和读/写属性.我对内核在引导期间如何创建这些目录更感兴趣.
我知道以下方法负责sysfs中的目录创建.

int sysfs_create_file(struct kobject *kobj,struct attribute *attr);

此函数接受kboject结构,属性并使用它们在sysfs中创建目录.

我知道在启动时,内核会检测内存并在sys / devices / system / memory下创建目录.我打算将这个目录结构更改为我的作业的一部分.那么,请您指出负责创建此特定内存目录的文件和方法吗?

解决方法

您不应该直接使用这种功能.您还应该避免使用kobject(除非您触摸内核核心).

通常,sysfs属性与设备结构相关联.因此,当您注册设备时,将创建sysfs属性.

请查看device.h行689中的设备结构.在结构的末尾,您将找到以下字段

const struct attribute_group **groups;

您必须创建自己的属性,将它们插入属性组并在调用device_register()之前将组分配给您的设备

如果您遵循device_register()函数,您将看到它创建关联的sysfs属性的作用

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读