理解FAT12文件系统:操作系统实验分析

需积分: 0 0 下载量 104 浏览量 更新于2024-08-04 收藏 230KB DOCX 举报
"操作系统实验报告——FAT12文件系统分析与扫描" 实验131主要涉及的操作系统知识是FAT12文件系统,这是早期个人计算机中广泛使用的文件系统,尤其是在软盘上。FAT12,全称为File Allocation Table 12,是一种用于组织和管理磁盘上数据的结构,它记录了文件在磁盘上的存储位置。 实验目的和任务是让学生通过实际操作理解和改进FAT12文件系统的扫描功能。首先,学生需要阅读实验教材第8章,掌握FAT12的技术细节,包括文件分配表的结构、簇的概念以及如何通过FAT查找文件。此外,微软的硬件白皮书提供了更深入的FAT文件系统介绍,供学生参考。 实验内容主要围绕ke/sysproc.c文件中的ConsoleCmdScanDisk函数展开。这个函数负责扫描软盘上的FAT12文件系统。在开始扫描前,为了保证数据一致性,需要关闭中断,扫描结束后再打开。通过调用ObpLookupObjectByName函数并传入"A:"盘符,可以获取到FAT12设备对象的指针,进一步访问其DeviceExtension,即卷控制块(VCB)。VCB包含了文件系统的关键参数,如FAT表信息,可用于遍历和统计空闲簇。 FatGetFatEntryValue函数是核心工具,它根据给定的簇号查询FAT表,返回对应的FAT项值。在扫描过程中,这个函数用于计算空闲簇的数量。 实验执行步骤包括编译生成EOSKernel项目,启动调试,然后在EOS控制台中运行"sd"命令,观察并理解输出的FAT12文件系统信息。 实验的扩展任务是根据BIOS Parameter Block (BPB)的信息,重新计算并输出根目录的起始扇区号和大小。BPB是FAT文件系统中的一部分,存储了关于磁盘布局的关键信息。学生需要修改ConsoleCmdScanDisk函数,不依赖已有的变量值(如pVcb->FirstRootDirSector和pVcb->NumRootDirEntries),而是利用BPB中的参数重新计算这些值。 通过这个实验,学生不仅可以掌握FAT12文件系统的基本工作原理,还能提升对操作系统底层数据管理的理解,以及编程实现文件系统扫描的能力。这将有助于他们更好地理解和设计更复杂的文件系统,以及在遇到相关问题时进行有效的故障排查。