操作系统-文件系统
2024-02-28 09:22:16 0 举报
AI智能生成
文件系统/文件使用/文件存储/空闲空间管理/文件系统结构/目录的存储/软链接与硬链接/文件I/O/进程写文件时崩溃分析/Page Cache/Linux内核-task_struct
作者其他创作
大纲/内容
Linux文件I/O系统
分支主题
文件I/O
软链接与硬链接
目录的存储
文件系统结构
空闲空间管理
概念
文件系统是操作系统中负责管理持久数据的子系统
基本数据单位是文件,目的是对磁盘上的文件进行组织管理
文件系统首先要先挂载到某个目录才可以正常使用,比如 Linux 系统在启动时,会把文件系统挂载到根目录
类型
磁盘文件系统
直接把数据存储在磁盘中,比如 Ext 2/3/4、XFS 等都是这类文件系统
内存文件系统
占用内存空间,我们经常用到的 /proc 和 /sys 文件系统都属于这一类,读写这类文件,实际上是读写内核中相关的数据
网络文件系统
用来访问其他计算机主机数据的文件系统,比如 NFS、SMB 等等
用户空间、系统调用、虚拟文件系统、缓存、文件系统、存储关系
分支主题
文件数据结构
索引节点
用来记录文件的元信息
inode编号
文件大小
访问权限
创建修改时间
数据在磁盘的位置
是文件的唯一标识,索引节点之间一一对应,也同样存储在磁盘中,所以同样占用磁盘空间
索引节点是存储在硬盘上的数据,那么为了加速文件的访问,通常会把索引节点加载到内存中
目录项
用来记录文件的名字、索引节点指针以及其他目录项的层层关联
多个目录项关联起来,就会形成目录结构
目录项是由内核维护的一个数据结构,不存放于磁盘,而是缓存在内存
和目录的区别
目录是个文件,持久化在磁盘
目录项是内核的一个数据结构,缓存在内存
文件数据如何存储在磁盘
磁盘读写最小单位是扇区,512字节大小,文件系统把多个扇区组成了一个逻辑块,每次读写逻辑块(4K),一次性读取8个扇区
磁盘格式化
三个存储区域
超级块
用来存储文件系统的详细信息,比如块个数、块大小、空闲块等等
索引节点区
用来存储索引节点
数据块区
用来存储文件或目录数据
加载时机
超级块:当文件系统挂载时进入内存
索引节点区:当文件被访问时进入内存
虚拟文件系统
概念
操作系统希望对用户提供一个统一的接口,于是在用户层与文件系统层引入了中间层,这个中间层就被成为虚拟文件系统
作用
定义了一组所有文件系统都支持的数据结构和标准接口,屏蔽底层文件系统类型不一致,只需要了解统一接口
文件使用
文件存储
0 条评论
下一页