Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

新版文件系统重构完成 #198

Merged
merged 31 commits into from
Mar 12, 2023
Merged

Conversation

fslongjin
Copy link
Member

1.重构:VFS
2. 重构:ProcFS
3. 重构:DevFS
4. 重构:FAT32
5. 重构:AHCI驱动
6. 新增:RamFS
7. 新增:MountFS
8. 新增:FAT12
9. 新增:FAT16
10. 重构:设备抽象

fslongjin and others added 30 commits January 4, 2023 17:29
* 1、在文件系统目录下增加mod.rs
2、将VFS的路径改为vfs

* 暂时新增了dentry结构体

* 新增vfs的inode的trait
* vfs:new:新增实现file结构体的操作
* 修正errno.h中对ESPIPE的重定义

* new: 新增挂载文件系统
* Patch sched rust (#139)

* update

* 添加rt调度器的rust初步实现

* 完善rt调度逻辑

* 调试rt调度器

* 修改sched的返回值

* cargo fmt 格式化

* 删除无用代码,修补rt bug

* 删除无用的代码,和重复的逻辑

* 软中断bugfix

* 删除一些代码

* 添加kthread_run_rt文档

* 解决sphinix警告_static目录不存在的问题

Co-authored-by: longjin <[email protected]>

* Raw spin lock 增加lock_irqsave、unlock_irqrestore(#151)

Raw spin lock 增加lock_irqsave、unlock_irqrestore

Co-authored-by: kong <[email protected]>
Co-authored-by: Gou Ngai <[email protected]>
* bugfix: 解决RamFS在根据inode_id,获取文件名的过程中,未正确处理”inode_id不存在“的情况的问题

* new: 初始化ROOT_INODE
* 定义了device和blockdevice的接口

* 修补 - 没有涉及重要内容

* 删去了assert

* Nothing!

* nothing had been done.

* 修补(x

* 完善注释

* 函数返回值全部改成了return

* 完善注释

* 交流设计思路

* 交流思路

* 为了保证BlockDevice的对象安全性,添加了BlockSize

---------

Co-authored-by: longjin <[email protected]>
* 新增FAT32数据结构

* BlockDevice新增device()方法和as_any_ref()方法

* FAT文件系统的一些功能
* 调整SeekFrom枚举类型,使其更符合Rust风格

* 新增VecCursor: 数组游标
使用Rust重构AHCI驱动 (#173)
* rust重构procfs

* 解决一些BUG, 仍存在问题:无法获取pcb的名字,始终为空

---------

Co-authored-by: longjin <[email protected]>
* 新增FAT32数据结构

* BlockDevice新增device()方法和as_any_ref()方法

* FAT文件系统的一些功能

* 合并ahci驱动的代码

* fat32能读取bpb和fsinfo
* 解除进程注册

* 恢复signal app的更改

---------

Co-authored-by: longjin <[email protected]>
* fat32能读取bpb和fsinfo

* list文件夹以及find子目录项

* fat32能够写入

* 调试ok:FAT32创建文件夹、文件夹内创建新的文件夹和文件

* fat32调试通过
* 1.在pcb中引入新的文件描述符数组
2.新的sys_open
3.新的sys_close

* 1.sys_read
2.sys_write
3.sys_lseek
* 1.在pcb中引入新的文件描述符数组
2.新的sys_open
3.新的sys_close

* 1.sys_read
2.sys_write
3.sys_lseek


* 1.调整elf组件的文件读取操作,适应新的vfs
2.迁移文件系统(仍存在问题:无法迁移root inode)

* 能够从新的文件系统加载应用程序
* bug+错误调试

* 解决procfs的注册\卸载函数放置位置不正确的问题

---------

Co-authored-by: longjin <[email protected]>
* devfs

* bugfix: load elf后,忘记关闭文件描述符

* 修复sys_open不能正确返回文件描述符的问题

* 消除警告

---------

Co-authored-by: longjin <[email protected]>
1.删除C的MBR
2.删除block io scheduler
3.删除C的procfs
4.删除C的ahci
* syscall

* fat32 get_entry_name

* 添加了d_type

* 能够正常执行ls命令

* 1.修复文件read,write的时候忘记更新offset的问题
2.实现readdir的功能

* 修复了procfs和devfs无法readdir的问题

---------

Co-authored-by: longjin <[email protected]>
@fslongjin fslongjin merged commit 004e86f into master Mar 12, 2023
@fslongjin fslongjin deleted the patch-filesystem-delete-debug-info branch March 13, 2023 01:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants