Linux内核分析与应用8-文件系统

简介: Linux内核分析与应用8-文件系统
+关注继续查看

微信截图_20230926015726.png

8.1 虚拟文件系统的引入

微信截图_20230926015734.png

微信截图_20230926015740.png

Linux文件系统中最重要的一个概念: 索引节点 Inode

微信截图_20230926015815.png

微信截图_20230926015822.png

微信截图_20230926015833.png

文件系统是具体到分区的,所以不同分区格式化时,可以是不同的文件系统类型

微信截图_20230926015846.png

微信截图_20230926015856.png

微信截图_20230926015906.png

ext2,ext3,ext4是Linux的标准文件系统,系统将其磁盘分区作为系统的根文件系统; 除此以外的文件系统则安装在根目录系统下的某个目录中,称为系统树形结构中的一个分支.

微信截图_20230926020010.png

VFS中的"S"是"switch"开关,而不是"system"

微信截图_20230926020020.png

微信截图_20230926020029.png

思考:

虚拟文件系统VFS与实际文件系统到底是什么关系?




8.2 虚拟文件系统(VFS)中的主要数据结构

微信截图_20230926020107.png

微信截图_20230926020115.png

image.png

image.png

本讲介绍了文件系统的四种对象,每个对象都对应有两个数据结构,即对象的属性和其操作方法,这是面向对象思想在文件系统设计中的一种体现.


思考:

给定一个文件名,通过文件系统的数据结构关系图,如何查找到相关的文件?请初步阅读open源代码.



8.3 虚拟文件系统(VFS)中的各种缓存

微信截图_20230926020144.png

在文件系统中,有四种类型的缓冲区

image.png

cat /proc/meminfo

微信截图_20230926020249.png

微信截图_20230926020300.png

微信截图_20230926020308.png

dcache用于把路径转换为索引节点(Inode)

inode cache用于表示文件系统中的文件或目录


打开文件的核心是"查找"

  1. 查找根目录信息
  2. 循环查找路径名后续分量
  3. 微信截图_20230926020411.png
  4. 微信截图_20230926020417.png
  5. HashTable和LRU

微信截图_20230926020426.png

微信截图_20230926020432.png

微信截图_20230926020439.png

Buffer Cache也用到了LRU

微信截图_20230926020524.png

微信截图_20230926020531.png

image.png

image.png

思考:

给定一个文件名,如何查找到相关的文件?继续阅读open的源代码,并说明缓冲区到底起什么作用



8.4 页高速缓存机制以及读写

微信截图_20230926020555.png

大小是2的n次方个扇区,如1k,2k,4k,4M等

微信截图_20230926020717.png

微信截图_20230926020724.png

微信截图_20230926020731.png

image.png

延迟写技术

微信截图_20230926020747.png

思考:

请分析从一个文件读取数据的过程,page cache到底起什么作用?

目录
相关文章
|
5天前
|
网络协议 Linux Android开发
【Linux高性能服务器编程】I/O复用的高级应用
【Linux高性能服务器编程】I/O复用的高级应用
43 0
【Linux高性能服务器编程】I/O复用的高级应用
|
16天前
|
存储 Linux 文件存储
linux-磁盘应用
linux-磁盘应用
23 0
|
27天前
|
Java Linux
linux查找应用jar中是否包含某个jar包
linux查找应用jar中是否包含某个jar包
|
29天前
|
存储 编译器 Linux
解密Linux内核神器:内存屏障的秘密功效与应用方法(下)
解密Linux内核神器:内存屏障的秘密功效与应用方法(下)
|
29天前
|
存储 缓存 网络协议
解密Linux内核神器:内存屏障的秘密功效与应用方法(上)
解密Linux内核神器:内存屏障的秘密功效与应用方法
|
29天前
|
Linux
Linux杀死同一个应用的所有进程
Linux杀死同一个应用的所有进程
|
2月前
|
Cloud Native Linux Go
Ghostscript 在 Linux 和 Windows 系统的应用与问题解决
Ghostscript 在 Linux 和 Windows 系统的应用与问题解决
33 0
|
2月前
|
安全 Linux 调度
操作系统:Linux vs Windows内核与应用对比(二)
操作系统:Linux vs Windows内核与应用对比
|
2月前
|
存储 安全 Linux
操作系统:Linux vs Windows内核与应用对比(一)
操作系统:Linux vs Windows内核与应用对比
|
3月前
|
算法 固态存储 Unix
Linux内核分析与应用9-设备驱动
Linux内核分析与应用9-设备驱动
66 0
热门文章
最新文章
相关产品
云迁移中心
推荐文章
更多