为什么要进行格式化
硬盘的物理结构
上图描述的就是我很久之前一直对硬盘物理结构的印象,而且这种印象并不影响我对文件系统和Linux文件存储栈的大部分理解。但是,一般文件存储的问题,硬件的问题并不是罕见的问题,事实上,之前在我负责手机终端北京产品的过程中,硬件的问题还是很常见的。但是在这里,我们只对软件进行阐述,而且是文件系统相关的软件进行阐述,所以该问题在这里并不显得那么重要了。
无论是在windows中还是Linux中,对于大部分人来说,碰到“格式化”这个词都是在需要安装硬盘或是划分分区的过程中遇到的概念,这里只对这种高级的格式化概念进行描述,并不涉及磁盘的低级格式化。
格式化为某个文件系统
那么究竟什么是“格式化”呢?见下图所示:
由上图可见,是在windows平台下对硬盘分区进行格式化的提示操作,实际上不管是在windows下还是在Linux下的格式化工具,都会碰到一个词“文件系统”,在每次格式化的开始,工具总会提示你将磁盘分区格式化成什么“文件系统”。由此可见,“格式化”和“文件系统”是强相关的。
“格式化(format)”这个词是一个动词,将XXX进行格式化,进一步翻译,就是将XXX变成某一种格式,那么问题来了,变成哪种格式?结合工具中的提示,“文件系统”显然就是某种格式的代名词了。而XXX则显然指的就是硬盘分区或是其他的存储设备了。
什么是文件系统
那么到底什么是文件系统呢?如图1所示,硬盘对于我们来说就是一段存储数据的空间,计算机世界是二进制的世界,每个bit是这个空间的一个存储单元,那如果我们要访问(读、写)这些存储单元,我们首先应该每个位置的索引地址A,当获取到A后,就能够访问该单元了。
但是,如果我们在其中的某个位置上存储了一个文件(不考虑对齐等因素),譬如word文件,而该文件是存在了从1到4的位置上,那么我们该如何获取该文件呢?首先我们要知道该文件存储的起始位置的地址,然后要知道该文件的大小,这样就能够通过读取硬盘来获取文件内容了。
这里就有个问题:如果这个硬盘我是从别人那儿借来了,而那个人给了我硬盘后有事儿去忙了,什么都没有告诉我,那么我怎么知道这个硬盘上都有哪些文件?
这时候,我们会想,如果我能通过这个硬盘本身知道每个文件所在的位置和大小,那么我就能从其上获取文件内容,但是硬盘不会“说话”,怎么能告诉我们呢?上面我们说过,“文件系统”就是一种“格式”,而格式是具有固定的一些特征的,具有“一定的规格样子”,通过硬盘上的这种固定的格式,我们就能够获取到足够的信息来获取其上的文件内容了。
“文件系统”就是存储设备上组织文件的格式和方法,当然这是针对操作系统来说的,在操作系统中负责管理和存储文件信息的软件叫做“文件管理系统”,我们通常也会用“文件系统”来表示该软件部分。
所以,格式化就是将存储设备分区上的存储空间进行整理,形成一定的格式,从而能够让操作系统按照一定的方法能够访问其上内容的一种行为。
|