linux档案系统是什么

45次阅读
没有评论

共计 3837 个字符,预计需要花费 10 分钟才能阅读完成。

今天丸趣 TV 小编给大家分享一下 linux 档案系统是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

linux 档案就是目录(文件)。为了方便管理文件和目录,Linux 系统将它们组织成一个以根目录“/”开始的倒置的树状结构。Linux 中的目录和 Windows 系统中的文件夹类似,不同之处在于,Linux 系统中的目录也被当做文件看待。

linux 档案就是目录(文件)。

为了方便管理文件和目录,Linux 系统将它们组织成一个以根目录 / 开始的倒置的树状结构。Linux 中的目录,和 Windows 系统中的文件夹类似,不同之处在于,Linux 系统中的目录也被当做文件看待。

在 Linux 操作系统中,所有的文件和目录都被组织成以一个根节点“/”开始的倒置的树状结构,如图 1 所示。

图 1 Linux 系统文件和目录组织示意图

其中,目录就相当于 Windows 中的文件夹,目录中存放的既可以是文件,也可以是其他的子目录,而文件中存储的是真正的信息。

文件系统的最顶层是由根目录开始的,系统使用“/”来表示根目录,在根目录之下的既可以是目录,也可以是文件,而每一个目录中又可以包含(子)目录或文件。如此反复就可以构成一个庞大的文件系统。

其实,使用这种树状、具有层次的文件结构主要目的是方便文件系统的管理和维护,想象一下,如果所有的文件都放在一个目录下,其文件系统的管理和维护将变成一场噩梦。

现实中也有许多类似的例子,例如在整个行政管理体制中,村民就相当于文件,他们住在一个村庄中,村庄就是存储村民的目录。许多村又组成了个乡,这个乡就相当于存储村的目录,依此类推,最终就构建出了一个庞大的行政区域管理结构图。

注意,目录名或文件名都是区分大小写的,如 dog、DOG 和 Dog 为 3 个不同的目录或文件。完整的目录或文件路径是由一连串的目录名所组成的,其中每一个目录由“/”来分隔。如 cat 的完整路径是 /home/cat。

在文件系统中,有两个特殊的目录,一个是用户所在的工作目录,即当前目录,可用一个点“.”表示;另一个是当前目录的上一层目录,也叫父目录,用两个点“..”表示。

如果一个目录或文件名是以一个点开始,就表示这个目录或文件是一个隐藏目录或文件。即以默认方式査找(后续会讲查找命令)时,不显示该目录或文件。

为了方便管理和维护,Linux 系统采用了文件系统层次标准,也称为 FHS 标准,它规定了根目录下各个目录应该存在哪些类型的文件(或子目录),比如说,在 /bin 和 /sbin 目录中存放的应该是可执行文件

linux 档案系统(filesystem)

硬盘的物理组成

首先简单认识一下硬盘的物理结构,总体来说,硬盘结构包括:盘片、磁头、盘片主轴、控制电机、磁头控制器、数据转换器、接口、缓存等几个部份。所有的盘片 (一般硬盘里有多个盘片,盘片之间平行) 都固定在一个主轴上。在每个盘片的存储面上都有一个磁头,磁头与盘片之间的距离很小(所以剧烈震动容易损坏),磁头连在一个磁头控制器上,统一控制各个磁头的运动。磁头沿盘片的半径方向动作,而盘片则按照指定方向高速旋转,这样磁头就可以到达盘片上的任意位置了。

一个磁盘由多个圆环组成,这些圆环就叫做磁道,而一个磁道又分为多个扇区(sector)一个一个扇区是 512Byte,硬盘所有磁盘相同位置的圆环组成一个磁柱(Cylinder)。硬盘容量为:512Byte * 扇区数 * 磁柱数 * 磁头数

前面三个数都好理解,可能有人不理解乘以磁头数是干嘛,因为前面三个数相当于计算一个圆的存储量,而一个磁头读取一个圆,所以乘以磁头数量就相当于圆面积乘以圆数量。

磁盘的分割

磁盘分割的最小单位是磁柱(Cylinder)

磁盘的分割其实就是记录一个分割区(partition)的起始磁柱与结束磁柱,而这些被记录的信息都存放在主要开机扇区(Master Boot Recorder, MBR)。事实上,MBR 就是在一块硬盘的第零轨上面,这也是计算机开机之后要去利用该硬盘时,必须要读取的第一个区域。

思考一个问题:MBR 的大小是不是固定的?

