CrashCourseComputerScience20文件系统

88 阅读2分钟

文件系统

数据存储在磁盘上,可以随意存放,但更有效的方式是按照指定的格式来存放,例如公认的 JPEG, MP3 格式。

1.文件

txt 文件是文本文件,存储内容是一长串二进制数,通过 ASCII 码表来解析成字符。
wav 文件是音频文件,正确读取的前提是知道采样率、采样位数、声道数等元数据 meta data。元数据存储在文件开头,在实际数据前面,也称为文件头 header。
image.png
bmp 文件是图片文件,存储的是像素的信息(红绿蓝),同样需要元数据来解析,有图片宽度、高度、颜色深度等。
image.png

2.文件存储

为了存储多个文件,需要一个特殊文件记录其他文件存放的位置,往往叫做目录文件。经常放在位置 0,最开头的地方。
image.png

3.文件系统

文件系统用来管理文件,文件系统将磁盘空间划分为 块 block,留下空间 slack space 可以方便改动文件。通过分配块来增减文件的大小,不影响其他文件的存储。

文件删除时,其实是删除了目录文件的相关记录,表明对应的磁盘空间可以使用,并不会真的抹去对应的内容。

文件的修改会引发碎片,碎片会使得大文件的读取速度降低,所以需要碎片整理 defragmentation。
在分层文件系统中, 相比于铺平的文件系统,只是在目录文件中增加了对目录文件的指向,实现了文件分层。这就需要额外的元数据信息,这个信息记录在文件最顶层,即根目录中。
文件的移动实际上都是修改目录文件的记录,而不是真的移动文件。