编程语言应用

首页 » 常识 » 诊断 » Linux系统编程通用文件模型
TUhjnbcbe - 2021/1/16 3:49:00

写作目的:

学习Linux文件模型相关的知识。

正文目录:

1.Linux的两大抽象2.文件类型3.文件描述符4.通用文件模型:简介4.1演示demo4.2相关要点:与VFS的关系5.通用文件模型:文件描述符和打开文件的关系5.1相关的内核数据结构5.2列举几种打开文件的情景1.Linux的两大抽象

文件是Linux系统中最基础最重要的抽象。Linux遵循一切皆文件的理念。很多交互操作是通过读写文件来完成,即使所涉及的对象看起来并非普通文件。

另外一大抽象是进程。如果说文件是Linux系统最重要的抽象概念,进程则仅次于文件。

进程相关的实现复杂且多变,而文件IO的实现则相对稳定很多,且更贴近我们的日常操作,所以以文件作为学习Linux内核的切入点是个更好的选择。

2.文件类型

Linux系统的大多数文件是普通文件或目录,但是也有另外一些文件类型,具体包括如下几种:

普通文件(regularfile)。

最常用的文件类型,包含了某种形式的数据。至于这种数据是文本还是二进制数据,对于Linux内核而言并无区别。

文件中包含的字节可以是任意值,可以以任意方式进行组织。在系统层,除了字节流,Linux对文件结构没有特定要求。

对普通文件内容的解释由处理该文件的应用程序进行。

文件虽然是通过文件名访问,但文件本身其实并没有直接和文件名关联。相反地,与文件关联的是索引节点(inode,是indexnode缩写)。针对驻留于文件系统上的每个文件,文件系统都会为其分配一个inode。inode中会保存和文件相关的元数据,如文件修改时间戳、所有者、类型、长度以及文件数据的位置,但不含文件名,文件名由目录文件负责。

inode由inodenumber来标识,可以通过“ls–li”查看文件的inodenumber。

#ls-limini

1
查看完整版本: Linux系统编程通用文件模型