Linux内核VFS的open

1.VFS介绍

在跟踪流程open流程之前我们首先了解一下VFS,Linux 内核中的 VFS(Virtual File System)是一个抽象层,它隐藏了基础文件系统(如 ext4、NTFS 等)的实现细节,并提供一个统一的文件系统接口给用户空间和内核使用。VFS 可以让应用程序在使用不同的底层文件系统时不必了解底层文件系统的细节,这样可以方便用户使用并提高文件系统的灵活性、可扩展性。

VFS 在内核中的位置是 fs/vfs 目录,它包含了各种文件系统操作的定义和实现,例如文件创建、文件打开、读写文件等。VFS 定义了一系列文件相关的结构体,如文件描述符(file descriptor)、超级块(superblock)、索引节点(inode)等,这些结构体描述了一个文件在内核中的属性和状态,并提供了相应的操作函数。这些操作函数在不同的底层文件系统中都具有类似的功能,但底层实现可能会不同。

VFS 也提供了一些虚拟文件系统,比如 tmpfs、proc、sysfs 等,它们在内存中创建了一个文件系统,并提供了一些虚拟文件和目录,用于映射内核状态或特定设备的信息。

总的来说,VFS 是一个非常重要的组件,在 Linux 内核中起到了连接用户空间和底层文件系统的桥梁作用。

2.open系统调用定义

open系统调用定义在内核源码目录fs/open.c里面

SYSCALL_DEFINE3(open, const char __user *, filename, int, flags, umode_t, mode)
{
	if (force_o_largefile())
		flags |= O_LARGEFILE;

	ret
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值