【文件系统】

article/2025/10/9 10:43:16

一、文件系统的功能规划

第一点,文件系统要有严格的组织形式,使得文件能够以块为单位进行存储。
第二点,文件系统中也要有索引区,用来方便查找一个文件分成的多个块都存放在了什么位置。
第三点,如果文件系统中有的文件是热点文件,近期经常被读取和写入,文件系统应该有缓存层
第四点,文件应该用文件夹的形式组织起来,方便管理和查询。
第五点,Linux 内核要在自己的内存里面维护一套数据结构,来保存哪些文件被哪些进程打开和使用。

二、文件系统的基本组成

文件系统的基本数据单位文件,它的目的是对磁盘上的文件进行组织管理,那组织的方式不同,就会形成不同的文件系统。

注意,目录也是文件,也是用索引节点唯一标识,和普通文件不同的是,普通文件在磁盘里面保存的是文件数据,而目录文件在磁盘里面保存子目录或文件

目录项和目录是一个东西吗?
虽然名字很相近,但是它们不是一个东西,目录是个文件,持久化存储在磁盘,而目录项是内核一个数据结构,缓存在内存。
如果查询目录频繁从磁盘读,效率会很低,所以内核会把已经读过的目录用目录项这个数据结构缓存在内存,下次再次读到相同的目录时,只需从内存读就可以,大大提高了文件系统的效率。
注意,目录项这个数据结构不只是表示目录,也是可以表示文件的。

三、虚拟文件系统

文件系统的种类众多,而操作系统希望对用户提供一个统一的接口,于是在用户层与文件系统层引入了中间层,这个中间层就称为虚拟文件系统(Virtual File System,VFS)。

文件块
与内存管理一样,为了方便对磁盘的管理,文件的逻辑地址也被分为一个个的文件块。于是文件的逻辑地址就是**(逻辑块号,块内地址)**。用户通过逻辑地址来操作文件,操作系统负责完成逻辑地址与物理地址的映射。

四、文件分配方式

不同的文件系统为文件分配磁盘空间会有不同的方式,这些方式各自都有优点和缺点。

4.1 连续分配

连续分配要求每个文件在磁盘上占有一组连续的块,该分配方式较为简单。
在这里插入图片描述
连续空间存放的方式虽然读写效率高,但是有「磁盘空间碎片」和「文件长度不易扩展」的缺陷:
在这里插入图片描述
另外一个缺陷是文件长度扩展不方便,例如上图中的文件 A 要想扩大一下,需要更多的磁盘空间,唯一的办法就只能是挪动的方式,前面也说了,这种方式效率是非常低的。

4.2 非连续空间存放方式

非连续空间存放方式分为「链表方式」和「索引方式」。
4.2.1 链式分配
链式分配采取离散分配的方式,可以为文件分配离散的磁盘块。它有两种分配方式:显示链接和隐式链接。

隐式链接
隐式链接是只目录项中只会记录文件所占磁盘块中的第一块的地址和最后一块磁盘块的地址,然后通过在每一个磁盘块中存放一个指向下一磁盘块的指针,从而可以根据指针找到下一块磁盘块。如果需要分配新的磁盘块,则使用最后一块磁盘块中的指针指向新的磁盘块,然后修改新的磁盘块为最后的磁盘块。

显式链接
显示链接是把用于链接各个物理块的指针显式地存放在一张表中,该表称为文件分配表(FAT,File Allocation Table)。
在这里插入图片描述
由于查找记录的过程是在内存中进行的,因而不仅显著地提高了检索速度,而且大大减少了访问磁盘的次数

4.2.2 索引分配
链表的方式解决了连续分配的磁盘碎片和文件动态扩展的问题,但是不能有效支持直接访问(FAT除外)索引的方式可以解决这个问题。

索引的实现是为每个文件创建一个「索引数据块」,里面存放的是指向文件数据块的指针列表,说白了就像书的目录一样,要找哪个章节的内容,看目录查就可以。

另外,文件头需要包含指向「索引数据块」的指针,这样就可以通过文件头知道索引数据块的位置,再通过索引数据块里的索引信息找到对应的数据块。


http://chatgpt.dhexx.cn/article/GSXAyuml.shtml

相关文章

Linux系统中常见文件系统格式

