DOS文件系统-FAT32的理解

FAT32&BIO&DISK

众所周知存取数据最常见的是以文件方式。每当需要存取数据的时候,首先需要open and creat一个文件,随后read and write,完成后close,清空点格式化,查看文件敲ls/ll;这些看似简单的命令是如何到达diskdisk表示我可不知道命令、文件,我只认识数据)。

一个很明显的需求摆在眼前,我们需要在disk和文件直接建立映射关系。怎么建立?文件系统就是我们建立关系载体,bio就是的手段,disk就是目标。

1、 叫你一声你敢答应么

当我们在windows上插入一张从未使用过的盘片的时候,会出现什么状况?

——请格化

windows怎么知道你没被格式化呢?

——叫你一声没人应

       VxWorks面临一样的问题,我初次见到你怎么确定我们是否认识?叫你一声(读引导记录扇区),看你一眼(读文件系统保留区), 问你一句(读空间分配状态和文件/目录存储关系区)。OK,我们看看VxWorks下FAT32是怎么识别盘片的。

       发read sector=0 length = 1 bio两次,识别第一个block中的某些字段(0~1BD引导代码、分区表),如果不匹配则初始化它为rawfs,如果匹配则从sector=X开始读大概几百兆(和盘片容量有关,下文解释)的数据,如果其中特定的字段是匹配的,再次读sector=X,这样就代表probe FAT32 成功了,接下来就可以对disk文件操作(cd/ls/creat/rm/copy)了。(经测试在读取数据的时候抹去当前page末的227字节数据也能匹配fs成功,说明文件系统不是比较其中的每次字节都匹配,只对其中特殊的字段作比较)

2、 文件系统即数据

DOS的外壳---引导记录扇区:

FAT32属于DOS文件系统的一种,那么FAT32的外壳就应该是DOSFS(测试观察dosfs和ntfs 的 第一个扇区的478~493不同)如下为lba = 0 的数据:

{33 c0 8e d0 bc 00 7c 8e c0 8e d8 be 00 7c bf 00 06 b9 00 02 fc f3 a4 50 68 1c 06 cb fb b9 04 00 
bd be 07 80

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值