模拟 Linux 文件系统 C++

时间:2012-06-19 06:49:30
【文件属性】:

文件名称:模拟 Linux 文件系统 C++

文件大小:188KB

文件格式:RAR

更新时间:2012-06-19 06:49:30

文件系统 C++ Linux

1. 在现有机器硬盘上开辟100M的硬盘空间,作为设定的硬盘空间。 2. 编写一管理程序simdisk对此空间进行管理,以模拟Linux文件系统,要求: (1) 盘块大小1k (2) 空闲盘块的管理:Linux位图法 (3) 结构:超级块, i结点区, 根目录区 3. 该simdisk管理程序的功能要求如下: (1) info: 显示整个系统信息(参考Linux文件系统的系统信息),文件可以根据用户进行读写保护。目录名和文件名支持全路径名和相对路径名,路径名各分量间用“/”隔开。 (2) cd …: 改变目录:改变当前工作目录,目录不存在时给出出错信息。 (3) dir …: 显示目录:显示指定目录下或当前目录下的信息,包括文件名、物理地址、保护码、文件长度、子目录等(带/s参数的dir命令,显示所有子目录)。 (4) md …: 创建目录:在指定路径或当前路径下创建指定目录。重名时给出错信息。 (5) rd …: 删除目录:删除指定目录下所有文件和子目录。要删目录不空时,要给出提示是否要删除。 (6) newfile …: 建立文件。 (7) cat …: 打开文件。 (8) copy …: 拷贝文件,除支持模拟Linux文件系统内部的文件拷贝外,还支持host文件系统与模拟Linux文件系统间的文件拷贝,host文件系统的文件命名为…,如:将windows下D:盘的文件\data\sample\test.txt文件拷贝到模拟Linux文件系统中的/test/data目录,windows下D:盘的当前目录为D:\data,则使用命令: simdisk copy D:\data\sample\test.txt /test/data 或者:simdisk copy D:sample\test.txt /test/data (9) del …: 删除文件:删除指定文件,不存在时给出出错信息。 (10) check: 检测并恢复文件系统:对文件系统中的数据一致性进行检测,并自动根据文件系统的结构和信息进行数据再整理。 4. 程序的总体流程为: (1) 初始化文件目录; (2) 输出提示符,等待接受命令,分析键入的命令; (3) 对合法的命令,执行相应的处理程序,否则输出错误信息,继续等待新命令,直到键入EXIT退出为止。


【文件预览】:
文件系统
----OS5()
--------OS5.vcproj.Dark-PC.Allen.user(1KB)
--------userop.h(2KB)
--------disk.txt(50KB)
--------OS5.vcproj(4KB)
--------file.h(8KB)
--------command.h(5KB)
--------dir.h(12KB)
--------head.h(4KB)
--------blockinodesuperblock.h(7KB)
--------main.cpp(989B)
--------chsome.h(7KB)
--------initial.h(3KB)
--------user.txt(54B)
----debug()
--------disk.txt(50KB)
--------OS5.exe(100KB)
--------OS5.pdb(475KB)
--------user.txt(54B)
--------OS5.ilk(432KB)

网友评论

  • 很有参考价值,感谢分享
  • 比较简单,代码不能完全运行啊!感谢分享啦
  • 思路很清晰,可以借鉴,感谢
  • 参考价值很高,对自己帮助很大。
  • 代码不能完全运行,但是非常稍作修改可用,不错
  • 代码很有参考价值,但是没有完全符合课程设计的要求
  • 挺不错的,操作系统课设就靠他了
  • 非常给力,课程设计完破
  • 做关于LINUIX文件系统的课程设计的参考,不错的
  • 有点bug,整体思路很好,可以借鉴一下。
  • 很不错,挺有参考价值的哦
  • 总体还不错,整体思路很清晰。。
  • 好像不支持vs2010
  • 代码可用,很有参考价值。
  • 课程设计就靠参考他了
  • 正在做操作系统课设的同学可以拿来借鉴借鉴
  • 很不错啊,拿来参考很有意义
  • 还不错,整体思路很清晰!
  • 不支持大文件啊!索引块数太少了。
  • 总体还不错,但是删除目录时有bug,会错删其他目录。