操作系统课程设计 模拟磁盘文件系统实现

模拟磁盘文件系统实现

前言

操作系统的课程设计,设计一个简单的文件系统,要求:
(1) 支持多级目录结构,支持文件的绝对读路径;
(2) 文件的逻辑结构采用流式结构,物理结构采用链接结构中的显式链接方式;
(3) 采用文件分配表FAT;
(4) 实现的命令包括建立目录、列目录、删除空目录、建立文件、删除文件、显示文件内容、打开文件、读文件、写文件、关闭文件、改变文件属性。可以采用命令行界面执行这些命令,也可以采用“右击快捷菜单选择”方式执行命令;
(5) 最后编写主函数对所作工作进行测试。
(6)支持多级树型目录,支持相对路径

实现

很久以前的课程设计了,当初参考了了这个实现,有些直接拿来用了。 界面和操作模仿一般桌面操作系统,全部用java实现,ui使用javafx。其实和操作系统文件系统好像没什么关系,没用到什么算法,就是一个图形界面的小实验作品,大部分时间用来写ui了,偏离了课程设计中对操作系统和文件系统进一步学习研究的初衷。如果有同学找到我这篇博客,如果你们对操作系统有学习热情的话,我还是建议你们借助课设的机会去了解操作系统文件系统的底层原理和算法,学习一下linux,手写一些算法。
虽然我这个项目只是流于表面,但是学习Java的各位可以在我代码的基础之上增加一些自己的理解,规范化代码,用软件工程和面向对象的思想,项目结构、类层次、抽象、耦合内聚、设计模式等等都可以改进。或者添加或重构部分功能,甚至可以改写成真正的文件系统算法。好好写代码还是能学到一些东西的。
比如我当时写完的时候文件数据是不能持久化的,最近在复习java se,重新用序列化将数据保存到磁盘,顺便放上博客,希望能收获几个star。其他就不赘述了,代码里都有,下面放截图

主界面,右击空白区域可以新建,上边的地址栏可以输路径跳转和返回上一级,左边目录树可以直接点击跳转主界面右击

右键菜单
右键菜单
打开文件
文件
属性查看
属性
重命名
重命名

代码

喜欢的话请给我一个star,希望对你有帮助

后记

有同学不知道怎么导入ide,本着助人为乐的精神,特意把eclipse下回来试验了一下

首先在github下载zip包
首先在github下载zip包
zip包
然后在eclipse选择File选项卡 -> Import -> General -> Projects from Folder or Archive 点next
Import
Next
点Archive选择zip包,把那个勾勾上,点Finish就可。(图中因为我导入过所以才会失败)
在这里插入图片描述
成功之后就可以打开项目运行啦
右键运行Main主类
用eclipse导zip包就是这么简单,其实还可以用自带的git工具直接clone下来
会用idea的同学怎么导入就不用教了吧

感谢观看,能给我一个star吗

  • 36
    点赞
  • 131
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
模拟Linux文件系统。在任一OS下,建立一个文件,把它假象成一张盘,在其实现一个简单的 模拟Linux文件系统 在现有机器硬盘上开辟20M的硬盘空间,作为设定的硬盘空间。 2. 编写一管理程序对此空间进行管理,以模拟Linux文件系统,具体要求如下: (1) 要求盘块大小1k 正规文件 (2) i 结点文件类型 目录文件 (共1byte) 块设备 管道文件 物理地址(索引表) 共有13个表项,每表项2byte 文件长度 4byte 。联结计数 1byte (3)0号块 超级块 栈长度50 空闲盘块的管理:成组链接 ( UNIX) 位示图法 (Linux) (4)每建一个目录,分配4个物理块 文件名 14byte (5)目录项信息 i 结点号 2byte (6)结构: 0#: 超级块 1#-20#号为 i 结点区 20#-30#号为根目录区 3. 该管理程序的功能要求如下: (1) 能够显示整个系统信息,源文件可以进行读写保护。目录名和文件名支持全路径名和相对路径名,路径名各分量间用“/”隔开。 (2) 改变目录:改变当前工作目录,目录不存在时给出出错信息。 (3) 显示目录:显示指定目录下或当前目录下的信息,包括文件名、物理地址、保护码、文件长度、子目录等(带/s参数的dir命令,显示所有子目录)。 (4) 创建目录:在指定路径或当前路径下创建指定目录。重名时给出错信息。 (5) 删除目录:删除指定目录下所有文件和子目录。要删目录不空时,要给出提示是否要删除。 (6) 建立文件(需给出文件名,文件长度)。 (7) 打开文件(显示文件所占的盘块)。 (8) 删除文件:删除指定文件,不存在时给出出错信息。 4. 程序的总体流程为: (1) 初始化文件目录; (2) 输出提示符,等待接受命令,分析键入的命令; (3) 对合法的命令,执行相应的处理程序,否则输出错误信息,继续等待新命令,直到键入EXIT退出为止。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值