:::{note} 本文作者: 龙进
Email: longjin@DragonOS.org :::
在本文中,我们将介绍DragonOS文件系统的架构设计。
如下图所示,DragonOS的文件系统相关的机制主要包括以下几个部分:
具体的文件系统
┌─────────────────────────────────────────────────┐
│ │
Syscall: │ sys_open, sys_read, sys_write, sys_close, │
│ │
│ sys_lseek, etc.. │
│ │
└───────────────────────┬─────────────────────────┘
│
│
VFS: ┌──────▼─────┐
│ │
│ File │
│ │
└──────┬─────┘
│
┌────────▼────────┐
│ │
│ MountFS │
│ │
└────┬────────────┘
│
Filesystems: ┌─────────────┼─────────────┬────────────┐
│ │ │ │
┌─────▼─────┐ ┌─────▼─────┐ ┌─────▼────┐ ┌─────▼─────┐
│ │ │ │ │ │ │ │
│ FAT │ │ DevFS │ │ ProcFS │ │ RamFS │
│ │ │ │ │ │ │ │
└───────────┘ └───────────┘ └──────────┘ └───────────┘
DragonOS的文件系统相关的系统调用接口主要包括以下几个:
sys_open
:打开文件sys_read
:读取文件sys_write
:写入文件sys_close
:关闭文件sys_lseek
:定位文件指针sys_mkdir
:创建目录sys_unlink_at
:删除文件或目录(通过参数flag
区分到底是删除文件还是目录)sys_ioctl
:控制设备 (未实现)sys_fstat
:获取文件状态(未实现)sys_fsync
:同步文件(未实现)sys_ftruncate
:截断文件(未实现)sys_fchmod
:修改文件权限(未实现)关于接口的具体含义,可以参考 DragonOS系统调用接口。
VFS是DragonOS文件系统的核心,它提供了一套统一的文件系统接口,使得DragonOS可以支持多种不同的文件系统。VFS的主要功能包括:
关于VFS的详细介绍,请见DragonOS虚拟文件系统。
DragonOS目前支持的文件系统包括: