文件系统笔记七、文件目录、属性、共享、挂载的实现方式
引言:在上一篇笔记中,主要讲了文件系统布局及数据存储,这一篇笔记将记录一些相对边缘的问题,比如文件夹如何完成由文件名至文件地址的映射、文件属性的实现、长文件名如何实现、文件是如何共享的、文件系统挂载实现。这些是设计文件系统均需考虑的问题,本篇仅是一些通识性介绍。
1、文件名至文件地址的映射
文件夹的任务是提供从文件名至文件地址的映射,对于文件不同的组织形式,文件的地址表示存在差异,其地址映射方式也存在差异。
1)、文件连续存放:只需要文件的第一个数据块的磁盘地址即可,后面的数据块紧接在该数据块的后面。这种情况下文件夹里面存放的映射是到I-NODE数据块地址。
2)、链表组织形式:只需要知道文件的第一个数据块的磁盘地址即可,后面的数据块可以通过前面的数据块里面指针得到,这种情况下文件夹里面存放的也是到I-NODE数据块地址。
3)、FAT组织形式:*映射仍然保持不变*,我们可以从FAT里面找到后继数据块所在的物理磁盘地址。
4)、I-NODE组织形式:只需要知道文件对应的顶级I-NODE地址即可,文件的数据块地址可以从I-NODE里面获得,这种情况下文件夹里面存放的是到I-NODE编号。
2、文件属性的存放:
每个文件都有一个文件名,而文件里面存放的是数据。但除此之外,还有很多信息是我们感兴趣的,如文件是谁创立的、谁拥有这个文件、是不是可以随机访问等等,这些称为文件属性。
文件属性存放位置因文件组织方式不同而有所差异,如果是连续或链表组织形式,只有文件夹里面可以存放文件属性,如图1所示。