实现文件系统FAT12。

[toc]

1. 实验目的

FAT12大概是最简单的文件系统,搞清楚FAT12工作原理,可以窥见文件系统的原理:文件、目录、磁盘管理、文件系统布局。

2. 实验内容

在U盘上实现FAT12。

注:U盘需要自备,如果没有U盘,又不想买一个,可以用虚拟机(如VMware)来做。

实现思路:

(1)格式化磁盘

这一步,先通过磁盘一些分区工具来做。也欢迎同学将这部分作为挑战内容用代码实现。

(2)实现文件系统基本功能

  • 打印当前目录下所有文件和目录名,类似于ls简易版
  • 打印文件/目录的文件控制块
  • 打印整个文件分配表
  • 切换目录,类似于cd功能
  • 创建文件、删除文件
  • 创建目录、删除目录

(3)挑战性任务

自行实现格式化磁盘功能。

模板代码已下发,见目录os_exp/exp9_FAT12/,仅作为参考,可自行安排自己的项目目录。

3. 实验要求

  • 实验基本要求见:所有实验要求
  • 截止时间:以课程派为准
  • 实验报告提交:提交到课堂派,同时上传pdf和markdown文档,源码压缩包

4. 实验评分

满分20。具体评分如下:

  • [x] 打印当前目录下所有文件和目录名,类似于ls简易版,4分
  • [x] 打印文件/目录的文件控制块,4分
  • [x] 打印整个文件分配表,4分
  • [ ] 切换目录,类似于cd功能,4分
  • [ ] 创建文件、删除文件,4分
  • [ ] 创建目录、删除目录,4分
  • [ ] 其他,视情况而定
  • [ ] 挑战性任务:实现格式化磁盘功能,额外+10分

注:

  • 前3项,是必须完成的,因为后续的功能测试会用到
  • 从第四项开始,可以自行选择要实现的功能

以下行为,会被扣分:

  • 抄袭,一经发现,视情况严重程度,倒扣[0, 20]
  • 报告可读性差,倒扣[0, 20]

5. 建议思路

如果觉得这个实验无从下手,建议按以下步骤走:

  • 理解FAT12原理,FAT12原理-详细版 ,真的不难,你静下心,好好阅读,理解:文件系统布局 + 文件 + 目录 + 磁盘管理
  • 下载模板代码,跑起来,可以打印出第一个扇区的内容
  • 参照模板代码中的打出出第一扇区的代码,写出打印文件分配表、根目录区内容的源代码,并对打印出来的内容进行分析(有点类似于协议的分析,每个字段表示什么含义)
  • 完成文件/目录创建和删除功能

如果觉得还是有些乱,建议边完成上述步骤,边整理文档。哪里不懂,大胆问,不丢脸。

6. 其他

最后,感谢计算2113班李康炜同学为本次实验做了很多探索,也提供了一些模板代码。

本文系Spark & Shine原创,转载需注明出处本文最近一次修改时间 2024-05-30 17:09

results matching ""

    No results matching ""