Linux Mount Namespace分析

Linux Mount Namespace是进程文件隔离机制,让不同Namespace的进程有独立的文件系统视图。本文介绍了挂载点示例,Linux文件系统架构,特别是VFS结构,并详细解析了挂载过程,包括如何在VFS层实现挂载,以及Mount Namespace如何让进程看到不同文件视图。

 Mount Namepsace简介

Mount Namepsace是Linux提供的进程文件隔离机制,通过隔离挂载点的方式,使得不同Namespace下的进程拥有不同的文件系统视图。下面将从设备挂载的例子出发,介绍Linux文件挂载(Mount)、Linux Mount Namespace等技术的实现机制。

磁盘设备挂载示例

使用unshare命令,在不同的namespace下的shell中执行挂载动作,观察可以发现:

  • 可以在一个挂载点重复执行挂载
  • 挂载点之前的文件被“隐藏”
  • 挂载点可被子进程“继承”(不管是否在同一个Namespace)
  • 不同Namespace的挂载操作独立(不考虑shared subtree情况)

Linux文件系统架构

        在一个进程的生命周期中,执行的代码包含了用户态、内核态两部分,内核态的代码是操作系统内核提供的,封装了操作机器的底层资源的接口,以系统调用(system call)的方式提供给用户态代码调用。glibc是标准C运行时库,对系统调用进行了封装,比如常用的文件操作函数open(),是系统调用sys_open()的封装。

在内核中,文件系统有以下几层表示模型:

  • 系统调用接口:sys_open()、sys_read()等,是用户态进程访问底层文件资源的入口
  • VFS虚拟文件系统层:VFS是内核对所有具体
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值