Commit Graph

22 Commits

Author SHA1 Message Date
LoGin 5ad0b616e7
feat(fs): fuse support (#1773)
- Add FUSE kernel module with connection management, device node, and filesystem
implementation
- Implement FUSE protocol handling for basic operations (lookup, read, write,
create, etc.)
- Add /dev/fuse device support with ioctl for connection cloning
- Support FUSE mount options (allow_other, default_permissions, etc.)
- Add permission model support (DAC and remote modes)
- Add userspace test programs (fuse_demo and fuse3_demo)
- Add comprehensive test suite for FUSE functionality
- Update VFS to support FUSE-specific features and permission handling

Signed-off-by: longjin <longjin@DragonOS.org>
2026-02-16 16:58:58 +08:00
LoGin bed929e01a
refactor(block&filesystem): 移除块设备缓存层并实现FAT表缓存 (#1669)
* refactor: 移除块设备缓存层并实现FAT表缓存

- 删除块设备缓存模块及相关代码
- 修改块设备接口直接使用同步读写路径
- 在FAT文件系统中添加LRU缓存优化FAT表查询
- 更新文档,移除未实现的系统调用列表并添加支持的文件系统

Signed-off-by: longjin <longjin@DragonOS.org>
2026-01-15 20:53:43 +08:00
LoGin 43263c1a11
feat(vfs): Implement mount propagation mechanism in VFS (#1410)
* feat(vfs): Implement mount propagation mechanism in VFS

- Added support for mount propagation types: Shared, Private, Slave, and Unbindable.
- Introduced a new module for managing mount propagation semantics, including peer group registration and event propagation.
- Updated existing mount functions to handle propagation logic during mount and unmount operations.
- Enhanced documentation to include details on the new mount propagation features and their usage.
- Added unit tests to verify the correctness of mount propagation behavior across different scenarios.

This implementation aligns with Linux semantics for mount propagation, ensuring compatibility and expected behavior in containerized environments.;

Signed-off-by: longjin <longjin@DragonOS.org>

* refactor(filesystem): optimize mount propagation and logging

- Replace ID allocator with atomic counter for propagation groups
- Refactor peer group registry into structured class with better APIs
- Remove verbose debug logs to reduce noise

Signed-off-by: longjin <longjin@DragonOS.org>

* fix(namespace): correct mount propagation peer group handling

- Fix peer group registration when changing propagation type from shared
- Ensure propagated mounts join source child's peer group instead of target
parent's group
- Add proper peer group cleanup when transitioning from shared propagation

Signed-off-by: longjin <longjin@DragonOS.org>

* feat(vfs): implement recursive bind mount support

- Add recursive bind mount functionality with MS_BIND | MS_REC flags
- Implement BFS traversal for copying submounts in do_recursive_bind_mount
- Fix mount registration order to prevent dangling registrations on failure
- Add comprehensive test cases for recursive and non-recursive bind mounts

Signed-off-by: longjin <longjin@DragonOS.org>

---------

Signed-off-by: longjin <longjin@DragonOS.org>
2025-11-27 01:07:16 +08:00
LoGin 7ea0781b79
Fix mountable fs doc (#1224)
* docs: 更新可挂载文件系统文档格式和内容

- 调整markdown格式和排版

Signed-off-by: longjin <longjin@DragonOS.org>

* fix(doc_translator): 修正代码块正则表达式匹配逻辑

优化多行代码块和内联代码块的正则表达式匹配,确保正确处理代码块格式

Signed-off-by: longjin <longjin@DragonOS.org>

---------

Signed-off-by: longjin <longjin@DragonOS.org>
2025-06-29 17:57:32 +08:00
火花 1e574d89fa
feat(fs): 补充mount系统调用,增加对硬盘挂载 & ext4文件系统的支持 (#1182)
主要变更:
* 实现完整的mount系统调用,支持从块设备挂载文件系统
* 新增ext4文件系统支持,基于another_ext4库实现
* 引入MountableFileSystem trait和文件系统工厂模式,提升VFS架构
* 完善块设备管理,自动将磁盘和分区注册到devfs(/dev)
* 支持virtio块设备的分区检测和挂载
* 新增umount2系统调用支持文件系统卸载
* 重构symlink相关系统调用,提升代码组织
* 提供硬盘镜像制作脚本和测试程序

技术细节:
- 支持ext4和vfat文件系统的挂载
- 实现MBR分区表解析和GenDisk管理
- 集成页面缓存支持提升文件系统性能
- 完善错误处理和设备号管理
- 新增详细的VFS挂载机制文档

测试验证:
- 新增test-mount-ext4和test-mount-fat测试程序
- 提供make_fs_image.sh脚本创建测试镜像
- 验证挂载、读写、卸载完整流程

Co-authored-by: Samuka007 <samuka007@dragon-os.org>
Co-authored-by: oeasy1412 <oeasy1412@gmail.com>
Co-authored-by: fslongjin <longjin@DragonOS.org>
2025-06-29 17:05:06 +08:00
LoGin b322121dd9
feat(syscall): 添加syscall table的实现 (#1164)
* feat(syscall): 添加syscall table的实现

- 实现syscall table
- 为syscall table适配write/writev、read和readv系统调用

---------

Signed-off-by: longjin <longjin@DragonOS.org>
2025-05-13 18:59:18 +08:00
codeironman f5b2038871
ospp project (feature) add namespace overlayfs cgroup (#949)
## 开发进展:
## namespace
- pid_namespace 基本实现,基于pid_struct等数据结构实现隔离
- mnt_namespace 基本实现,挂载点的隔离通过不同的挂载树来实现
- usernamespace 作为支持性的namespace,目前受限实现全局静态
## overlayfs
- 实现若干个文件系统的叠加,在mount中传入多个路径作为多个fs的mount路径以及最后merge层的fs路径
- copy-up机制的,除最上层外其他层为只读层,满足写时拷贝,需要修改的时候copy到上层修改
- whiteout特殊文件,用于标记在下层需要被删除的文件用来掩盖需要删除的文件
## cgroups
- 目前cgroups还处于框架阶段,之后具体实现具体的内存、CPU等子系统
2024-10-31 00:50:34 +08:00
LoGin 6b4e7a2972
增加kernfs (#386)
* 增加kernfs

* kernfs文档
2023-09-19 19:46:59 +08:00
TingHuang e0de0fd6a5
根据sysfs完善设备驱动模型 & 添加sysfs官方文档 (#254)
* 根据sysfs完善设备驱动模型

* 添加sysfs官方文档
2023-04-23 22:55:57 +08:00
login 45b8371173
新增VFS文档,以及修改文档配置 (#209)
* 1.新增vfs设计文档
2.修改文档版权标志为"2022-2023, DragonOS Community"
3.修改电脑版文档页面的宽度为90%

* layout.html末尾加空行
2023-03-25 14:51:16 +08:00
login 004e86ff19
新版文件系统重构完成 (#198)
1.重构:VFS
2. 重构:ProcFS
3. 重构:DevFS
4. 重构:FAT32
5. 重构:AHCI驱动
6. 新增:RamFS
7. 新增:MountFS
8. 新增:FAT12
9. 新增:FAT16
10. 重构:设备抽象

Co-authored-by: guanjinquan <1666320330@qq.com>
Co-authored-by: DaJiYuQia <88259094+DaJiYuQia@users.noreply.github.com>
2023-03-12 22:36:11 +08:00
login 587086d3f2
1、在文件系统目录下增加mod.rs 2、将VFS的路径改为vfs(#133)
2、将VFS的路径改为vfs
2023-01-01 16:53:57 +08:00
fslongjin 2d1af61813 doc: devfs文档 2022-09-16 13:52:11 +08:00
fslongjin ed594f1054 rootfs文档 2022-09-16 12:59:13 +08:00
fslongjin 499d32d17c doc: 调整目录 2022-09-15 13:48:49 +08:00
fslongjin 9f2b080cda new: devfs删除文件夹 2022-09-12 23:56:31 +08:00
fslongjin be155d670b :doc: 完善FAT32文档 2022-07-08 21:42:34 +08:00
fslongjin 1ffc21ea2e :doc: 订正文档首行缩进 2022-07-07 23:53:37 +08:00
fslongjin 745b9c1cc9 :doc: 完善vfs文档 2022-07-07 23:44:29 +08:00
fslongjin 9bf52cf2ab 🔧 修正了创建硬盘镜像的脚本的bug 2022-07-03 22:37:54 +08:00
longjin 1580995f09 :doc: 补充了VFS的部分文档信息 2022-06-29 14:22:07 +08:00
longjin 6a2ed3c4ee :doc: 新增了文件系统的文档框架(待填充) 2022-06-28 23:53:50 +08:00