一个基于 Python 和 PyQt6 的高仿真度、图形化、多用户、多级目录文件系统模拟器,专为操作系统课程设计而生。
本项目不仅实现了标准文件系统的核心功能,还提供了一个现代、直观的图形用户界面,使用户能够轻松地与模拟的文件系统进行交互。它深度模拟了UNIX文件系统的内部机制,包括i节点、数据块管理、持久化存储和用户会话等,是学习和理解操作系统文件系统原理的绝佳实践。
- ✅ 直观的文件管理器布局:左侧目录树、右侧文件列表,类似Windows资源管理器
- ✅ 文件类型图标区分:文件、目录、符号链接显示不同图标
- ✅ 地址栏分段导航:支持点击路径段快速跳转
- ✅ 多选和批量操作:支持多选文件/目录,右键菜单批量删除、重命名等
- ✅ 实时状态栏:显示当前选中文件信息和目录统计
- ✅ 系统监控面板:实时显示磁盘使用率、缓存统计、性能指标等
- ✅ 多级目录结构:支持任意深度的目录嵌套
- ✅ 文件操作:创建 (
create)、删除 (rm)、重命名 (rename) - ✅ 目录操作:创建 (
mkdir)、递归删除 (rm -r)、重命名 (rename) - ✅ 链接文件:支持创建和解析符号链接 (
ln -s) 和硬链接 (ln) - ✅ 文件I/O:完整的打开 (
open)、读 (read)、写 (write)、关闭 (close) 工作流 - ✅ 可排序视图:文件列表支持按名称、大小、类型和修改日期进行升/降序排序
- ✅ 内置文本编辑器:支持文本文件的创建、查看和修改
- ✅ 多用户支持:实现了用户登录 (
login) 和注销 (logout) 功能 - ✅ 细粒度权限控制:基于UNIX权限模型,支持读/写/执行权限检查
- ✅ 权限分离:
root用户拥有特殊权限,如格式化磁盘和创建新用户 - ✅ 持久化存储:所有对文件系统的更改都会被保存到本地的
simulated_disk.img文件中 - ✅ 系统级操作:支持对整个模拟磁盘进行格式化 (
format)
- ✅ 文件加密:支持对文件进行AES加密保护
- ✅ 文件压缩:支持gzip压缩和解压缩
- ✅ 缓存管理:LRU缓存机制,提高文件系统性能
- ✅ 错误处理:完善的异常捕获和错误日志记录
- ✅ 系统监控:实时监控磁盘使用、缓存命中率、操作统计等
- 核心语言: Python 3.8+
- 图形界面: PyQt6
- 数据序列化: Pickle (用于持久化)
- 加密: cryptography (用于文件加密)
- 压缩: gzip, zlib (用于文件压缩)
- 确保您的系统中已安装 Python 3.8 或更高版本
- 推荐使用虚拟环境
pip install PyQt6 cryptography克隆或下载本项目后,在项目根目录下运行 main.py:
python main.py程序将启动并显示登录窗口。
- 程序启动后,使用默认账户登录
- 管理员账户:用户名
root,密码root - 普通账户:用户名
guest,密码guest
- 左侧目录树:点击目录快速导航
- 地址栏:输入路径或点击路径段跳转
- 导航按钮:后退、前进、上级目录、刷新
- 新建:右键菜单或工具栏按钮创建文件/目录
- 删除:选中文件/目录后按Delete键或右键删除
- 重命名:右键菜单重命名
- 属性:右键菜单查看详细属性信息
- 硬链接:选中文件后创建硬链接
- 加密:选中文件后设置加密密码
- 压缩:选中文件后设置压缩级别
点击工具栏的"系统监控"按钮,可以查看:
- 磁盘使用情况
- 缓存统计信息
- 性能指标
- 错误日志
本项目旨在深入模拟文件系统的核心设计:
通过 DiskManager 类在内存中模拟一个完整的文件卷,包含:
- 超级块:存储文件系统元数据
- 位图:管理i节点和数据块的分配状态
- i节点区:存储文件元数据
- 数据区:存储实际文件内容
每个文件、目录和符号链接都由一个唯一的 Inode 对象描述,包含:
- 元数据:大小、权限、所有者、时间戳
- 数据块指针:直接块、间接块、双间接块
- 特殊属性:加密状态、压缩状态等
目录是一种特殊的文件,其数据块中存储的是 DirectoryEntry 列表,每个条目将文件名映射到一个i节点号,从而构建起整个文件系统的层级关系。
实现了完整的UNIX权限模型:
- 所有者权限:读/写/执行
- 组权限:读/写/执行
- 其他用户权限:读/写/执行
- 特殊权限:SUID、SGID、Sticky bit
通过 PersistenceManager,整个 DiskManager 对象在程序关闭时被序列化并写入磁盘文件,实现了对模拟文件系统的"断电保护"。
- ✅ 文件/目录/符号链接图标区分
- ✅ 地址栏分段导航功能
- ✅ 文件列表多选和右键菜单
- ✅ 实时状态栏信息显示
- ✅ 系统监控面板集成
- ✅ 细粒度权限校验集成
- ✅ 批量操作支持
- ✅ 文件加密和压缩功能
- ✅ 缓存管理优化
- ✅ 错误处理完善
- ✅ 登录窗口用户体验优化
- ✅ 文本编辑器资源泄漏修复
- ✅ 文件操作后自动刷新
- ✅ 持久化异常处理
- ✅ 全局错误捕获
- 实现间接寻址(单级、多级间接块)以支持大文件
- 增加用户组管理功能
- 实现更完整的权限系统(chmod、chown)
- 支持文件系统挂载和卸载
- 增加文件/目录的拖拽移动和复制功能
- 支持文件预览功能
- 增加搜索和过滤功能
- 支持多标签页浏览
- 引入日志或事务机制,保证文件系统操作的原子性
- 实现文件系统一致性检查(fsck)
- 支持增量备份和恢复
- 增加网络文件系统支持
本项目采用 MIT License 授权。