先来看一下写文件函数write的执行过程:
ret = write(fd, buf, len);
write适用于各种文件系统,它首先执行sys_write(),而正是这个sys_write()进行实际文件系统类型的判别并执行该类型文件系统下的写操作。我们可以看出在多种多样的文件系统上抽象出了一个通用接口性质的虚拟文件系统。
我们这里非常关心Linux 2.6是如何去实现VFS的。先来看一下VFS中的四个主要的对象类型:
- 超级块对象,它代表一个具体的已安装文件系统。
- 索引节点对象,它代表一个具体文件。
- 目录项对象,它代表一个目录项,是路径的一个组成部分。
- 文件对象,它代表由进程打开的文件。
超级块
该对象用于存储特定文件系统的信息,由super_block结构体表示。在文件系统安装时,文件系统会调用alloc_super()以便从磁盘读取文件系统超级块,并将其信息填充到内存中的超级块对象中。用超级块对索引节点进行操作,如创建和初始化、释放、写入磁盘等。
索引节点inode
用来代表文件,该对象包含了内核在操作文件或目录时需要的全部信息。inode的存在是将文件的数据信息和控制信息进行分离,用结构体struct inode描述。我们常见的文件操作create(创建文件)、mkdir(创建新目录)等,都是由索引节点对象来完成的。
目录项对象
VFS中目录本身按文件对待,所以目录不是目录项对象。目录项对象是为了方便查找引入的,用结构体struct dentry描述。
文件对象
不是用inode来描述文件吗,怎么又有一个文件对象。这个文件对象表示进程已打开的文件,是已打开的文件在内存中的表示。因为多个进程可以同时打开和操作一个文件,所以同一个文件也可能存在多个对应的文件对象。用struct file进行描述,常见操作如open()、write()等。
分享到:
相关推荐
linux内核设计的艺术配套虚拟软件与0.11img文件,与linux内核设计的艺术
Linux系统中虚拟文件系统内核机制研究 Linux系统中虚拟文件系统内核机制研究
Linux内核源代码导读-陈香兰-中国科学技术大学-虚拟文件系统
1 虚拟文件系统概述 5 1.1 通用文件模型 7 1.2 VFS所处理的系统调用 9 2 虚拟文件系统架构 11 2.1 VFS对象数据结构 11 2.1.1 超级块对象 11 2.1.2 索引节点对象 15 2.1.3 文件对象 18 2.1.4 目录项对象 22 2.2 把...
VFS机制《linux内核设计与实现》<第13章:虚拟文件系统>特点VFS使得用户可以直接使用open(),read(),write()等系统调用,无需考虑具体
鉴于此,《Linux内核精髓:精通Linux内核必会的75个绝技》选取了资源管理(CPU、内存、进程等)、文件系统、网络、虚拟化、省电、调试、概要分析、追踪、内核调整等Linux内核的核心主题进行了深入剖析和讲解,总结出...
Linux内核链表及其在虚拟文件系统中的应用.pdf
Linux内核分析值虚拟文件系统,关于Linux虚拟文件系统的内核源代码解析和原理分析
是我最近学习Linux VFS 虚拟文件... Linux内核研究_我的虚拟文件系统.doc 是一个实现的虚拟文件系统.可以看看 3. 虚拟文件系统VFS简介.doc 和第1个文件并用有很好我效果..可以互补...^_^希望对你有所帮助~!
经过近20年的发展,Linux操作系统已经成为...作为一个内核相关的工作人员,你需要了解和学习Linux内核的资源管理(CPU、内存、进程等)、文件系统、网络、虚拟化、省电、调试、概要分析、追踪、内核调整等核心技术。
《深入分析Linux内核源代码》 ...第八章 虚拟文件系统 第九章 Ext2 文件系统 第十章 模块机制 第十一章 设备驱动程序 第十二章 网络 第十三章 Linux 启动系统 参考文献 附录 A Linux 内核 API 附录B在线文档
深入理解linux内核,中文第三版,可随便复制粘贴,包含所有20章的内容
第八章 虚拟文件系统 8.1 概述 8.2 VFS中的数据结构 8.3 高速缓存 8.4 文件系统的注册、安装与拆卸 8.5 限额机制 8.6 具体文件系统举例 8.7 文件系统的系统调用 8 .8 Linux2.4文件系统的移植问题 第九章 Ext2文件...
Linux系统中虚拟文件系统内核机制研究.pdf
制、进程调度、内存管理、进程间通信、虚拟文件系统、设备驱动程序及网络子系统的分析, 也包括对Linux 整体结构的把握、Linux 的启动过程的分析及Linux 独具特色的模块机制的 分析与应用等。其中重点剖析了Linux ...
Linux内核网络系统详解.rar 包括一下几个文件: 01 Linux内核网络系统概论.pdf 02 报文缓存.pdf 03 网络接口.pdf 04 虚拟多网卡驱动.pdf 467754-vmeth.rar
的大小 82 7.2 虚拟文件系统 83 7.2.1 VFS文件系统的超级块 84 7.2.2 VFS文件系统的inode节点 84 7.2.3 注册文件系统 85 7.2.4 装配文件系统 85 7.2.5 在虚拟文件系统中查找文件 87 7.2.6 卸载...
Linux虚拟文件系统方面的分析 主要是源代码的注释、原理分析,内核版本为2.6.32
Linux虚拟文件系统内核机制研究与改进策略.pdf
访问 /sys & /proc Linux 虚拟文件系统 访问 /etc、/var、/run FS 层次结构中的各种文件 超级用户权限(访问 SMBIOS/DMI 表并检测 RAM 大小和属性) Sysinfo 不需要目标系统上的任何其他外部实用程序,这是它的主要...