@@ -3,13 +3,93 @@ sidebar_position: 1
33---
44
55# 框架流程
6+ ## 文件系统框架
67
7- ### 系统启动流程
8- 文件系统的初始化是系统启动的关键步骤,流程如下:
8+ Axvisor 文件系统是一个为现代操作系统设计的模块化、分层文件系统架构。它采用虚拟文件系统(VFS)抽象层设计,支持多种文件系统类型,包括 FAT32、EXT4、内存文件系统(RAMFS)、设备文件系统(DEVFS)等,具有高度的可扩展性和灵活性。
99
10- 1 . ** 设备初始化** :初始化块设备驱动
11- 2 . ** 分区扫描** :扫描并识别分区
12- 3 . ** 文件系统检测** :检测各分区的文件系统类型
13- 4 . ** 根文件系统选择** :根据启动参数或默认策略选择根文件系统
14- 5 . ** 文件系统挂载** :挂载根文件系统和其他分区
15- 6 . ** 子文件系统挂载** :挂载/dev, /proc, /sys等子文件系统
10+ ### 设计理念
11+
12+ Axvisor 文件系统的设计遵循以下核心原则:
13+
14+ - ** 模块化设计** :各组件独立开发、测试和维护,降低系统复杂度
15+ - ** 分层架构** :清晰的抽象层次,便于理解和扩展
16+ - ** 统一接口** :通过 VFS 提供一致的文件操作接口
17+ - ** 高性能** :优化的数据结构和算法,支持并发访问
18+ - ** 可扩展性** :易于添加新的文件系统类型支持
19+
20+ ### 架构层次
21+
22+ Axvisor 文件系统采用清晰的分层架构,从上到下分为以下几个层次:
23+
24+ ![ FILESYSTEM] ( ./images_fs/framework.png )
25+
26+ #### 1. API 层 (API Layer)
27+ API 层为用户提供了一组高级文件操作接口,包括文件读写、目录操作、文件属性管理等。这一层屏蔽了底层文件系统的差异,提供了一致的编程接口。
28+
29+ #### 2. 虚拟文件系统层 (VFS Layer)
30+ VFS 是文件系统的核心抽象层,负责:
31+ - 路径解析和名称管理
32+ - 文件系统挂载和卸载管理
33+ - 文件描述符管理
34+ - 统一的文件操作接口转换
35+ - 缓存管理和优化
36+
37+ #### 3. 具体文件系统层 (Filesystem Implementations)
38+ 这一层包含各种具体文件系统的实现,每个文件系统都实现了标准的 VFS 接口:
39+ - ** FAT32** :支持 FAT12/FAT16/FAT32 文件系统
40+ - ** EXT4** :支持 Linux 标准的 EXT4 文件系统
41+ - ** RAMFS** :内存文件系统,用于临时文件存储
42+ - ** DEVFS** :设备文件系统,管理设备节点
43+ - ** PROCFS** :进程文件系统,提供进程信息访问
44+
45+ #### 4. 存储设备层 (Storage Layer)
46+ 存储设备层负责与具体的存储设备进行交互,包括:
47+ - 设备初始化和驱动加载
48+ - 分区扫描和管理
49+ - I/O 操作和调度
50+
51+
52+ ### 实现代码结构
53+ ```
54+ axfs/
55+ ├── src/
56+ │ ├── lib.rs # 模块入口和初始化
57+ │ ├── api/ # 高级API接口
58+ │ │ ├── mod.rs # API模块导出
59+ │ │ ├── file.rs # 文件操作API
60+ │ │ └── dir.rs # 目录操作API
61+ │ ├── fops.rs # 底层文件系统操作
62+ │ ├── root.rs # 根目录和挂载管理
63+ │ ├── mounts.rs # 文件系统挂载实现
64+ │ ├── dev.rs # 设备抽象层
65+ │ ├── fs/ # 具体文件系统实现
66+ │ │ ├── mod.rs # 文件系统模块导出
67+ │ │ ├── fatfs.rs # FAT文件系统
68+ │ │ └─── ext4fs.rs # EXT4文件系统
69+ │ └── partition.rs # 磁盘分区管理
70+ └── Cargo.toml
71+ ```
72+
73+ #### 核心模块说明
74+
75+ - ** lib.rs** :文件系统模块的入口点,负责初始化和导出公共接口
76+ - ** api/** :提供高级文件操作 API,包括文件和目录操作
77+ - ** fops.rs** :实现底层文件系统操作,是 VFS 和具体文件系统之间的桥梁
78+ - ** root.rs** :管理根目录和全局挂载点
79+ - ** mounts.rs** :实现文件系统的挂载和卸载逻辑
80+ - ** dev.rs** :设备抽象层,提供统一的设备访问接口
81+ - ** fs/** :包含各种具体文件系统的实现
82+ - ** partition.rs** :处理磁盘分区识别和管理
83+
84+
85+ ## 系统启动流程
86+
87+ 文件系统的初始化是系统启动的关键步骤,它确保了操作系统能够正确访问存储设备并提供文件服务。整个启动流程经过精心设计,既保证了系统的可靠性,又提供了灵活的配置选项。
88+
89+ ### 详细启动流程
90+ 1 . 设备初始化:初始化块设备驱动
91+ 2 . 分区扫描:扫描并识别分区
92+ 3 . 文件系统检测:检测各分区的文件系统类型
93+ 4 . 根文件系统选择:根据启动参数或默认策略选择根文件系统
94+ 5 . 文件系统挂载:挂载根文件系统和其他分区
95+ 6 . 子文件系统挂载:挂载/dev, /proc, /sys等子文件系统
0 commit comments