linux mount函数源码,linux文件系统调用(1)---mount

本文详细介绍了Linux系统中挂载文件系统的过程,从mount系统调用开始,包括新建源文件系统、查找目的文件系统的挂载目录以及将源文件系统挂载到目标目录。通过具体例子解释了如何在已有的ext2文件系统中挂载ext3文件系统到tmp目录,并分析了挂载过程中涉及的主要函数调用和数据结构,如vfs_kern_mount、lock_mount和graft_tree等。
摘要由CSDN通过智能技术生成

术语表:

struct mount:挂载点

struct mountpoint挂载点节点

struct vfsmount:挂载项

源文件系统用户将要挂载的文件系统

目的文件系统挂载源文件系统的文件系统

一、目的

本文将介绍linux挂载文件系统的过程,从系统调用mount()函数开始解析,主要分为三个阶段:

1、新建源文件系统;

2、查找目的文件系统的挂载目录;

3、将源文件系统挂载到目的文件系统的挂载目录;

本文以linux

3.10版本为基础进行讲解。

二、函数调用关系

mount系统调用的定义在fs/namespace.c文件中,具体的定义为:SYSCALL_DEFINE5(mount,char

__user *, dev_name, char __user *, dir_name, char __user *,type, unsigned long, flags, void __user *, data)。

其中,dev_name定义了设备路径;di_name定义了挂载目录;type定义了文件系统类型;flags和data定义了一些选项内容。我们重点关注前三个参数,后两个参数目前不关注。

下图描述了主要的函数调用关系,linux挂载文件系统主要分为三个阶段:

1、vfs_kern_mount()负责创建源文件系统;

2、lock_mount()负责在目的文件系统中查找挂载目录;

3、graft_tree()负责将源文件系统挂载到目的文件系统的挂载目录上ÿ

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值