文件系统与软硬链接
Posted 白龙码~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件系统与软硬链接相关的知识,希望对你有一定的参考价值。
文章目录
文件系统与软硬链接
一、硬盘
硬盘分为固态硬盘与机械硬盘,其中机械硬盘相对容量大且价格便宜,所以在服务器中应用广泛。
1、固态硬盘(Solid State Disk, SSD)
固态硬盘是一种基于闪存的存储技术。它的读写速度取决于闪存芯片的性能,一般比机械硬盘快4~20倍。
2、机械硬盘(Hard Disk Drive, HDD)
磁盘是机械硬盘的存储介质。一个磁盘的上下表面称为盘面,盘面上覆盖着磁性记录材料。
每个盘面都对应一个磁头用来读写:
磁盘的盘面是由一组称为磁道的同心圆组成的,每个磁道被划分为一组扇区,每个扇区存储相同数量的数据位,通常为512字节(内外磁道的磁性记录材料密度不同)。
扇区与扇区之间的空隙用来存储标识扇区的格式化信息。
每个盘面拥有相同数量的磁道,将它们从内向外编号,那么所有盘面中相同编号的磁道将构成一个柱面:
I.磁盘容量公式
盘面数 × 每个盘面的磁道数 × 每个磁道的扇区数 × 扇区大小
二、文件系统
1、机械硬盘的分块管理
为了方便操作系统管理,现代磁盘的复杂构造被简化为由B个扇区大小的逻辑块构成的序列,编号为0~B-1。
每个逻辑块的编号可以被磁盘控制器翻译成(盘面,磁道,扇区)的三元组,经过盘面和磁头的旋转(寻道),完成对实际磁盘物理位置的读写。
2、ext系列文件系统
事实上,内核在读写硬盘数据时,一次性最少读写一个块(Block)。默认一个块的大小为4KB,即8个扇区大小的逻辑块。
文件被存储在块(Block)中,由内核的文件管理系统对这些块进行统一的管理,以ext系列文件系统为例:
I.块信息
-
引导块用来存储磁盘分区信息和启动信息,任何文件系统不得修改该块的内容。
-
组块0~n拥有相同的结构:
-
超级块:描述当前组块的信息,如inode数量及大小、数据块数量及大小;
-
组块描述表:描述当前组块的各部分起始位置,如块位图起始位置;
-
块位图:记录数据块的区块的使用情况;
-
inode位图:记录inode的使用情况;
-
inode表:表中的每一个inode记录了对应文件除了文件名以外的所有属性信息,如大小、读写权限、
atime、mtime、ctime
等。此外,inode还会记录文件所在的区块。注:每个inode都对应一个inode号码,可以理解为inode表中的索引。
-
数据块:文件数据存储的地方,每个数据块被分成许多小的区块,一个区块只能存储一个文件的数据,其使用情况存储在块位图中。如果文件大于区块大小,则该文件占用多个区块;如果文件小于区块大小,则区块剩余容量不再使用。
-
II.目录与映射表
当创建一个目录文件时,ext文件系统会分配一个inode和至少一个数据区块给该目录。其中,inode存储该目录的属性和对应数据区块;数据区块则存储了该目录下的文件名和inode号码的一一映射关系(正因如此,一个目录下不允许出现同名文件)。
III.属性、数据的分离
ext文件系统利用inode存储文件属性,数据区块存储文件数据,做到了属性与数据的分离存储。
IV.文件的三个时间
文件的三个时间是文件的属性信息,其具体内涵为:
1、atime
(access time):访问时间,即最近一次读取该文件的时间;
2、mtime
(modify time):修改时间,即最近一次修改文件内容的时间;
3、ctime
(change time):状态改动时间,即最近一次修改文件属性的时间,包括文件名、文件大小、文件权限、文件所有者等属性信息。
使用touch 文件名
命令可以将目标文件的三个时间修改为当前系统的时间。
使用stat
命令查看文件的属性,其中包括三个时间、inode号码和链接数等信息:
三、软硬链接与ln命令
1、硬链接
硬链接相当于一个文件的别名。在创建时,文件系统不会为它分配独立的inode,而是让该文件的inode与链接文件相同。
因此,硬链接文件与原文件只有名字上的不同,实际上指向的是同一份文件。
硬链接命令: ln 原文件名 链接文件名
I.普通文件
一个普通文件的初始链接数为1(即文件本身),当创建硬链接时,链接数变为2,且链接文件与原文件的inode相同。
II.目录
一个目录的初始链接数为2,进入到该目录可以发现两个默认目录:.和..
。
.
是当前目录的硬链接,再加上目录本身,所以初始链接为2。
如果在当前目录下再创建新目录,就会导致链接数加1,因为每一个新目录都有..
,它是上一级目录的硬链接。
2、软链接
软链接相当于一个文件的快捷方式。在创建时,文件系统会为它分配独立的inode,但是仅存储链接文件的路径信息,不存储有效数据。
软链接命令:ln -s 原文件名 链接文件名
原文件和软链接文件的inode不同,且创建软链接文件不会导致链接数增加。
以上是关于文件系统与软硬链接的主要内容,如果未能解决你的问题,请参考以下文章