Linux文件系统详解文件系统详解
Linux文件系统详解
Linux上的文件系统一般来说就是EXT2或EXT3,但这篇文章并不准备一上来就直接讲它们,而希望结合Linux操作系统并从文
件系统建立的基础——硬盘开始,一步步认识Linux的文件系统。
1.机械硬盘的物理存储机制
现代计算机大部分文件存储功能都是由机械硬盘这种设备提供的。(现在的SSD和闪存从概念和逻辑上都部分继承自机械硬
盘,所以使用机械硬盘来进行理解也是没有问题的)
机械硬盘能实现信息存储的功能基于:磁性存储介质能够被磁化,且磁化后会长久保留被磁化的状态,这种被磁化状态能够被
读取出来,同时这种磁化状态还能够不断被修改,磁化正好有两个方向,所以可以表示0和1。
于是硬盘就是把这种磁性存储介质做成一个个盘片,每一个盘片上都分布着数量巨大的磁性存储单位,使用磁性读写头对盘片
进行写入和读取(从原理上类似黑胶唱片的播放)。
一个硬盘中的磁性存储单位数以亿计(1T硬盘就有约80亿个),所以需要一套规则来规划信息如何存取(比如一本存储信息
的书我们还会分为页,每一页从上到下从左到右读取,同时还有章节目录)
于是就有了这些物理、逻辑概念:
1.一个硬盘有多张盘片叠成,不同盘片有编号
2.每张盘片上的存储颗粒成环形一圈圈地排布,每一圈称为磁道,有编号
3.每条磁道上都有一圈存储颗粒,每512*8(512字节,0.5KB)个存储颗粒作为一个扇区,扇区是硬盘上存储的最小物理单位
4.N个扇区可以组成簇,N取决于不同的文件系统或是文件系统的配置,簇是此文件系统中的最小存储单位
5.所有盘面上的同一磁道构成一个圆柱,称为柱面,柱面是系统分区的最小单位
磁头读写文件的时候,首先是分区读写的,由inode编号(区内唯一的编号后面介绍)找到对应的磁道和扇区,然后一个柱面
一个柱面地进行读写。机械硬盘的读写控制系统是一个令人叹为观止的精密工程(一个盘面上有几亿个存储单位,每个磁道宽
度不到几十纳米,磁盘每分钟上万转),同时关于读写的逻辑也是有诸多细节(比如扇区的编号并不是连续的),非常有意
思,可以自行搜索文章拓展阅读。
有了硬盘并不意味着LInux可以立刻把它用来存储,还需要组合进Linux的文件体系才能被Linux使用。
2.Linux文件体系