9、Linux文件I/O与缓冲机制解析

Linux文件I/O与缓冲机制解析

1. 虚拟文件系统(VFS)

1.1 VFS的抽象实现

VFS通过提供通用文件模型来实现抽象,这是Linux中所有文件系统的基础。借助函数指针和各种面向对象的实践,通用文件模型为Linux内核中的文件系统提供了一个必须遵循的框架。这个框架允许VFS对文件系统进行通用请求,并提供了支持读取、创建链接、同步等操作的钩子。每个文件系统会注册处理其所能执行操作的函数。

1.2 文件系统的共性

这种方法促使文件系统之间具有一定的共性。例如,VFS使用索引节点(inode)、超级块(superblock)和目录项等概念。非Unix起源的文件系统,可能没有像索引节点这样的类Unix概念,但也必须适应。实际上,Linux可以毫无问题地支持FAT和NTFS等文件系统。

1.3 VFS的优势

VFS的优势巨大。单个系统调用可以从任何介质上的任何文件系统读取数据;单个实用程序可以从任何一个文件系统复制到任何其他文件系统。所有文件系统都支持相同的概念、接口和调用,一切都能正常工作且效果良好。

1.4 系统调用的执行过程

当应用程序发出 read() 系统调用时,会经历一个有趣的过程:
1. C库提供系统调用的定义,在编译时转换为适当的陷阱语句。
2. 用户空间进程陷入内核,通过系统调用处理程序,传递到 read() 系统调用。
3. 内核确定给定文件描述符对应的对象。
4. 内核调用与该对象关联的读取函数,该函数从文件系统中物理读取数据。
5.

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值