文件系统与软硬链接

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拥有相同的结构:

    1. 超级块:描述当前组块的信息,如inode数量及大小、数据块数量及大小;

    2. 组块描述表:描述当前组块的各部分起始位置,如块位图起始位置;

    3. 块位图:记录数据块的区块的使用情况;

    4. inode位图:记录inode的使用情况;

    5. inode表:表中的每一个inode记录了对应文件除了文件名以外的所有属性信息,如大小、读写权限、atime、mtime、ctime等。此外,inode还会记录文件所在的区块

      注:每个inode都对应一个inode号码,可以理解为inode表中的索引。

    6. 数据块:文件数据存储的地方,每个数据块被分成许多小的区块,一个区块只能存储一个文件的数据,其使用情况存储在块位图中。如果文件大于区块大小,则该文件占用多个区块;如果文件小于区块大小,则区块剩余容量不再使用。

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不同,且创建软链接文件不会导致链接数增加。

以上是关于文件系统与软硬链接的主要内容,如果未能解决你的问题,请参考以下文章

硬盘与文件系统

计算机操作系统-设备管理

计算机系统磁盘结构和磁盘调度算法

8磁盘知识和历史

盘面,磁道,柱面,扇区

文件系统与软硬链接