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是内核对所有具体

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

被折叠的 条评论
为什么被折叠?



