Linux | 文件系统

文件寻址

先从inode表中找到该文件对应的inode,然后由inode里的指针去寻找文件,包括连续文件、链接文件(隐式、显式)、索引文件

VFS(virtual filesystem)

介绍:linux中的文件使用统一的接口,比如read() open()等,这是由于VFS的存在,使不同的文件系统表现出一致性行为。

fd 文件描述符

用于指代被打开的文件,执行io都是通过文件描述符

1. 进程级的文件描述符表 ---- fd+指针,指针指向打开文件表中的一项

2. 系统级的打开文件描述符表 -----  偏移量、状态信息,inode指针,指向i-node表中的一项

3. 文件系统的i-node表  ----   文件类型+文件锁

硬链接&软链接

硬链接:指向同一个inode,数据部分就是原文件的数据

软链接:指向了一个新的inode,数据部分仅包含链接的文件路径

dentry:是一种内存结构,包括文件名和指向inode的指针。通过某一路径访问某个文件时,每访问一个文件(目录)就建立一个dentry。实际上dentry构成的树状结构(path)可以说是是文件系统的目录结构在内存中的缓存。由于硬链接和软链接的存在,一个inode会有多个dentry指向它。

inode:保存了文件的属性信息,包括:权限、属组、数据块的位置、时间戳等信息。不包含文件名。

superblock:一个超级块对应一个文件系统,保存文件系统的类型、大小、状态,可以根据inode号索引到具体的inode

mount:将文件系统加载到Linux的管理下,具体指将该文件系统的superblock挂载到系统原有的filesystem链表中


其余一些比较偏的点

分布式文件系统 FTP、NFS:用来实现共享,即不同用户通过网络可以共享本地文件

日志型文件系统:解决的是,当系统掉电的时候维持数据的一致性问题。原理大概是,在更新磁盘数据之前先写一下更新了什么(日志),即使掉电也能根据所写的日志恢复

文件事件监听 fanotify:当应用层的进程操作文件时触发系统调用,内核的监听系统就把该进程对文件的操作上报给监听进程

LVM扩展文件系统大小:传统Linux是将磁盘分区,LVM创建了抽象层,使对存储设备的使用更灵活。(反正就是用于扩容)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值