fs/ 源码目录与文件系统索引

fs/ 源码目录与文件系统索引

1. VFS 核心编译单元

fs/Makefile 无条件编入的主要模块:

主题 文件
打开/读写 open.c, read_write.c, file.c, file_table.c
路径与名称 namei.c, dcache.c, d_path.c
inode/super inode.c, super.c, bad_inode.c
mount namespace.c, pnode.c, fs_context.c, fsopen.c
元数据 stat.c, attr.c, xattr.c, readdir.c, utimes.c
fd/control fcntl.c, ioctl.c, select.c
I/O splice.c, sync.c, fs-writeback.c, remap_range.c
注册/解析 filesystems.c, fs_parser.c, fs_types.c
工具 seq_file.c, libfs.c, stack.c, fs_pin.c, nsfs.c

CONFIG_BLOCK=y 时加入 buffer.cdirect-io.cmpage.c;否则使用 no-block.c

2. 通用子系统

目录/文件 功能
iomap/ extent 映射、buffered/direct I/O
notify/ dnotify/inotify/fanotify/fsnotify
quota/ 用户/组/project quota
crypto/ fscrypt 文件级加密
verity/ fs-verity 文件数据认证
netfs/ 网络文件系统读缓存辅助
fscache/, cachefiles/ 网络数据本地缓存
exportfs/ NFS export file handle
nls/, unicode/ 字符集与 Unicode
jbd2/ ext4 日志层

3. 本地块文件系统

文件系统 目录 特点
ext4 ext4/ 通用、JBD2、extent、成熟
f2fs f2fs/ flash-friendly、segment/SSR
XFS xfs/ allocation group、延迟日志、iomap
Btrfs btrfs/ CoW、checksum、snapshot、RAID
ext2 ext2/ 无日志、简单
NILFS2 nilfs2/ log-structured + checkpoint
zonefs zonefs/ zoned block device 暴露
GFS2/OCFS2 对应目录 共享磁盘集群文件系统

4. 可移动介质和兼容文件系统

  • fat/, exfat/
  • ntfs/(旧只读/有限写)与 ntfs3/
  • isofs/, udf/
  • hfs/, hfsplus/
  • minix/, sysv/, ufs/ 等。

5. 闪存与只读镜像

文件系统 后端
EROFS 块设备,只读、可压缩
SquashFS 块设备,只读压缩镜像
CramFS/RomFS 简单只读镜像
UBIFS UBI/raw NAND
JFFS2 MTD/raw flash

UBIFS/JFFS2 不是普通 eMMC/NVMe 的首选;raw NAND 需结合 MTD/UBI。

6. 伪、内存和叠加

  • ramfs/(同时提供 tmpfs/shmem mount glue)
  • proc/, kernfs/, sysfs/
  • debugfs/, tracefs/, configfs/
  • devpts/, efivarfs/, pstore/
  • overlayfs/
  • fuse/
  • autofs/

7. 网络与分布式

  • NFS client/server:nfs/, nfsd/, nfs_common/
  • SMB/CIFS:smb/client/, smb/server/
  • CephFS:ceph/
  • 9P、AFS、Coda、OrangeFS。

其 socket/RPC 基础可能位于 net/,不应把 fs/ 当作全部网络协议实现。

8. 条件编译

fs/Kconfig 汇总各文件系统 Kconfig。关键公共选项:

  • CONFIG_BLOCK
  • CONFIG_FS_IOMAP
  • CONFIG_FILE_LOCKING
  • CONFIG_FS_ENCRYPTION
  • CONFIG_FS_VERITY
  • CONFIG_FS_DAX
  • CONFIG_FS_POSIX_ACL
  • CONFIG_PROC_FS, CONFIG_SYSFS, CONFIG_CONFIGFS_FS
  • CONFIG_FSCACHE, CONFIG_CACHEFILES
  • CONFIG_AIO, CONFIG_EPOLL, CONFIG_USERFAULTFD

源码存在不表示 RK3588 产品配置已启用,应以最终 .config/proc/filesystems 为准。

文章互动

阅读 --

留言

0 条留言

正在加载留言…