File tree Expand file tree Collapse file tree 4 files changed +340
-74
lines changed
Expand file tree Collapse file tree 4 files changed +340
-74
lines changed Original file line number Diff line number Diff line change @@ -4,7 +4,6 @@ sidebar_position: 2
44
55# 组件设计
66
7- ## 组件概述
87AxFS(ArceOS File System)是 AxVisor 虚拟化平台的核心文件系统组件,负责为操作系统内核和应用提供统一的文件系统访问接口。它作为虚拟化环境中的存储抽象层,支持多种文件系统类型(Ext4、FAT32、RAMFS等),并为用户空间提供类POSIX的文件操作API。
98
109主要职责为:
@@ -151,7 +150,7 @@ pub struct OpenOptions {
151150
152151## API 设计
153152
154- ### 高级 API (api/)
153+ ### 高级 API
155154
156155提供 ` std::fs ` 风格的接口:
157156
@@ -174,7 +173,7 @@ pub fn current_dir() -> io::Result<String>
174173pub fn set_current_dir (path : & str ) -> io :: Result <()>
175174```
176175
177- ### 低级 API ( fops . rs)
176+ ### 低级 API
178177
179178提供带权限的文件操作:
180179
@@ -227,7 +226,7 @@ axfs 尽量保证对其他组件较少的依赖程度,仅依赖于 axdriver、
227226
228227- axerrno:提供统一的错误处理机制,定义文件系统操作中的错误类型和处理方式
229228
230- ## 第三方通用库
229+ ### 第三方通用库
231230
232231- cap_access:提供能力访问控制,管理文件系统访问权限
233232
Original file line number Diff line number Diff line change 22sidebar_position : 1
33---
44
5- # 文件系统框架
5+ # 总体框架
66
77Axvisor 文件系统是一个为现代操作系统设计的模块化、分层文件系统架构。它采用虚拟文件系统(VFS)抽象层设计,支持多种文件系统类型,包括 FAT32、EXT4、内存文件系统(RAMFS)等,具有高度的可扩展性和灵活性。
88
@@ -22,25 +22,25 @@ Axvisor 文件系统采用清晰的分层架构,从上到下分为以下几个
2222
2323![ FILESYSTEM] ( ./images_fs/framework.png )
2424
25- ### API 层 (API Layer)
25+ ### API 层
2626API 层为用户提供了一组高级文件操作接口,包括文件读写、目录操作、文件属性管理等。这一层屏蔽了底层文件系统的差异,提供了一致的编程接口。
2727
28- ### 虚拟文件系统层 (VFS Layer)
28+ ### 虚拟文件系统层
2929VFS 是文件系统的核心抽象层,负责:
3030- 路径解析和名称管理
3131- 文件系统挂载和卸载管理
3232- 文件描述符管理
3333- 统一的文件操作接口转换
3434- 缓存管理和优化
3535
36- ### 具体文件系统层 (Filesystem Implementations)
36+ ### 具体文件系统层
3737这一层包含各种具体文件系统的实现,每个文件系统都实现了标准的 VFS 接口:
3838- ** FAT32** :支持 FAT12/FAT16/FAT32 文件系统
3939- ** EXT4** :支持 Linux 标准的 EXT4 文件系统
4040- ** RAMFS** :内存文件系统,用于临时文件存储
4141- ** PROCFS** :进程文件系统,提供进程信息访问
4242
43- ### 存储设备层 (Storage Layer)
43+ ### 存储设备层
4444存储设备层负责与具体的存储设备进行交互,包括:
4545- 设备初始化和驱动加载
4646- 分区扫描和管理
You can’t perform that action at this time.
0 commit comments