文件系统和软硬连接

理解文件系统

大部分文件都未被进程打开,都在磁盘中存储,那么这些文件是否要被管理呢,对于这些文件的核心工作是什么?

--要,未打开文件会按规律保存,方便用户随时读取

--核心工作在于快速定位文件——路径

(相当于柜子的暂时还用不上的衣服,不会随便乱摆放,而是按一定规律储存,到换季时再相应的拿出衣服)

文件的管理工作:

1.打开的文件进行管理

2.没有被打开的文件也要在磁盘中进行管理

磁盘

Head(磁头)track(磁道)sector(扇区)

CHS定位法:磁头摆动定柱面 磁盘转动定扇区

LBA(Logical block address) 4kb

结论:对于存储设备的管理,在OS层面,转换成为对数组的增删查改

块组 Ext2

块组会存储我的文件信息和很多文件管理相关的数据

我的文件就包括文件属性和文件内容,它们都是数据,内容和属性分开存储。

使用块组之前,管理数据就已经写入了,这种行为叫格式化


inode编号

​​

每个文件都有自己的inode编号,在分区里有着唯一性,在Lliux中识别文件不是靠文件名,靠的是inode编号

inode Table 节点表

存放文件属性,如文件大小,所有者,最近修改时间等

​ ​

​ ​

inode table相当于inode inode_table[n]数组

Date blocks 数据区

存放文件内容 一个小块是4kb

​​

一个block数组一般为15,那么只有60kb,内存块会不会不够用?

其中0-12为直接映射,13为间接映射,13中可以继续储存位图的结构,14三级映射

inode Bitmap inode位图

每个Bit表示该inode是否被使用

32000个inode 只需要4000字节即可

block Bitmap 块位图

100000个块内存

删除文件要改变什么?

把block Bitmap和inode BitMap由1至0。

Group Descriptor Table 描述块组信息

Super Block 超级块

管理整个分区的的信息

重新理解目录

目录也是文件,那么他的数据块里会存放什么?

自己目录会直接保存文件名和inode的映射关系,所以同一个目录下不允许存放同名文件

重新理解找文件

要找文件,就要先找到文件的目录,再根据文件名和inode的映射关系找到inode,再根据inode_table找到相应的属性

软硬连接

软连接

ln -s log log.sort.link

快速定位文件

​​

什么是软连接?

类似于windows的快捷方式

软连接指向目标文件的路径

硬连接

ln hello hello.hard.link

由inode可知 软连接时独立的文件,而硬文件不是,他没有独立的inode编号

硬链接不是一个独立的文件,是在指定目录内部的一组映射关系:文件名<=>inode

将hello删除,硬链接依然在,那什么时候文件才被真正的删除呢?

没有文件名和inode映射时,再文件系统层面,目标文件怎么知道没有文件名指向我了呢?inode内部有引用计数,表明有几个文件名映射关系

为什么新目录的映射关系有2对?

dir内部有个.目录 inode跟dir相同

我在目录中新增一个目录?为什么映射关系变为3对?

因为新增目录有个上级目录,inode与dir相同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值