我们当然可以从硬盘第0个扇区开始放“学习资料”,那么问题来了,当我们把好多“学习资料”放进去之后,如果我想看第2个,怎么取出来?
元数据
要想取出某一份“学习资料”,我们肯定要有一份表格咯,里面要记下来每一份“学习资料”的开头在哪个扇区,一共占多少扇区,这份资料叫啥名字……这些“学习资料”本身内容以外的东西就是元数据。
好比一个人,实际上就是一些原子构成的分子,有机结合起来的一团骨肉,这个人的名字、身高、体重、银行卡+支付宝+微信里的财产……都是元数据。
我们当然可以自己拿个小本本,用笔记下这些“学习资料”的元数据。不过,我们为什么不能把元数据直接放在硬盘里,然后找一个小码农写个程序,在我们想“学习”时,先把这个表格读出来呢?
再进一步,我们为什么不能再给这个小码农一些好处,让他写个程序,在我们知道“学习资料”的名字时,可以根据元数据直接把“学习资料”读出来呢?
文件系统
这个小码农要做的事实际上就是实现一个文件系统。他得设计一个文件系统,这个文件系统要约定好硬盘上这个文件系统的管辖区域内的每个扇区是用来干什么的。
文件系统必须约定很多问题。比如,哪里放元数据?元数据有哪些?用什么数据结构描述?怎么给文件内容分配扇区?一个文件的创建、删除、写入、读出等操作该如何进行……
幸运的是,我们不用找小码农来帮忙搞定这些乱七八糟的事情了,给他的好处都可以省下了。计算机界的前辈们在往硬盘里放“学习资料”之前,早就解决了这些问题。像windows的FAT系列就是前辈们为了便于我们存取“学习资料”所创造的成果。