实验四文件系统实验报告.pdfVIP

  • 34
  • 0
  • 约3.73万字
  • 约 24页
  • 2020-02-26 发布于四川
  • 举报
. 文件系统 实验报告 一、 实验目的 了解操作系统中文件系统的原理以及实现方法。 二、 实验方法 通过 FAT12文件系统的解读,了解文件系统的原理和实现。 三、 实验任务 通过对 FAT12文件系统的了解, 编写程序, 读取并列出一个虚拟软盘中文件信 息(文件名、属性、修改时间等) ,以及读取其中的文件内容 四、 实验要点 FAT12文件系统的了解, Linux 系统下文件读写相关系统调用。 五、 实验过程 1. FAT12 文件系统分析 簇是操作系统分配文件空间的基本单位,簇由若干个扇区组成。在 FAT12 文件系统中, 簇号的有效位是 12 位,所以这种文件系统就被称为 FAT12。FAT12 文件系统中大致可以分成五个区,这五个区为: 起始扇区 占用扇区 起始地址 结束地址 分区 0 1 0 0x000001FF 引导区 1 9 0 0x000013FF FAT区 10 9 0 0x000025FF FAT备份区 19 12 0 0x00003DFF 根目录区 31 - 0x00003E00 - 文件数据区 其中,引导区中储存着一些基本的信息。 例如,0x0000000B 和 0x0000000C 两个字节保存着每个扇区的大小, 0x0000000D 保存着每个簇占用多少个扇区。 FAT 区中储存着簇号。在 0 开始的三个字节,分别储存设备类 型标记 (0xF0 为软盘 );第二个第三个字节均为 0xFF,是 FAT标识符。在 FAT12 文件系统中,每个簇占用 12 位,即 1.5 个字节。簇号与地址的对应关系如下 表: 地址偏移 000 001 002 003 004 005 簇序号 000 001 002 003 一个簇号跨越两个字节, 每次读取簇号时读取两个字节, 然后对读出的两 个字节进行位运算处理,得到下一簇的簇序号。 注意,这里同样需要对高低位进行处理, 即使用位计算的方式提取相应的 簇号信息。 根据上述的原理, 可以得出一个函数, 以一个簇号为参数, 返回值为文件 下一个簇号。代码如下: int getNextClutserId(FILE *fp, short clusterId) { . . unsigned short tmp, low = 0, high = 0;;

文档评论(0)

1亿VIP精品文档

相关文档