一. 文件系统
1. 概念
文件系统 是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。
百度百科上说,文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构。即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。具体地说,它负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取,当用户不再使用时撤销文件等操作,它提供向上的文件操作接口,还提供向下的标准接口供不同文件系统对接。
简单来说就是:在存储器上都是二进制数字,没有文件的概念,文件就是一组二进制的集合,文件系统就是管理这些文件,包括文件属性,目录。目录也是文件,输入输出设备也是文件。
文件系统就是一块空间,存储各个文件的属性,和内容数据,他可以有效的管理磁盘,还可以辅助用户对文件进行寻找等操作。
常见的文件系统:Windows中的NTFS,FAT32。linux中的EXT2,EXT3,EXT4等。
2. 逻辑图
这是磁盘、分区和文件系统图。
一个磁盘可以划分为多个分区,每个分区可以包含一个文件系统,不同的分区可以是不同的文件系统。例如分区1是NTFS,分区2是FAT32。
在一个分区中又划分为:自举块,超级块,和多个柱面组。
自举块:
为磁盘分区的第一个块,记录文件系统分区的一些信息,,引导加载当前分区的程序和数据被保存在这个块中。一般占用2kB。
超级块:
超级块用于存储文件系统全局的配置参数(譬如:块大小,总的块数和inode数)和动态信息(譬如:当前空闲块数和inode数),其处于文件系统开始位置的1k处,所占大小为1k。为了系统的健壮性,最初每个块组都有超级块和组描述符表(以下将用GDT)的一个拷贝,但是当文件系统很大时,这样浪费了很多块(尤其是GDT占用的块多),后来采用了一种稀疏的方式来存储这些拷贝,只有块组号是3,