文件系统笔记五、文件系统引入
引言:在前面四篇笔记中,我们介绍了磁盘的物理结构、磁盘驱动器访问速度、磁盘块及磁盘调度算法。对于一般用户来说,使用磁盘是非常困难的,他们不知道如何驱动一个磁盘,如何计算数据在磁盘的存放位置。操作系统提供给用户的帮助就是在磁盘外面包裹一层容易使用的抽象,用户直接与这层抽象打交道,而不需了解磁盘的技术细节,这层易于使用的抽象即为文件系统。
一、为什么需要文件系统?
1.1、为什么需要磁盘?
计算机运行时需要的数据和代码来自主存储器。如果计算机不在运行状态,这些数据和代码保存在哪呢?内存不是持久性的存储介质,它是进程运行过程中临时分配的存储空间。一旦进程运行结束,其所占的内存空间就被释放,存放在里面的代码和数据也将丢失。因此,数据和代码要想长久保存,就需要一个更为持久的地方来存放,这个存放的地方就是磁盘。
1.2、为什么需要文件系统?
磁盘的特点是大容量、低成本、持久、可共享。即使一个进程结束运行,后来的进程或用户也可以从磁盘上访问数据。即使发生断电,磁盘上的数据也不会丢失。但是磁盘的使用存在一个巨大的问题:对于一般用户来说,使用磁盘是非常困难的,他们不知道如何驱动一个磁盘,以及计算数据在磁盘上的存放位置,了解磁盘的各项技术细节将使用户不堪重负。
那用什么办法解决这个问题呢?答案就是“抽象”。操作系统提供给用户的帮助就是在磁盘外面包裹上一层容易使用的抽象,用户直接与这层抽象打交道,而无需了解磁盘的技术细节。即文件及文件系统,或者说文件系统是磁盘的抽象。
总结来说,就是磁盘提供了稳定永久的存储空间,而文件系统降低了磁盘的使用难度。
二、文件系统是什么?
2.1、文件系统是磁盘的抽象
文件系统是操作系统提供的另一个抽象。它是一个子虚乌有的东西,看不见、摸不着,是介于磁盘与用户之间的界面,如图1所示。
文件系统令磁盘变得更加易用,从而将用户从数据存放的细节中解放出来:用户不需要知道内容存放在什么地方,也不需要知道如何存放,更不需要知道磁盘到底是怎么工作的。因此,文件系统就是磁盘的一个抽象。概括来说,文件系统将其接触的磁盘物理特性转换为用户看到的路径名和文件名。用户对磁盘进行访问,只需要给出文件名和路径名即可,而无需知道磁柱、磁道、扇面、数据块等信息。
2.2、文件系统的特性
文件系统的主要特性就是存储大量的信息,多个进程可以同时访问一个文件,进程结束也不会影响文件的持续存在。
2.3、文件系统的目标
与内存管理类似, 文件系统也需要达到两个目的:地址独立和地址保护。 地址独立,就是一个文件在产生的时候无需担心其存放的磁盘地址,即文件数据的产生和文件将来存放的磁盘地址相互独立。地址保护则是需要对文件的访问进行一定的限制,即不是任何人都可以访问任何文件的。注意内存的地址保护是一个进程不能访问另外一个进程的地址空间,而这里的保护是文件的访问是有限制的。
小结
在一至四篇文件系统笔记中,我们介绍了磁盘的物理特性。而文件系统,是操作系统便于用户对磁盘进行读写加的一层抽象。在本系列文章中,会首先讲磁盘物理特性、然后讲文件系统的设计,即如何完成磁盘物理特性与用户界面的连接。
参考资料:
《操作系统之哲学原理》 邹恒明著
纠错与建议
邮箱:[email protected]