什么是文件系统?
我们都知道,数据是存储在硬盘、u盘等存储设备中的,数据在这些物理设备中的最终形态,都是0和1这种二进制的形式。而我们平时在windows或linux操作系统中,都是以文件夹、目录的形式存放各种文件的。
那么如何把我们的文件从目录树的形式变成二进制的格式到存储设备中,主要就是文件系统的功劳了。文件系统就是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。
对于用户来说,一个文件中的数据是线性的,例如文件中几个G的数据也可以以线性的方式从前到后展示出来。但是在文件系统层面并非是线性的,这些数据在存储设备中可以存储在任意位置。
一个磁盘可以看作是一个线性空间,而文件系统在格式化磁盘时会将这个线性空间划分成若干大小相同的块,启动块的大小是由PC标准规定的1KB,用来存储磁盘分区信息和启动信息,任何文件系统都不能使用启动块。启动块之后的各个块才是文件系统的开始。
文件系统为了方便管理文件,会将一个文件分成许多个等长的数据块(例如4k或者8k),文件系统中存有各个数据块到磁盘物理存储位置的映射关系,也是我们在linux操作系统中经常听到的inode,一个文件对应一个inode。