从操作系统设计人员看待文件系统,也就是文件系统的实现。对于操作系统设计人员来说,他们关心的问题是:
文件系统如何分布的。
文件是怎么实现的。
文件夹是怎么实现的。
共享文件是怎么实现的。
磁盘空间是如何管理的。
前面讲过,**文件主要在磁盘上实现。**当然你也可以将文件系统放到其他介质上。但不管是什么介质,其原理大同小异。这里以磁盘为介质进行说明。
买过磁盘的人都知道,磁盘买来后要做的第一件事情是对磁盘进行分区和格式化。那么磁盘为什么要进行分区呢?或者说我们必须分区吗?
分区的理由多种多样。首先,分区可以方便我们使用磁盘,因为不同的分区可以建立不同的文件系统。其次,分区有安全性上的优势,因为一个分区毁坏了,另一个分区仍然可以使用。最后,分区还有可靠性上的优势,因为一个分区的故障不影响另一个分区的运行。这些分区理由虽然是好的理由,但都不是必须分区的理由。
必须分区的理由是对磁盘空间的使用。因为计算机的内存字长度通常有限,而磁盘地址需要存放在内存字里面
。这样,操作系统能够访问的磁盘地址数量就是一个有限数。这个有限数将限制操作系统能够访问的磁盘空间大小。如果一个磁盘容量超过这个上限,则多余的空间将无法访问。假如内存字的长度为16位,这样操作系统能够表示的磁盘地址数为2^16,也就是65536个磁盘地址。假定磁盘的数据块(每个地址)的大小为512B,则操作系统能够访问的最大磁盘空间为33554432B,即大约32MB的空间。
当然,我们可以加大磁盘数据块的尺寸使得能够访问的磁盘空间增大。但这样带来的坏处是磁盘空间的浪费,因为很多文件占不到一个磁盘块。再说,即使这样,也只不过增大能访问的磁盘空间,并不能从根本上解决问题。但如果使用分区,则可以将磁盘分解为大小为32MB的多个分区,这样整个磁盘就都可以被访问到。
那么为什么一个分区只能建立一个文件系统呢?
ps
- 什么是计算机的内存字长度?
- 为什么要分区?