
关于文件系统和文件格式现在电脑启动都是uefigptgpt分区表记录了硬盘上每个分区的信息比如每个分区从哪个扇区开始每个分区分了多少个最前面的扇区来存储系统盘里面的启动程序在启动程序后面的扇区分了多少个扇区存储文件格式数据再后面就是存储各种文件的空扇区。这就是系统盘里扇区的规划结构。在数据盘里除了没有启动程序其它和系统盘一样数据盘存在最前面的就是文件格式数据。文件系统就是对文件格式数据的各种操作像查找打开新建删除如果文件是程序还有加载到内存等。文件系统会通过分区表找到文件格式数据所在的扇区然后进行各种操作。这个就有点像文本程序打开文本文件.txt然后对这个txt文件进行各种操作txt就是文件格式只有文本程序才能打开。像fat32.ntfs.ext4.等都是硬盘上的文件格式都要对应的文件系统打开。系统开发者也可以开发自己的文件格式和文件系统。硬盘在格式化时都会产生大量的格式数据这些格式数据储存在每个分区的前面让文件系统来操作。系统开发者也可以写自己的uefi和gpt.系统启动程序。文件格式数据是系统开发人员人为定义的它定义了每个文件的所有信息像文件在硬盘的哪个扇区等。每个文件都有对应的这个文件格式数据。这些格式数据也要保存在硬盘指定的扇区中。系统通过扇区读函数将一个扇区读到内存的unsigned char data[512]数组中也可以通过写函数将上面内存数组的值写到硬盘指定扇区中。文件系统中定义了文件结构体文件结构体定义了每个文件的信息每个文件对应的结构体数据就要从上面的扇区中获得。因为两个都是人为定义的所以就可以将上面数组的每个值赋值给文件结构体中对应的成员变量这样就完成了从扇区到文件结构体的转换。文件系统的读写函数就是对扇区读写函数的封装和转换。这样文件系统就可以对每个文件对应的结构体里成员数值进行各种操作像查找新建删除重命名等。修改完成后再通过文件系统读写函数把每个文件对应的结构体中成员值通过转换成unsigned char data[512]数组中的值,再通过扇区读写函数保存到硬盘指定的扇区。文件的格式数据只是文件的描述信息像文件的大小文件名文件实际保存的扇区等。文件里数据实际保存的位置就是描述信息里的具体扇区中。