文件系统
Linux下一切皆文件,就是说linux下所有资源都是文件,甚至包括各种硬件资源也是文件,所以文件系统的存在是很重要的。
一般的文件系统有EXT2或者EXT3,这里我们以EXT2为例
硬盘组成:
- 一个硬盘有多张盘片叠成,不同盘片有编号
- 每张盘片上都包括很多圈磁道,每个磁道都有自己的编号
- 每条磁道上都有一圈存储颗粒,每512*8(512字节,0.5KB)个存储颗粒作为一个扇区,扇区是硬盘上存储的最小物理单位
- N个扇区可以组成簇,N取决于不同的文件系统或是文件系统的配置,簇是此文件系统中的最小存储单位
- 所有盘面上的同一磁道构成一个圆柱,称为柱面,柱面是系统分区的最小单位
相关命令:
ps:进程资源使用情况
top:CPU资源使用情况
df:查看磁盘分区资源使用情况
free:查看内存资源使用情况
fdisk -l:查看磁盘使用情况
硬盘接口类型:
SATA/IDE/SCSI/NVME
磁盘扇区大小:硬盘最下操作单元
文件系统划分:每个文件系统都包含这么多模块
data块:以块方式存储文件,每个块大小为4096B
data bitmap:存储数据块信息,表示哪些是已经使用的块,哪些是未使用的块
inode:inode节点,文件块的索引,存储的是每个文件所有块的位置,用来找到另外的内存块
inode bitmap:标注了哪些inode节点未使用,哪些inode节点已经使用
超级块:件系统的信息(系统类型,ionode,各个bitmap信息,data)
存储一个文件的流程:
1.data bitmap上找到空闲数据块。
2.从inode bitmap中获取空间inode节点,写入文件详细信息以及数据块信息
3.将文件目录项写入所在的目录文件中
目录文件:放的是一张表--目录下的文件信息(目录项:文件名+inode节点号)
读取一个文件的流程:cat a.txt
1.通过文件名在目录项中获取到inode节点号
2.inode区域中获取到inode节点
3.获取到文件数据块位置,进而读取到文件数据。
软链接与硬链接
硬链接:和源文件没有什么区别,访问文件的方式是通过相同的inode节点访问内存中源文件的数据(相当于文件的别名)
软链接:是一个单独的文件,访问文件的方式是记录源文件的路径进而访问到内存中的数据(相当于快捷方式),软链接文件的权限是777,具有所有的读写权限,在Linux下只有它是一创建就有这么多权限的。
创建:
ln tmp.txt tmp.hard 创建一个硬链接文件
ln -s tmp.txt tmp.soft 创建一个软连接文件
区别:
1.删除文件时,硬链接文件链接数-1,软链接文件失效,因为它是通过路径访问,路径没有了自然无法访问
在源文件不需要改变位置的同时,在需要该文件的地方创建软链接文件也能够访问
2.软链接文件可以跨分区建立,硬链接不可以,因为每个分区都有自己的inode节点,硬链接无法访问到
3.软链接文件可以对目录创建,硬链接不可以(目录是唯一的)