os/fs/sysfs/mod.rs
1//! Sysfs 虚拟文件系统
2//!
3//! 提供与 Linux 兼容的 sysfs 接口,用于暴露设备和内核信息。
4//!
5//! # 特性
6//!
7//! - 冷插拔: 设备在启动时注册,运行时不变
8//! - 只读: 大部分文件只读 (部分配置文件可写)
9//! - 动态生成: 文件内容通过闭包动态生成
10//! - Linux ABI 兼容: 符合 Linux sysfs 规范
11//!
12//! # 目录结构
13//!
14//! ```text
15//! /sys/
16//! ├── devices/ # 设备层次结构 (真实设备目录)
17//! │ └── platform/
18//! │ ├── vda/ # 块设备
19//! │ │ ├── dev
20//! │ │ ├── uevent
21//! │ │ ├── size
22//! │ │ ├── ro
23//! │ │ ├── removable
24//! │ │ ├── stat
25//! │ │ └── queue/
26//! │ │ ├── logical_block_size
27//! │ │ ├── physical_block_size
28//! │ │ ├── hw_sector_size
29//! │ │ ├── max_sectors_kb
30//! │ │ └── rotational
31//! │ └── eth0/ # 网络设备
32//! │ ├── uevent
33//! │ ├── address
34//! │ ├── mtu
35//! │ ├── operstate
36//! │ ├── carrier
37//! │ ├── ifindex
38//! │ └── type
39//! ├── class/ # 设备分类 (符号链接)
40//! │ ├── block/
41//! │ │ └── vda -> ../../devices/platform/vda
42//! │ └── net/
43//! │ └── eth0 -> ../../devices/platform/eth0
44//! ├── block -> class/block/ # 向后兼容
45//! └── kernel/ # 内核信息
46//! ├── version
47//! └── osrelease
48//! ```
49//!
50//! # Linux ABI 兼容性
51//!
52//! 实现了以下 Linux ABI 稳定属性:
53//!
54//! ## 块设备
55//! - `dev`: major:minor 设备号
56//! - `uevent`: udev 事件文件
57//! - `size`: 设备大小(512字节扇区数)
58//! - `ro`: 只读标志
59//! - `removable`: 可移动标志
60//! - `stat`: I/O 统计信息
61//! - `queue/logical_block_size`: 逻辑块大小
62//! - `queue/physical_block_size`: 物理块大小
63//! - `queue/hw_sector_size`: 硬件扇区大小
64//! - `queue/max_sectors_kb`: 最大传输大小
65//! - `queue/rotational`: 旋转设备标志
66//!
67//! ## 网络设备
68//! - `uevent`: udev 事件文件
69//! - `address`: MAC 地址
70//! - `mtu`: 最大传输单元
71//! - `operstate`: 操作状态
72//! - `carrier`: 载波状态
73//! - `ifindex`: 接口索引
74//! - `type`: 设备类型
75
76mod builders;
77mod device_registry;
78mod inode;
79mod sysfs;
80
81pub use device_registry::{find_block_device, find_net_device};
82pub use sysfs::SysFS;