Raj*_*ani 5 linux operating-system kernel linux-kernel sysfs
我已经开始为我的操作系统课程寻找 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);
Run Code Online (Sandbox Code Playgroud)
此函数接受 kboject 结构、属性并使用这些在 sysfs 中创建目录。
我知道在启动时,内核会检测内存并在 sys/devices/system/memory 下创建目录。我计划更改此目录结构作为我作业的一部分。那么,能否请您指出负责创建此特定内存目录的文件和方法?
你不应该直接使用那种函数。您还应该避免使用kobject(除非您正在接触内核核心)。
通常,sysfs 属性与device结构相关联。因此,当您注册设备时,会创建 sysfs 属性。
看看该device结构device.h中线689.在该结构的最后,你会发现下面的场
const struct attribute_group **groups;
Run Code Online (Sandbox Code Playgroud)
您必须创建自己的属性,将它们插入到一个属性组中,然后在调用之前将您的组分配给您的设备 device_register()
如果您遵循该device_register()函数,您将看到它如何创建关联的 sysfs 属性
| 归档时间: |
|
| 查看次数: |
4812 次 |
| 最近记录: |