Linux系统中常见文件系统格式 Windows常用的分区格式有三种,分别是FAT16、FAT32、NTFS格式。 在Linux操作系统里有Ext2、Ext3、Linux swap和VFAT四种格式。 FAT16: 作为一种文件名称,FAT(File Allocation Table,文件分…

ffmpeg——TS流解析

RTSP(Real Time Streaming Protocol),实时流传输协议,是TCP/IP协议体系中的一个应用层协议,该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据。RTSP在体系结构上位于RTP和RTCP之上,它使用TCP…

网页视频下载(TS流下载合成)

前言 最近《流浪地球》比较火,想找资源下载看看,无奈只找到了网址 http://m.tlyy.tv/【现已变成不良网站】 ,但是我的chrome插件也嗅探不到网页上的视频。。于是乎,右击页面,inspect 走起… 步骤 首先发现 m3u8文件…

TS流分析

一 从TS流开始 数字电视机顶盒接收到的是一段段的码流,我们称之为TS(Transport Stream,传输流),每个TS流都携带一些信息,如Video、Audio以及我们需要学习的PAT、PMT等信息。因此,我们首先需要了…

ts流中的时间概念: pcr,pts,dts 实例解说

ts流中的时间概念: pcr,pts,dts 实例解说 ---------------------------------------- PCR OPCR ---------------------------------------- ts流包头4字节,第5字节为适配域长度,若不为0,第六字节为适配域标志. 适配域有5个标志,这里先说两个,节目参考时钟…

TS流解析【PCR】自己的总结

http://www.cnblogs.com/ztteng/articles/3166025.html http://blog.csdn.net/liuhongxiangm/article/details/8981032 http://blog.sina.com.cn/s/blog_6b94d5680101ton7.html http://blog.csdn.net/jl2011/article/details/47044647 二.TS流包含的内容 一段TS流&#xf…

ES流、PES流、PS流和TS流介绍

流媒体系统结构 整个传输过程为:音视频数据分别通过图像声音编码器打包成ES(elemental stream 基本数据流),在通过PES打包器打包成PES(packet elemental stream分组的基本数据流),之后通过PS复用…

TS流基本知识【HI3798 AVPLAY播放TS流】

目录 一、TS流相关知识 1.1 TS流、PS流、PES流和ES流都是什么? 1.2 TS流是如何产生的? 1.3TS流的格式 二、从TS流到PAT、PMT 2.1 PAT表(Program Association Table,节目关联表) 2.1.1PAT表的描述(表…

TS流

TS流的健壮性很好,所以适合用在无线视频传输。但是,TS流一帧数据的格式较为复杂,所以需要有优秀的分析工具。 比如,EasyICE。(此软件仅供非商业使用,而且每次开打都需要联网验证是否是最新版本&#xff09…

ts流格式

1.ts简介 ts流最早应用于数字电视领域,其格式非常复杂包含的配置信息表多大十几个,视频格式主要是mpeg2。苹果公司发明的http live stream流媒体是基于ts文件的,不过他大大简化了传统的ts流,只需要2个最基本的配置表PAT和PMT&…

ts流格式详解

ts介绍 ts文件为传输流文件,视频编码主要格式h264/mpeg4,音频为acc/MP3。 ts文件分为三层:ts层Transport Stream、pes层 Packet Elemental Stream、es层 Elementary Stream. es层就是音视频数据,pes层是在音视频数据上加了时间戳…

MPEG-2 TS流结构浅析

一、概述 MPEG-2是MPEG(Moving Picture Experts Group,运动图像专家组)组织制定的视频和音频有损压缩标准之一,它的正式名称为“基于数字存储媒体运动图像和语音的压缩标准”。MPEG-2标准是在1994年11月为数字电视而提出来…

RTSP中TS流结构分析

RTSP中TS流结构分析 UDP数据包整体结构RTP Header结构TS Header结构PAT结构PMT结构PES Header结构ES层Wireshark抓取TS包 UDP数据包整体结构 在使用UDP传输TS流时,整个数据包结构如下: RTP Header结构 RTP结构如下图: 各字段的含义如下&…

TS流理论分析

TS(Transport Stream)流由TS包组成,而每个TS包的⻓度:固定为188 Bytes或204 Bytes,204 Bytes⻓度是在188Bytes后⾯增加了16 Bytes的CRC校验数据。 ts 层的内容是通过 PID 值来标识的,主要内容包括&#xff…

TS流详细解析

1、PAT表的TS包 0x47:包头识别符 Sync_code 0x40 0x00:0100 0000 0000 0000 0b:transport_error_Indicator 为1的包丢弃 1b:payload_unit_start_indicator是否忽略头部后的第一个字节 0b:transport_priority 传输优先级…

ts 流基础(白话讲解).

---------------------------------------- author: hjjdebug date: 2022年 09月 27日 星期二 ---------------------------------------- ts 流就是188个字节构成的流数据. 先来点最简单的. ts 头部,4字节 ts 流是47开头的,以188字节为单位的打包流&#xff0…

什么是TS流?

前言 什么是TS流? 百度说:transport stream(传送流)简称TS流,是根据ITU-T Rec.H.222.0|ISO/IEC 13818-2 和ISO/IEC 13818-3协议定义的一种数据流,防止有可能发生严重错误时进行一道或多道程序编码数据的传…

hls之m3u8、ts流格式详解

2019独角兽企业重金招聘Python工程师标准>>> HLS,Http Live Streaming 是由Apple公司定义的用于实时流传输的协议,HLS基于HTTP协议实现,传输内容包括两部分,一是M3U8描述文件,二是TS媒体文件。 1、M3U8文件…

TS流概述(ES流-基本流,PES流-打包基本码流,PS流-节目流,TS流-传输流)

一、TS流概述 ES流(Elementary Stream,基本流):数字电视各组成部分编码后所形成的直接表示基本元素内容的流,包含视频、音频或数据的连续码流。 PES流(Paketized Elementary Stream,打包基本码流):是将基本的码流ES流…

网络流媒体(四)———TS流

1. 数字视频压缩MPEG-2标准 MPEG-2是MPEG(Moving Picture Experts Group,运动图像专家组)组织制定的视频和音频有损压缩标准之一,它的正式名称为“基于数字存储媒体运动图像和语音的压缩标准”。与MPEG-1标准相比,MPEG…