Linux_文件系统(inode磁盘结构寻址方案EXT2文件系统创建删除文件过程软硬链接)
Posted NUC_Dodamce
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux_文件系统(inode磁盘结构寻址方案EXT2文件系统创建删除文件过程软硬链接)相关的知识,希望对你有一定的参考价值。
文章目录
1.inode与inode编号
根据Linux系统文件可知,文件=文件属性+文件内容。一般将文件属性称为元信息。保存元信息的结构称为inode
inode:任何一个文件的属性信息集合,Linux中几乎每一个文件都有inode。
inode编号:区分不同inode,用inode编号来区分。
eg:
test.c文件的inode编号为924155
文件内容直接储存在磁盘上(block)
注意:文件名并不在inode中,inode中只有inode编号。文件名在当前目录下,这个目录文件的文件内容
2.文件系统
磁盘的构成
图片来源
工作原理:通电后,磁盘盘片转动,机械手臂带动磁头向磁盘盘片上类似同心圆上寻址。在类似同心圆上读写数据
磁盘又称块设备,扇区的大小512字节
磁盘纵置图:
由上图可知:
- 两个相邻的磁道之间存在宽度,这个宽度用来保存数据。称为扇区
- 一个盘面上一圈完整的同心圆称为磁道。
- 不同盘面,相同半径的同心圆组成的圆柱体称为柱面。
磁盘寻址方案
数据写入:
- 首先,确定要写入的盘面。
- 确定要写入的柱面,根据这两点找到要写入数据储存的磁道
- 磁头寻址,找到要写入数据的位置
磁盘的线性存储
磁盘的储存虽然磁道是同心圆,但其为线性储存的(将磁道拉直)
磁盘内存管理(分区管理)
计算机对磁盘的管理采用分区方法.
将磁盘分为不同的区域,区域变小,将每个小区域管理好,整个磁盘就管理完毕。
分区格式化
将管理信息写到每个分区,这个管理信息的内容与文件系统有关。
(eg:NTFS、EXT2等)
EXT2文件系统
磁盘通过分区管理,每个分区在Linux中管理信息通常为下图:
创建普通文件以及写入1kb数据,最后删除普通文件的过程
解:
创建文件
遍历磁盘分区中的组。遍历BitMap,找到比特位不为0的位置,将其置1,并将创建文件的文件属性写进文件的inode中。
写入数据:
通过文件的inode好找到文件的inode,通过查找结构体的block数组,发现文件没有block块,所以先申请block块。先扫描BlockMap找到未被申请的块分配给这个文件。并将1KB数据写入块中
删除文件:
修改inodeBitMap和BlockBitMap,将对应比特位由1变0,不需要清理块数据即可删除。
所以删除文件的操作是可逆的
目录创建的过程
首先,目录是文件,有自己的inode。文件内容是当前目录下文件名和inode编号(这个目录下文件名与目录之间的映射关系)
eg:
目录的文件内容:是目录下所有文件名和inode之间的映射关系
3.软链接(ln -s +文件名 +软连接名)
![在这里插入图片描述](https://img-blog.csdnimg.cn/a910aa7b8a9943d0beac8e0a1d9345f4.png
软链接生成的文件有自己独立的inode号,说明其是独立文件。
文件内容保存的是Test文件的路径。(类似Windows中的快捷方式)
4.硬链接(ln +文件名+硬链接名)
原文件建立硬链接前,硬链接数为1,建立硬链接后,硬链接数变为2。
且硬链接文件和原文件inode号相同,没有创建新文件
3.软硬链接的区别
- 软链接是独立文件,有自己inode号。硬链接没有独立的inode。
- 软链接相当于快捷方式,硬链接没有创建文件,只是建立一个文件名和已有的inode之间的映射关系,并写入当前目录。(文件别名)
link目录的硬链接数为2的原因:
dir本身和inode之间是一组映射关系,dir目录下有隐藏文件名.也指向这个目录
所以一共有两组映射关系
当创建了一个目录后,目录的硬链接数为2,如果目录里面还有文件,硬链接数变为3
1.目录名本身 2.目录下.文件 3.目录里面目录的. .文件。
共三组映射关系,所以硬链接数为3。
硬链接的作用:方便目录之间通过相对路径进行跳转。
一个文件的硬链接数被保存在文件的inode结构体中。(引用计数器)
以上是关于Linux_文件系统(inode磁盘结构寻址方案EXT2文件系统创建删除文件过程软硬链接)的主要内容,如果未能解决你的问题,请参考以下文章