devices_init / buses_init / classes_init / firmware_init / hypervisor_init 函数

devices_init

  • [1. devices_init 函数](#1. devices_init 函数)
  • [2. buses_init 函数](#2. buses_init 函数)
  • [3. classes_init 函数](#3. classes_init 函数)
  • [4. firmware_init 函数](#4. firmware_init 函数)
  • [5. hypervisor_init 函数](#5. hypervisor_init 函数)

1. 函数

  1. 通过 kset_create_and_add 函数,创建 /sys/devices目录(即devices_kset)

  2. 通过 kobject_create_and_add 函数,创建/sys/dev目录(即dev_kobj)

  3. 通过 kobject_create_and_add 函数,创建/sys/dev/block目录(即sysfs_dev_block_kobj,该目录下会以符号链接形式列出所有设备,链接名为主次设备号)

  4. 通过 kobject_create_and_add 函数,创建/sys/dev/char目录(即sysfs_dev_char_kobj,该目录下会以符号链接形式列出所有设备,链接名为主次设备号)


函数


2. buses_init 函数

  1. 通过 kset_create_and_add 函数,创建 /sys/bus目录(即 bus_kset)

  2. 通过 kset_create_and_add 函数,创建 /sys/devices/system目录(即 system_kset)


buses_init 函数


3. classes_init 函数

  1. 通过 kset_create_and_add 函数,创建 /sys/class目录(即class_kset)

classes_init 函数


4. firmware_init 函数

  1. 通过 kobject_create_and_add 函数,创建/sys/firmware目录(即firmware_kobj)

firmware_init 函数


5. hypervisor_init 函数

  1. .config配置文件中配置了CONFIG_SYS_HYPERVISOR,则通过 kobject_create_and_add 函数,创建/sys/hypervisor目录(即hypervisor_kobj)

  2. .config配置文件中未配置CONFIG_SYS_HYPERVISOR,则什么都不做(一般不配置)


hypervisor_init 函数


*[devices_init]: 在 sysfs 中创建三个关键的顶层目录和集合,为后续设备、总线和驱动的注册提供组织骨架

相关推荐
浩浩测试一下3 小时前
Linux 底层知识点 1
linux·运维·服务器
Escalating_xu4 小时前
【Linux 网络编程】TCP 跨平台实战:用 Windows 客户端访问 Linux 服务器
linux·服务器·网络
忆挽篱笙歌5 小时前
环境变量,本地变量
linux·运维·服务器
吹什么轩7 小时前
linux系统复习:僵尸进程与孤儿进程
linux·运维·php
殷忆枫8 小时前
告别依赖地狱!在 Ubuntu 上用 Docker 极速部署 Home Assistant 与 MQTT,并接入 Siri 与嵌入式 C 终端
linux·ubuntu·docker
第404号工位8 小时前
手机到底有没有偷听我们?我抓包了 72 小时,抓到了真凶
linux·人工智能·架构
字节跳动开源8 小时前
ByteDance 2026 上半年 Linux 内核贡献回顾
linux·开源
小此方8 小时前
Linux网络(二十八):从NAT转换到正反向代理:图解内网通信、NAPT端口映射
linux·运维·网络
刚入门的大一新生8 小时前
Linux-进程池
linux·运维·服务器
鱼很腾apoc9 小时前
【MySQL】第4期 用户管理与 C 语言连接编程详解
linux·服务器·c语言·mysql·connector/c