运维开发网

linux内核如何创建sysfs?

运维开发网 https://www.qedev.com 2020-05-31 09:42 出处:网络
我已经开始查看我的OS课程的 linux内核代码了.因为我对sys文件系统(sysfs)感兴趣.我有兴趣了解sysfs何时以及如何创建? linux内核代码中的哪些文件生成此文件系统?
我已经开始查看我的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属性的作用

0

精彩评论

暂无评论...
验证码 换一张
取 消