我们这么想,数据的存储顺序为:MBR + 其他数据。如果 MBR 的大小不固定,比如原来 MBR 中存放了 3 个 partition 的信息,现在我们要新增一个 partition,会出现什么后果?后果就是所有的“其他数据”都要顺序的向后移动一个 partition 信息的距离。是不是想到了数组的增删了。所以我们希望将 MBR 固定,事实也是如此 MBR 被固定为只能存放 4 个 partition 的信息。这样似乎好多了,但是只有四个 partition,够用吗?设计者当然也想到了这个问题,所以将 partition 分为 Primary 和 Extended 两类(E 最多只能有一个)。其中 P 是可以直接使用的,而 E 不能直接使用,E 相当于一个指针,指向扩展的 partition 的位置信息存储处。

filesystem

filesystem 也即文件系统,每个 oartition 都可以由自己的 filesystem,例如 fat32,ntfs 之类的

不同的 partuition 虽然 filesystem 不一样,但是都是用来存储数据的。前面我们介绍了硬盘的最小存储单元为 sector(扇区,一般为 512Byte),但是 filesystem 的最小存储单元却不是 sector 而是 block。block 是 sector 的 2 的次方倍数,磁头一次读取一个 block 的数据。所以如果 block 过小,则读取一个文件时磁头需要读取较多数量的 block,这样效率很低,但是 block 也不能过大,应为一个 block 中只能存在一个档案,例如 block 大小为 100M,那么如果有一个 100.1M 的文件,则需要占用两个 block,浪费了大量空间。

superblock

每个 filesystem 中的第一个 block 称为 superblock。superblock 的作用是存储 filesystem 的大小,空的和填满的区块以及其他的总书和诸如此类的信息。也就是说如果你要使用一个 filesystem 的时候,第一个要经过的就是 superblock 这个块了,如果 superblock 坏了,这个 partition 大概也回天乏术了。

linux 的 EXT2 文件系统

我们既然是学习 linux,自然要学习 linux 的 filessystem,我们以 linux 最标准的 EXT2 做说明。

EXT2 中的 filesystem 分为 inode 区和 block 区,其中 inode 存储文件的相关属性等信息,而 block 区存储文件的内容,每个 inode 都充当指针 pointer 的作用,它能描述文件的相关属性并指向该文件所在 block 的位置。blocks 与 inodes 的数量在一开始格式化的时候就已经固定了。

整个 filesystem 示意图:

SuperBlock:如前所述,Superblock 是记录整个 filesystem 相关信息的地方,没有 Superblock,就没有这个 filesystem 了。他记录的信息主要有:

block 与 inode 的总量;

未使用与已使用的 inode / block 数量;

一个 block 与一个 inode 的大小;

filesystem 的挂载时间、最近一次写入数据的时间、最近一次检验磁盘 (fsck) 的时间等档案系统的相关信息;

一个 valid bit 数值,若此档案系统已被挂载,则 valid bit 为 0,若未被挂载,则 valid bit 为 1。

Group Description:纪录此 block 由由何处开始记录;

Block bitmap:此处记录那个 block 有没有被使用;

Inode bitmap:此处记录那个 inode 有没有被使用;

Inode table:为每个 inode 数据存放区;

Data Blocks:为每个 block 数据存放区。

linux 档案系统的运作

我们知道硬盘的存取速度相对于内存来说是很慢的,linux 为了提高整体的速度,采用异步处理的方式。

什么是异步呢?举例来说:『当系统读取了某一个档案,则该档案所在的区块数据会被加载到内存当中,所以该磁盘区块就会被放置在主存储器的缓冲快取区中,若这些区块的数据被改变时,刚开始数据仅有主存储器的区块数据会被改变,而且在缓冲区当中的区块数据会被标记为『Dirty』,这个时候磁盘实体区块尚未被修正!所以亦即表示,这些『Dirty』区块的数据必需回写到磁盘当中,以维持磁盘实体区块上的数据与主存储器中的区块数据的一致性。』

所以 linux 的关机真的要注意,否则可能会造成文件的丢失甚至是磁盘的损毁!!!

mount point

所以 linux 的关机真的要注意,否则可能会造成文件的丢失甚至是磁盘的损毁!!!

mount point

我们上面提到的都是关于档案系统 (filesystem),但是要能够让我们的 Linux 使用的话,非得『挂载 (mount)』上我们的 Linux 系统才行啊!刚刚我们上面提到了目录可以记录文件名与 inode 的相关信息,此外,目录也是让我们得以跟 filesystem 产生对应的入口点。因此,我们称那个入口点目录为『挂载点 (mount point)』

以上就是“linux 档案系统是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,丸趣 TV 小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注丸趣 TV 行业资讯频道。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-13发表,共计3837字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)