1>.寻址定位:数据从哪开始到哪结束
2>.要实现快速存取数据,所以建立文件系统
3>.文件系统是一个管理软件,存储在磁盘的某个位置上的,并不是直接在这个分区上
4>.文件系统能将分区划分成两片
概念:
元数据(metabata)算是一种电子式目录,为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的。
元数据是关于数据的组织、数据域及其关系的信息,简言之,元数据就是关于数据的数据。
第一片叫元数据存储区
1.编目:存放文件的名称+存储路径
对应的数据放在哪些块上了,一共占据了哪些块,每个块都有编号
编目中频繁添加删除信息,会产生很多离散内容空间,即碎片,此时再次查找这个编目中的条目,速度也会变慢,为了提升速度也会为它创建一个位图(bitmap),位图中的内容和编目中条目的内容是一一对应的,所以位图中是空闲的,对应的编目中条目空间也是空闲的。
编目中的每个条目叫做索引节点(inode--index node),每一个inode都有一个全局编号。每一个inode号码用来引用一个文件
每个inode条目存储的是:inode号,每个文件的属主和属组,扩展属性,权限,大小,时间戳,磁盘块的编号(指针),但是不包括文件名。
编目中也有块位图(inode bitmap),目的为了查找inode和存储块的对应位置,从而找到文件名
文件的访问,需要经过一个复杂的迭代过程(内核自找根-inode-块-dentry(目录项)-inode-块-直到找到文件),访问一次后会产生缓存,方便下次访问。
2.有一个区域叫做块位图(bitmap):作用是加速查找空闲磁盘块的机制。每一个块在bitmap中有一个存储位来标记,存储位为1代表已使用,0代表未使用,所以扫面空闲空间存数据时不用扫描分区,直接扫描bitmap就可以了
第二片叫真正数据存储区
包含N多逻辑存储单元----块block,为了找寻空闲块方便,也会建立一个表:block bitmap
例如: 360粉粹机:将块标记为空闲,之后在块里面填入随机数据
复制:创建新文件,将原来块复制填充
剪切:同分区快,不同分区先创建后复制再删除
注意: i>.第一片和第二片区域一定要匹配
ii>.真正的文件系统会有多个块位图,形成块组,当然在块组之上会有一个超级块来记录块组的信息。
运行命令:mkfs -t ext3 /dev/sdb1后可以看到以下相关内容
-------------------------------------------------------------------
| BootBlock | Block Group 0 | Block Group 1 | ... | Block Group n |
-------------------------------------------------------------------
以Block Group 0为例
-------------------------------------------------------------------------------
| Super Block | GDT | Block Bitmap | inode Bitmap | inode Table | Data Blocks |
-------------------------------------------------------------------------------
解释: a. 任何分区的第0个块BootBlock是不能被使用的,是被预留出来的,叫做引导块。如果在这个分区上安装了系统,系统的Bootloader要放在这里。
注意:很多人会认为Bootloader会放在MBR中,实际上MBR不属于分区,它是512字节扇区中的,这里的Bootloader放在BootBlock,只有在多系统互存时会用到。
实际上BootBlock的信息会被MBR所调用,就像多系统开机一样,默认第一个系统是在MBR中引导,选择第二个MBR会指向其他分区的BootBlock中的Bootloader。
b. Super Block会在特定标号的块组中有。
c. GDT:块组描述表。包括当前分区上每个块组的块组名,每个块组的起始磁盘块,结束块的编号。所以不能损坏,需要备份。根据块个数不同它占用空间也会变化。
总结:在一个磁盘分区内部,又分为多个逻辑区域,彼此间分隔开进行管理的。