轻松理解操作系统 - Linux文件系统的文件类型有什么?

在前面几期,我们了解了在 Linux系统中 文件是如何被组织、储存在硬盘上的:

轻松了解软硬链接

轻松了解inode是如何管理文件的

轻松理解操作系统 - Linux的数据块是如何储存数据的?

但是显然只有储存和管理文件的方法明显还不足以满足我们的使用需求。我们需要多样化的储存和管理文件。

因此,文件系统中其实提供了多种文件类型。我们本期就来了解下储存在硬盘上的文件有什么类型。

一、首先是普通文件

普通文件通常指的是包含用户数据或程序指令的文件,如文本文件、图像文件、音频文件、可执行文件等。

这些文件与目录(文件夹)和特殊设备文件(如管道、套接字)相对。

二、更好的查找普通文件 - 目录文件

很显然,如果一大堆普通文件堆在一起,我们既不好管理也不好查找它们。

因此,根据书籍的目录,我们很容易想到一种方法,那就是建文件的目录

目录文件在硬盘上的存储结构和特点

目录项

目录文件由多个目录项组成,每个目录项都包含了关于一个文件或子目录的信息。这些信息通常包括文件名、文件大小、属性、创建时间、修改时间等。

此外,目录项还包含了指向文件或子目录实际存储位置的指针。

图片

树状结构

目录文件通常采用树状结构进行存储。根目录是整个文件系统的起点,它包含了指向其他目录或文件的指针。

图片

三、“快捷方式” - 链接文件(软链接)

软链接是一个独立的文件,它包含了被链接文件的路径信息。当用户访问软链接时,系统会根据路径信息找到被链接的文件。

图片

四、设备的抽象 - 设备文件

设备文件是 Linux系统 中一种特殊的文件,它将设备驱动程序的接口抽象为一个文件来方便用户使用。

它分为字符设备块设备两种,字符设备一次读写一个字节,块设备每次处理一块数据。

通过设备文件,用户空间的程序可以对硬件设备进行操作,如读写数据、发送控制命令等。

图片

五、网络链接的抽象 - 套接字文件

它不同于普通的磁盘文件,而是保存在内存中的特殊数据结构。

它对应内核中的网络链接的发送和接收的缓冲区

图片

六、程序间通信 - 通过管道文件

文件系统抽象:

Linux系统 通过文件系统抽象层将其呈现为一种特殊的文件类型。

这使得进程可以通过标准的文件操作(如read、write等)来与管道文件进行交互。

半双工通信:

即在同一时间只可以有一方接收或发送信息,但可以实现双向通信。

这意味着管道的一端用于写入数据,另一端用于读取数据,但不能同时进行

无名管道

存在于内存之中,只能在具有亲缘关系的进程间使用

图片

有名管道

以 FIFO 的文件形式存储在文件系统中。是一个设备文件,也就是不具备亲缘关系的进程之间也可以使用它来进行通信。

图片

一个从生化环材专业转行的字节研发工程师,日常分享干货和有趣的科普。欢迎围观
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值